Azure クラウドストレージへのデータアンロード
このトピックでは、CelerData から Microsoft Azure Blob Storage および Data Lake Storage にデータをアンロードする方法について説明します。
バージョン 3.2 以降、CelerData はテーブル関数 FILES() を使用して、リモートストレージに書き込み可能なテーブルを定義することをサポートしています。その後、INSERT INTO FILES を使用して CelerData からリモートストレージにデータをアンロードできます。
CelerData がサポートする他のデータエクスポート方法と比較して、INSERT INTO FILES を使用したデータのアンロードは、より統一された、使いやすく、豊富な機能を備えたインターフェースを提供します。SELECT ステートメントを使用してデータをロードしたのと同じ構文を使用して、リモートストレージにデータを直接アンロードできます。さらに、Parquet、ORC、および CSV (v3.3 から) フォーマットファイルへのデータアンロードをサポートしています。したがって、ほとんどの場合、INSERT INTO FILES は EXPORT よりも推奨されます。
NOTE
このトピックの 4 つの例をすべて確認して、クラウドスト レージの異なる認証情報だけでなく、さまざまなファイル形式と圧縮アルゴリズムも理解することをお勧めします。
Azure Blob Storage へのデータアンロード
AWS ベースの CelerData クラスターから Azure Blob Storage にデータをアンロードしたい場合は、Shared Key 認証または Shared Access Signature (SAS) 認証を使用できます。
準備
コンテナ URL の取得
Azure Blob コンテナ URL の形式は次のとおりです:
{wasb | wasbs}://<container_name>@<storage_account_name>.blob.core.windows.net/<path>/<dir>/
Azure Blob Storage アカウント celerdata 内のコンテナ unloading の下のディレクトリ test/user_behavior/ にデータをアンロードしたいとします。Blob Storage にデータをアンロードする際には、wasb (HTTP 経由) プロトコルまたは wasbs (HTTPS 経由) プロトコルを使用できます。したがって、URL (FILES() 関数で定義された path) は次のいずれかになります:
wasb://``unloading@celerdata.blob.core.windows.net/test/user_behavior/wasbs://``unloading@celerdata.blob.core.windows.net/test/user_behavior/
認証情報の取得
- Shared Key 認証を使用したい場合は、Authenticate to Azure cloud storage - Shared Key に記載された手順に従って、ストレージアカウント
celerdataのキー値を取得してください。 - SAS 認証を使用したい場合は、Authenticate to Azure cloud storage - SAS Token に記載された手順に従って、ストレージアカウント
celerdataの以下の権限設定で SAS トークンを取得してください:- 許可されたサービス:
Blob - 許可されたリソースタイプ:
Container,Object - 許可された権限:
Read,Write,Delete,List,Add,Create,Immutable storage,Permanent delete
- 許可されたサービス:
Shared Key を使用したデータアンロード
次の例では、wasbs プロトコルを使用して、テーブル全体のデータを Parquet 形式のファイルにアンロードします。
INSERT INTO FILES(
'path' = 'wasbs://unloading@celerdata.blob.core.windows.net/test1/user_behavior/',
'format' = 'parquet', -- Parquet 形式のファイルとしてデータをアンロードします。
'azure.blob.storage_account' = 'celerdata',
'azure.blob.shared_key' = '<storage_account_shared_key>'
)
SELECT * FROM user_behavior;
NOTE
Shared Key 認証を使用すると、ストレージアカウントのすべてのリソースに対するすべての操作を含むフルアクセスを持つ
super-userアクセスが実質的に付与されます。
SAS トークンを使用したデータアンロード
次の例では、2020-01-01 から 2024-01-01 までのデータを WHERE 句と JOIN を含む複雑なクエリを使用してアンロードします。データは LZ4 圧縮アルゴリズムを使用して ORC 形式のファイルとして保存され、月ごとに (dt 列に基づいて) パーティション分割され、user_behavior/ の下の異なるディレクトリに分散されます。
INSERT INTO FILES(
'path' = 'wasbs://unloading@celerdata.blob.core.windows.net/test2/user_behavior/',
'format' = 'orc', -- ORC 形式のファイルとしてデータをアンロードします。
'compression' = 'lz4', -- LZ4 圧縮アルゴリズムを使用します。
'azure.blob.storage_account' = 'celerdata',
'azure.blob.container' = 'unloading',
'azure.blob.sas_token' = '<storage_account_SAS_token>',
'partition_by' = 'dt' -- 月ごとにデータを異なるディレクトリにパーティション分割します。
)
SELECT tb.*, tu.name FROM user_behavior tb
JOIN users tu on tb.user_id = tu.id
WHERE tb.dt >= '2020-01-01' and tb.dt < '2024-01-01';
NOTE
partition_byパラメータは、指定された列に基づいてデータをパーティション分割し、データをprefix/<column_name>=<value>/という形式のサブディレクトリに保存します。例えば、/test2/user_behavior/dt=2020-01-01/です。
Azure Data Lake Storage へのデータアンロード
Azure ベースの CelerData クラスターから Azure Data Lake Storage にデータをアンロードしたい場合は、Managed Identity 認証または Service Principal 認証を使用できます。
準備
コンテナ URL の取得
Azure Data Lake コンテナ URL の形式は次のとおりです:
{abfs | abfss}://<container_name>@<storage_account_name>.dfs.core.windows.net/<path>/<dir>/