ClickHouseへのSQLデータの挿入とダンプ
ClickHouseは、様々な方法でOLTPデータベースインフラに簡単に統合できます。1つの方法は、他のデータベースとClickHouseの間でSQLダンプを使用してデータを転送することです。
SQLダンプの作成
データは、SQLInsertを使用してSQL形式でダンプできます。ClickHouseは、INSERT INTO <table name> VALUES(...
形式でデータを書き込み、output_format_sql_insert_table_name
設定オプションをテーブル名として使用します:
カラム名は、output_format_sql_insert_include_column_names
オプションを無効にすることで省略できます:
これで、dump.sqlファイルを別のOLTPデータベースに供給できます:
some_db
MySQLデータベースにsome_table
テーブルが存在することを前提としています。
一部のDBMSは、一度のバッチで処理できる値の数に制限がある場合があります。デフォルトでは、ClickHouseは65k値のバッチを作成しますが、これはoutput_format_sql_insert_max_batch_size
オプションで変更可能です:
値のセットをエクスポートする
ClickHouseには、Values形式があり、これはSQLInsertに似ていますが、INSERT INTO table VALUES
部分を省略し、値のセットのみを返します:
SQLダンプからデータを挿入する
SQLダンプを読み込むために、MySQLDumpが使用されます:
デフォルトでは、ClickHouseは不明なカラムをスキップします(これは、input_format_skip_unknown_fieldsオプションで制御されます)及びダンプ内の最初に見つかったテーブルについてデータを処理します(複数のテーブルが単一ファイルにダンプされた場合)。DDLステートメントはスキップされます。MySQLダンプからテーブルへのデータのロードは次のように行います(mysql.sqlファイル):
MySQLダンプファイルから自動的にテーブルを作成することもできます:
ここでは、ClickHouseが自動的に推測した構造に基づいてtable_from_mysql
という名前のテーブルを作成しました。ClickHouseはデータに基づいて型を検出するか、DDLが利用可能な場合はそれを使用します:
他の形式
ClickHouseは、多様なシナリオやプラットフォームをカバーするために、多くの形式のサポートを導入しています。以下の文書で、さまざまな形式や、それらとの作業方法について詳しく探求してください:
また、clickhouse-localを確認してください - ClickHouseサーバーなしでローカル/リモートファイルで作業するためのポータブルなフル機能ツールです。