ClickHouseのazureBlobStorageテーブル関数の使用
これは、Azure Blob StorageやAzure Data Lake StorageからClickHouseにデータをコピーする最も効率的で簡単な方法の1つです。このテーブル関数を使用すると、ClickHouseにAzureストレージに直接接続して、オンデマンドでデータを読み取るよう指示できます。
これは、ソースから直接データを選択、挿入、フィルタリングできるテーブルのようなインターフェイスを提供します。この関数は非常に最適化されており、CSV
, JSON
, Parquet
, Arrow
, TSV
, ORC
, Avro
など、広く使用されている多くのファイル形式をサポートしています。完全なリストについては、"データ形式"を参照してください。
このセクションでは、Azure Blob StorageからClickHouseへのデータ転送のための簡単なスタートアップガイドと、この関数を効果的に使用するための重要な考慮事項について説明します。詳細や高度なオプションについては、公式ドキュメントを参照してください:
azureBlobStorage
テーブル関数のドキュメントページ
Azure Blob Storageアクセスキーの取得
ClickHouseがAzure Blob Storageにアクセスできるようにするには、アクセスキーを含む接続文字列が必要です。
-
Azureポータルで、ストレージアカウントに移動します。
-
左側のメニューで、セキュリティ + ネットワーキングセクションの下にあるアクセスキーを選択します。
-
key1またはkey2のいずれかを選択し、接続文字列フィールドの横にある表示ボタンをクリックします。
-
接続文字列をコピーします。これをazureBlobStorageテーブル関数のパラメータとして使用します。
Azure Blob Storageからのデータクエリ
お好みのClickHouseクエリコンソールを開きます。これにはClickHouse CloudのWebインターフェイス、ClickHouse CLIクライアント、またはその他のクエリを実行するために使用するツールを含めることができます。接続文字列とClickHouseクエリコンソールの準備ができたら、Azure Blob Storageからデータを直接クエリできます。
次の例では、data-containerという名前のコンテナ内のJSONファイルに保存されているすべてのデータをクエリします:
そのデータをローカルのClickHouseテーブル(例:my_table)にコピーしたい場合は、INSERT INTO ... SELECT
ステートメントを使用できます:
これにより、中間ETLステップを必要とせずに外部データをClickHouseに効率的に取り込むことができます。
環境センサーデータセットを使用したシンプルな例
例として、環境センサーのデータセットから単一のファイルをダウンロードします。
-
サンプルファイルを環境センサーデータセットからダウンロードします。
-
Azureポータルで、新しいストレージアカウントを作成します。すでにある場合はこのステップをスキップできます。
ストレージアカウントキーアクセスを許可することがストレージアカウントで有効にされていることを確認してください。そうしないと、アカウントキーを使用してデータにアクセスできません。
-
ストレージアカウント内に新しいコンテナを作成します。この例では、sensorsと名付けます。既存のコンテナを使用する場合はこのステップをスキップできます。
-
前にダウンロードした
2019-06_bmp180.csv.zst
ファイルをコンテナにアップロードします。 -
以前に説明した手順に従って、Azure Blob Storageの接続文字列を取得します。
すべての準備が整ったので、Azure Blob Storageから直接データをクエリできます:
- データをテーブルにロードするには、元のデータセットで使用されているスキーマの簡略版を作成します:
Azure Blob Storageのような外部ソースをクエリするときの構成オプションとスキーマ推論についての詳細は、入力データからの自動スキーマ推論を参照してください。
- それでは、Azure Blob Storageからsensorsテーブルにデータを挿入します:
これで、sensorsテーブルはAzure Blob Storageに保存されている2019-06_bmp180.csv.zst
ファイルからのデータで満たされています。
追加リソース
これは、azureBlobStorage関数の使用に関する基本的な紹介に過ぎません。より高度なオプションや構成の詳細については、公式ドキュメントを参照してください: