Using ClickHouse's azureBlobStorage table function
これは、Azure Blob Storage または Azure Data Lake Storage から ClickHouse にデータをコピーする最も効率的かつ簡単な方法の一つです。このテーブル関数を使用すると、ClickHouse に Azure ストレージに直接接続し、データをオンデマンドで読み取るよう指示できます。
これは、データをソースから直接選択、挿入、フィルタリングできるテーブルのようなインターフェイスを提供します。この関数は高度に最適化されており、CSV
、JSON
、Parquet
、Arrow
、TSV
、ORC
、Avro
など、多くの一般的に使用されるファイル形式をサポートしています。完全なリストについては "Data formats" を参照してください。
このセクションでは、Azure Blob Storage から ClickHouse へのデータ転送に関する簡単なスタートアップガイドと、この関数を効果的に使用するための重要な考慮事項を説明します。詳細および高度なオプションについては、公式ドキュメントを参照してください:
azureBlobStorage
Table Function documentation page
Acquiring Azure Blob Storage Access Keys
ClickHouse が Azure Blob Storage にアクセスできるようにするには、アクセスキーを含む接続文字列が必要です。
-
Azure ポータルで、ストレージアカウントに移動します。
-
左側のメニューで、セキュリティ + ネットワーキングセクションの下にある アクセスキー を選択します。
-
key1 または key2 のいずれかを選択し、接続文字列フィールドの横にある 表示 ボタンをクリックします。
-
接続文字列をコピーします。この接続文字列は、azureBlobStorage テーブル関数のパラメータとして使用します。
Querying the data from Azure Blob Storage
お好みの ClickHouse クエリコンソールを開きます。このクエリコンソールは、ClickHouse Cloud の Web インターフェイス、ClickHouse CLI クライアント、またはクエリを実行するために使用する他のツールのいずれでもかまいません。接続文字列と ClickHouse クエリコンソールの準備が整ったら、Azure Blob Storage からデータを直接クエリできます。
以下の例では、data-container という名前のコンテナに保存されている JSON ファイル内のすべてのデータをクエリします:
そのデータをローカルの ClickHouse テーブル(例:my_table)にコピーしたい場合は、INSERT INTO ... SELECT
ステートメントを使用できます:
これにより、中間的な ETL ステップを必要とせずに、外部データを効率的に ClickHouse に取り込むことができます。
A simple example using the Environmental Sensors Dataset
例として、Environmental Sensors Dataset から単一のファイルをダウンロードします。
-
サンプルファイルを Environmental Sensors Dataset からダウンロードします。
-
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
ファイルからのデータが満たされました。
Additional Resources
これは、azureBlobStorage 関数を使用するための基本的な導入に過ぎません。より高度なオプションや設定の詳細については、公式ドキュメントを参照してください: