ClickHouseにおけるSQLデータの挿入とダンプ
ClickHouseは、OLTPデータベースインフラストラクチャに多くの方法で簡単に統合できます。1つの方法は、SQLダンプを使用して他のデータベースとClickHouseの間でデータを転送することです。
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サーバーがなくても、ローカル/リモートファイルで作業するためのポータブルな多機能ツールです。