# Microsoft Azure Datalake Parquet Export Integration

カラム形式のデータフォーマットであるParquetは、クエリがデータセット内の一部のカラムのみにアクセスする必要がある分析ワークロードに特に有益であり、多くのデータパイプライン戦略で好まれる選択肢となっています。

このTDエクスポート連携により、Treasure Dataのジョブ結果からParquetファイルを生成し、Azure Data Lake Storageに直接アップロードすることができます。

## 前提条件

- Treasure Dataの基本的な知識
- Azure Data Lake Storageの基本的な知識


## 要件と制限事項

- Hierarchical Namespaceを有効にして構成されたAzure Data Lake Storageアカウント
- Azure Data Lake Access KeysまたはShared Access Signatureが設定されていること。詳細については、[Obtain Azure Data Lake Credentials](/ja/int/obtain-azure-data-lake-credentials)を参照してください
- Export Integrationは、アカウントレベルまたはコンテナレベルのShared Access Signatureのみをサポートしています。フォルダレベルまたはディレクトリレベルのShared Access Signatureはサポートしていません


## Treasure コンソールを使用した接続の作成

Treasure コンソールでは、クエリを実行する前にデータ接続を作成して構成する必要があります。データ接続の一部として、以下の手順に従って統合にアクセスするための認証を提供します。

1. **Treasure コンソール**を開きます
2. **Integrations Hub** > **Catalog**に移動します
3. 統合を検索し、**Azure Data Lake**を選択します
4. **Create Authentication**を選択し、統合の認証情報を入力します


**認証フィールド**

| Parameter | Description |
|  --- | --- |
| Authentication Mode | 2つのサポートされている認証モードのいずれかを選択します: - Access Key - Shared Access Signatures |
| Account Name | 階層型名前空間が有効になっているAzureストレージアカウント名 |
| Account Key | 選択した認証モードに対応するAccount KeyまたはSAS Token。Azureプラットフォームから取得します。詳細については、[Obtain Azure Data Lake Credentials](/ja/int/obtain-azure-data-lake-credentials)を参照してください |
| SAS Token |  |
| Proxy Type | Azure Data Lake Storageへの統合がHTTPプロキシ経由の場合は**HTTP**を選択します |
| Proxy Host | Proxy TypeがHTTPの場合のProxy Host値 |
| Proxy Port | Proxy TypeがHTTPの場合のProxy Port値 |
| Proxy Username | Proxy TypeがHTTPの場合のプロキシユーザー名 |
| Proxy Password | Proxy TypeがHTTPの場合のプロキシパスワード |
| On Premises | このパラメータはエクスポート統合には適用されないため、無視してください |


1. **Continue**を選択します
2. 認証の名前を入力し、**Done**を選択します


## Audience Studioでのセグメントのアクティベーション

Audience Studioでアクティベーションを作成することで、ターゲットプラットフォームにセグメントデータを送信することもできます。

1. **Audience Studio**に移動します
2. 親セグメントを選択します
3. ターゲットセグメントを開き、右クリックして、**Create Activation**を選択します
4. **Details**パネルで、アクティベーション名を入力し、前のセクションのConfiguration Parametersに従ってアクティベーションを構成します
5. **Output Mapping**パネルでアクティベーション出力をカスタマイズします


![](/assets/ouput.b2c7f1d909c4f98ed10f5300df858a4b19f71a3b0834df952f5fb24018a5ea78.8ebdf569.png)

- Attribute Columns
  - すべてのカラムを変更なしでエクスポートするには、**Export All Columns**を選択します
  - エクスポート用の特定のカラムを追加するには、**+ Add Columns**を選択します。Output Column Nameには、同じSourceカラム名が事前入力されます。Output Column Nameを更新できます。アクティベーション出力用の新しいカラムを追加するには、**+ Add Columns**を選択し続けます
- String Builder
  - エクスポート用の文字列を作成するには、**+ Add string**を選択します。以下の値から選択します:
    - String: 任意の値を選択し、テキストを使用してカスタム値を作成します
    - Timestamp: エクスポートの日時
    - Segment Id: セグメントID番号
    - Segment Name: セグメント名
    - Audience Id: 親セグメント番号


1. **Schedule**を設定します


![](/assets/snippet-output-connector-on-audience-studio-2024-08-28.a99525173709da1eb537f839019fa7876ffae95045154c8f2941b030022f792c.8ebdf569.png)

- スケジュールを定義する値を選択し、オプションでメール通知を含めます


1. **Create**を選択します


## データをエクスポートするためのクエリ結果の構成

Treasure コンソールは、複数の方法でデータをエクスポートすることをサポートしています。Data Workbenchからデータをエクスポートするには、以下の手順を実行します。

1. **Data Workbench > Queries**に移動します
2. **New Query**を選択し、クエリを定義します
3. **Export Results**を選択して、データエクスポートを構成します


![](/assets/screenshot-2024-05-27-at-13.08.60.c660e2874c5efd5898076c87205c9c1c3579e1232c32206db66443388b0163ee.9c1a955f.png)

1. 既存の認証を選択するか、上記のセクションに従って新しい認証を作成します
2. エクスポートパラメータを構成し、**Done**を選択します
3. オプションで、指定したターゲット宛先に定期的にデータをエクスポートするスケジュールを構成できます。詳細については、[Scheduling Jobs on Treasure コンソール](/products/customer-data-platform/job-management/scheduling-jobs-using-td-console)を参照してください


**構成フィールド**

