mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-12 09:22:05 +00:00
5.4 KiB
5.4 KiB
slug | sidebar_position | sidebar_label | keywords | |
---|---|---|---|---|
/ja/sql-reference/table-functions/azureBlobStorage | 10 | azureBlobStorage |
|
azureBlobStorage テーブル関数
Azure Blob Storage のファイルを選択/挿入するためのテーブルのようなインターフェースを提供します。このテーブル関数は s3 関数と似ています。
構文
azureBlobStorage(- connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression, structure])
引数
connection_string|storage_account_url
— connection_string はアカウント名とキーを含みます (connection string の作成) または、ストレージアカウントのURLをここに提供し、アカウント名とアカウントキーを別々のパラメータとして指定することもできます(パラメータのaccount_nameとaccount_keyを参照)container_name
- コンテナー名blobpath
- ファイルパス。リードオンリーモードでは以下のワイルドカードがサポートされています:*
,**
,?
,{abc,def}
および{N..M}
ここでN
,M
— 数字,'abc'
,'def'
— 文字列。account_name
- storage_account_url が使用されている場合は、ここでアカウント名を指定できますaccount_key
- storage_account_url が使用されている場合は、ここでアカウントキーを指定できますformat
— ファイルのフォーマット。compression
— サポートされている値:none
,gzip/gz
,brotli/br
,xz/LZMA
,zstd/zst
。デフォルトでは、ファイル拡張子によって圧縮を自動的に検出します(auto
に設定した場合と同じ)。structure
— テーブルの構造。フォーマット'column1_name column1_type, column2_name column2_type, ...'
。
返される値
指定されたファイルにおいてデータを読み書きするための指定された構造のテーブル。
例
以下を使用して Azure Blob Storage にデータを書き込みます:
INSERT INTO TABLE FUNCTION azureBlobStorage('http://azurite1:10000/devstoreaccount1',
'test_container', 'test_{_partition_id}.csv', 'devstoreaccount1', 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==',
'CSV', 'auto', 'column1 UInt32, column2 UInt32, column3 UInt32') PARTITION BY column3 VALUES (1, 2, 3), (3, 2, 1), (78, 43, 3);
そのデータは次の方法で読み取ることができます
SELECT * FROM azureBlobStorage('http://azurite1:10000/devstoreaccount1',
'test_container', 'test_1.csv', 'devstoreaccount1', 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==',
'CSV', 'auto', 'column1 UInt32, column2 UInt32, column3 UInt32');
┌───column1─┬────column2─┬───column3─┐
│ 3 │ 2 │ 1 │
└───────────┴────────────┴───────────┘
または connection_string を使用する
SELECT count(*) FROM azureBlobStorage('DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;EndPointSuffix=core.windows.net',
'test_container', 'test_3.csv', 'CSV', 'auto' , 'column1 UInt32, column2 UInt32, column3 UInt32');
┌─count()─┐
│ 2 │
└─────────┘
仮想カラム
_path
— ファイルへのパス。タイプ:LowCardinalty(String)
。_file
— ファイル名。タイプ:LowCardinalty(String)
。_size
— ファイルのサイズ(バイト単位)。タイプ:Nullable(UInt64)
。ファイルサイズが不明な場合、値はNULL
になります。_time
— ファイルの最終更新時刻。タイプ:Nullable(DateTime)
。時刻が不明な場合、値はNULL
になります。
関連項目
Hiveスタイルのパーティショニング
use_hive_partitioning
を 1 に設定すると、ClickHouse はパス内の Hiveスタイルのパーティショニング(/name=value/
)を検出し、パーティションカラムをクエリ内で仮想カラムとして使用できるようにします。これらの仮想カラムは、パーティションされたパス内と同じ名前を持ちますが、先頭に _
が付きます。
例
Hiveスタイルのパーティショニングで作成された仮想カラムを使用する
SET use_hive_partitioning = 1;
SELECT * from azureBlobStorage(config, storage_account_url='...', container='...', blob_path='http://data/path/date=*/country=*/code=*/*.parquet') where _date > '2020-01-01' and _country = 'Netherlands' and _code = 42;