ClickHouse へのデータのエクスポートにはどれくらい時間がかかりますか?
1
テーブルデータを GCS バケットにエクスポートする
このステップでは、BigQuery SQL ワークスペースを使用して SQL コマンドを実行します。以下では、EXPORT DATAステートメントを使用して、mytable という名前の BigQuery テーブルを GCS バケットにエクスポートします。uri パラメータには * 文字が含まれています。これにより、エクスポートするデータが 1GB を超える場合、出力は連番の接尾辞が付いた複数のファイルに分割されます。このアプローチには、いくつかの利点があります。- Google では、GCS へのエクスポートを 1 日あたり最大 50TB まで無料で行えます。ユーザーが支払うのは GCS のストレージ料金のみです。
- エクスポート時には複数のファイルが自動的に生成され、各ファイルは最大 1GB のテーブルデータに制限されます。これによりインポートを並列化できるため、ClickHouse にとって有利です。
- Parquet はカラム指向のフォーマットであり、本質的に圧縮されているため、BigQuery からのエクスポートも ClickHouse でのクエリも高速です。そのため、データ交換フォーマットとしてより適しています
2
GCS から ClickHouse へのデータのインポート
エクスポートが完了したら、このデータを ClickHouse のテーブルにインポートできます。以下のコマンドは、ClickHouse SQL コンソール またはclickhouse-client で実行できます。まず、ClickHouse でテーブルを作成する必要があります。parallel_distributed_insert_select を有効にします。ClickHouse ノードが 1 つしかない場合は、この手順は省略できます。INSERT INTO SELECT command を使用して、GCS から ClickHouse のテーブルにデータを挿入できます。これは、SELECT クエリの結果に基づいてテーブルにデータを挿入するコマンドです。INSERT するデータを取得するには、GCS は Amazon S3 と相互運用可能であるため、s3Cluster function を使用して GCS bucket からデータを取得できます。ClickHouse ノードが 1 つしかない場合は、s3Cluster function の代わりに s3 table function を使用できます。ACCESS_ID と SECRET は、GCS バケットに関連付けられた HMAC キー です。3
データのエクスポートが正常に行われたかを確認する
データが正しく挿入されたかどうかを確認するには、新しいテーブルに対してSELECT クエリを実行するだけです。