| Field | Description |
|  --- | --- |
| Container name | 既存のAzureストレージコンテナの名前 |
| File path | Azureストレージ内のエクスポート場所。ファイル名とparquet拡張子を含みます。例: "folder/file.parquet" |
| Overwrite existing file? | チェックボックスがオンの場合、既存のファイルが上書きされます |
| Parquet compression | サポートされているparquet圧縮: - Uncompressed - Gzip - Snappy |
| Row group size (MB) | Parquet圧縮アルゴリズムは行グループごとにのみ適用されるため、行グループサイズが大きいほど、データを圧縮する機会が増えます。実際のデータスキーマに基づいてデータエクスポートを微調整するには、このフィールドを使用します。最小: 10 MB、最大: 1024 MB、デフォルト: 128 MB |
| Page size (KB) | 単一のレコードにアクセスするために完全に読み取る必要がある最小単位。この値が小さすぎると、圧縮が劣化します。実際のデータスキーマに基づいてデータエクスポートを微調整するには、このフィールドを使用します。最小: 8 KB、最大: 2048 KB、デフォルト: 1024 KB |
| Single file? | 有効にすると、単一のファイルが作成されます。それ以外の場合は、行グループサイズに基づいて複数のファイルが生成されます(圧縮が有効になっている場合、出力ファイルサイズは異なることに注意してください) |
| Advanced configuration | このオプションを有効にして、以下の詳細設定を調整します |
| Timestamp Unit | タイムスタンプ単位をミリ秒またはマイクロ秒で構成します。デフォルト: ミリ秒 |
| Enable Bloom filter | Bloomフィルターは、セットメンバーシップを近似する空間効率の高い構造で、明確な「いいえ」または「はいの可能性がある」という回答を提供します。このオプションを有効にして、生成されたparquetファイルにBloomフィルターを含めることができます |
| Retry limit | 最大リトライ回数。最小: 1、最大: 10、デフォルト: 5 |
| Retry Wait (second) | リトライを実行する前に待機する時間。最小: 1秒、最大: 300秒、デフォルト: 3秒 |
| Number of concurrent threads | Azure Storageサービスへの同時リクエストの数。最小: 1、最大: 8、デフォルト: 4 |
| Part size (MB) | Azure Storageは、小さなチャンク(リクエストバッファサイズ)でのファイルアップロードをサポートしています。最小: 1 MB、最大: 100 MB、デフォルト: 8 MB |


## (オプション) CLIを使用したエクスポート統合

CLI(Toolbelt)を使用して、Parquetファイル形式でAzure Data Lakeへのクエリ結果のエクスポートをトリガーできます。`td query`コマンドの`--result`オプションとして、Azure Data Lake Storageへのエクスポート情報を指定する必要があります。`td query`コマンドについては、[この記事](/tools/cli-and-sdks/td-toolbelt-job-and-query-command-reference)を参照してください。

オプションの形式はJSONであり、一般的な構造は以下の通りです。


```json
{"type": "azure_datalake",  "authentication_mode": "account_key",  "account_name": "demo_account_name",  "proxy_type": "none",  "container_name": "demo_container_name",  "file_path": "joetest/test-3.parquet",  "overwrite_file": "true",  "compression": "uncompressed",  "row_group_size": "128",  "page_size": 1024,  "single_file": "false",  "advanced_configuration": "false"}
```

**使用例**


```bash
td query --result '{"type":"azure_datalake","authentication_mode":"account_key","account_name": "account name", "account_key": "account key", "proxy_type": "none", "container_name": "container", "file_path": "joe/test.parquet", "overwrite_file": "false", "compression": "uncompressed", "row_group_size": 128, "page_size": 1024, "single_file": true, "advanced_configuration": false}' -d sample_datasets "select * from sample_table" -T presto
```

## Obtain Azure Data Lake Credentials

Microsoft Azure Portalにログインし、**Storage accounts**を選択します

![](/assets/screenshot-2024-05-27-at-10.19.18.26117bf2021455e8c8a575190b34f6b67bd02923106dfcde1c364fe507bd4236.9c1a955f.png)

### Hierarchical Namespaceが有効になっていることを確認

ストレージアカウントを選択し、階層型名前空間オプションが有効になっていることを確認します。

![](/assets/screenshot-2024-05-27-at-10.49.00.ad9deae8d4da424ce36300ea7be3d0cbb0a076f768e817de307d7e0659a80a31.9c1a955f.png)

### Access keyの取得

統合にAccess Keyを使用するには:

1. Security + networkingメニューから**Access keys**を選択します
2. **Show**ボタンを選択し、アクセスキーをコピーします
![](/assets/screenshot-2024-05-27-at-11.22.44.466fe62431c12a4cc734107c8bf0706f0a5ba57c3b52d9b035ccccfb2b7cd7d5.9c1a955f.png)


### Shared Access Signatureの使用

統合にShared Access Signatureを使用するには:

1. Security + networkingメニューから**Shared access signature**を選択します
![](/assets/screenshot-2024-05-27-at-11.30.25.f5f60f076639a2947e85a0f93ee7b379abb27ac1eabbc2e4b74e1fda8e29fad1.9c1a955f.png)
2. Shared Access Signatureの権限と有効期限を構成します
3. **Generate SAS and connection string**ボタンを選択し、SASトークンをコピーします
![](/assets/screenshot-2024-05-27-at-11.35.00.b8faefa5549c13692b6f0b9a28e67ab9b9abd9a0b0c237bdfbde5ea56bae5fee.9c1a955f.png)