# 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はサポートしていません ## TD Consoleを使用した接続の作成 TD Consoleでは、クエリを実行する前にデータ接続を作成して構成する必要があります。データ接続の一部として、以下の手順に従って統合にアクセスするための認証を提供します。 1. **TD Console**を開きます 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**を選択します ## データをエクスポートするためのクエリ結果の構成 TD Consoleは、複数の方法でデータをエクスポートすることをサポートしています。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 TD Console](https://docs.treasuredata.com/articles/pd/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`コマンドについては、[この記事](https://docs.treasuredata.com/articles/pd/td-toolbelt-job-and-query-command-reference/q/toolbelt/qp/9)を参照してください。 オプションの形式は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)