ClickHouse へのデータのエクスポートにはどれくらい時間がかかりますか?
| テーブル | 行数 | エクスポートされたファイル数 | データサイズ | BigQuery エクスポート | スロット使用時間 | ClickHouse へのインポート |
|---|---|---|---|---|---|---|
| blocks | 16,569,489 | 73 | 14.53GB | 23 secs | 37 min | 15.4 secs |
| transactions | 1,864,514,414 | 5169 | 957GB | 1 min 38 sec | 1 day 8hrs | 18 mins 5 secs |
| traces | 6,325,819,306 | 17,985 | 2.896TB | 5 min 46 sec | 5 days 19 hr | 34 mins 55 secs |
| contracts | 57,225,837 | 350 | 45.35GB | 16 sec | 1 hr 51 min | 39.4 secs |
| 合計 | 8.26 billion | 23,577 | 3.982TB | 8 min 3 sec | > 6 days 5 hrs | 53 mins 45 secs |
テーブルデータを GCS バケットにエクスポートする
このステップでは、BigQuery SQL ワークスペースを使用して SQL コマンドを実行します。以下では、EXPORT DATAステートメントを使用して、mytable という名前の BigQuery テーブルを GCS バケットにエクスポートします。uri パラメータには * 文字が含まれています。これにより、エクスポートするデータが 1GB を超える場合、出力は連番の接尾辞が付いた複数のファイルに分割されます。このアプローチには、いくつかの利点があります。- Google では、GCS へのエクスポートを 1 日あたり最大 50TB まで無料で行えます。ユーザーが支払うのは GCS のストレージ料金のみです。
- エクスポート時には複数のファイルが自動的に生成され、各ファイルは最大 1GB のテーブルデータに制限されます。これによりインポートを並列化できるため、ClickHouse にとって有利です。
- Parquet はカラム指向のフォーマットであり、本質的に圧縮されているため、BigQuery からのエクスポートも ClickHouse でのクエリも高速です。そのため、データ交換フォーマットとしてより適しています
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 キー です。データのエクスポートが正常に行われたかを確認する
データが正しく挿入されたかどうかを確認するには、新しいテーブルに対してSELECT クエリを実行するだけです。