セットアップ
ipython で実行します。次のコマンドで起動できます。
S3 内の JSON ファイルをクエリする
出力フォーマットの設定
CSV ですが、output_format パラメータで変更できます。
chDB は ClickHouse のデータフォーマットに加えて、独自のフォーマット にも対応しており、その中には Pandas DataFrame を返す DataFrame も含まれます。
JSON ファイルからテーブルを作成する
chDB はプロセスごとに単一の埋め込みエンジンを実行するため、データベースディレクトリ (そのパス) にはいくつかのルールがあります:
- 1つのパスにつき1プロセス: chDB のデータディレクトリは、同時に1つの OS プロセスでのみ開くことができます。同じパスを2つ目のプロセスで開こうとすると、最初のプロセスが閉じるまで失敗します。
- 1プロセスにつき1つのパス: セッションまたは接続が開いている間に、異なるパスに対して別のセッションまたは接続を開こうとすると失敗します。エラーを回避するには、まず開いているものを閉じてください。同じパスに対する複数のセッションまたは接続は共存できます。
- 同時実行性: 同じパス上のセッションまたは接続は、クエリを同時実行できます。
- パスなしのセッションは共有される: パスがない場合、セッションはプロセス全体で共有される
:memory:データベースを使用します (そのため、空欄のセッション同士で互いのテーブルを確認できます) 。また、その一時ディレクトリは最後のセッションが閉じた場合にのみ削除されます。
CREATE...EMPTY AS を使って、JSON ファイルのスキーマに基づく dislikes テーブルを作成できます。
すべてのカラム型が Nullable にならないように、schema_inference_make_columns_nullable 設定を使用します。
DESCRIBE 句を使用してスキーマを確認できます:
CREATE...AS を使えば一度に実行することもできます。
では、その方法で別のテーブルを作成してみましょう: