Azure Data Lake ストレージ

Azure Data Lake Storage コネクタを使用すると、Azure Data Lake Storage に接続し、SQL を使用して Azure Data Lake Storage データを取得して更新できます。

始める前に

Azure Data Lake Storage コネクタを使用する前に、次の作業を行います。

  • Google Cloud プロジェクトで次の操作を行います。
    • ネットワーク接続が設定されていることを確認します。ネットワーク パターンの詳細については、Network Connectivity をご覧ください。
    • コネクタを構成するユーザーに roles/connectors.admin IAM ロールを付与します。
    • コネクタに使用するサービス アカウントに、次の IAM ロールを付与します。
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      サービス アカウントは特別なタイプの Google アカウントで、Google API のデータにアクセスするのに認証を受ける必要がある人間以外のユーザーを表します。サービス アカウントがない場合は、サービス アカウントを作成する必要があります。詳細については、サービス アカウントを作成するをご覧ください。

    • 次のサービスを有効にします。
      • secretmanager.googleapis.com(Secret Manager API)
      • connectors.googleapis.com(Connectors API)

      サービスを有効にする方法については、サービスを有効にするをご覧ください。

    以前にプロジェクトでこうしたサービスを有効にしていない場合は、コネクタを構成するときにそれを有効にすることを求められます。

  • Azure ストレージ アカウントの作成方法については、ストレージ アカウントを作成するをご覧ください。Azure でコンテナを作成する方法については、コンテナを作成するをご覧ください。Azure でディレクトリを作成する方法については、ディレクトリを作成するをご覧ください。

コネクタを構成する

コネクタを構成するには、データソース(バックエンド システム)への接続を作成する必要があります。接続はデータソースに特有です。つまり、多数のデータソースがある場合は、データソースごとに別々の接続を作成する必要があります。接続を作成する手順は次のとおりです。

  1. Cloud コンソールで、[Integration Connectors] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。

    [接続] ページに移動

  2. [+ 新規作成] をクリックして [接続の作成] ページを開きます。
  3. [ロケーション] セクションで、接続のロケーションを選択します。
    1. リージョン: プルダウン リストからロケーションを選択します

      コネクタをサポートしているリージョンは次のとおりです。

      サポートされているすべてのリージョンの一覧については、ロケーションをご覧ください。

    2. [次へ] をクリックします。
  4. [接続の詳細] セクションで、次の操作を行います。
    1. コネクタ: 使用可能なコネクタのプルダウン リストから [Azure Data Lake Storate] を選択します。
    2. コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
    3. [接続名] フィールドに、接続インスタンスの名前を入力します。

      接続名は次の条件を満たす必要があります。

      • 接続名には英字、数字、ハイフンを使用できます。
      • 文字は小文字のみを使用できます。
      • 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
      • 接続名は 49 文字以内で指定してください。
    4. 必要に応じて、接続インスタンスの [説明] を入力します。
    5. 必要に応じて、Cloud Logging を有効にして、ログレベルを選択します。デフォルトのログレベルは Error に設定されています。
    6. サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
    7. 必要に応じて、接続ノードの設定を構成します。

      • ノードの最小数: 接続ノードの最小数を入力します。
      • ノードの最大数: 接続ノードの最大数を入力します。

      ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。

    8. アカウント: このプロパティには、Azure Data Lake ストレージ アカウントの名前を指定します。
    9. ディレクトリ: このプロパティは、ファイルとフォルダを一覧表示するルートパスを指定します。
    10. ファイル システム: このプロパティには、第 2 世代のストレージ アカウントで使用される FileSystem の名前を指定します。たとえば、Azure blob コンテナの名前です。
    11. チャンクサイズ: 大きなファイルをアップロードするときに使用するチャンクのサイズ(MB 単位)。
    12. サブディレクトリを含める: ADLSGen2 スキーマの [Resources] ビューにサブディレクトリのパスを一覧表示するかどうかを選択します。
    13. 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
    14. [次へ] をクリックします。
  5. [認証] セクションで、認証の詳細を入力します。
    1. [認証タイプ] を選択し、関連する詳細を入力します。

      Azure Data Lake Storage 接続でサポートされる認証タイプは次のとおりです。

      • 共有アクセス署名
      • アカウントのアクセスキー
    2. これらの認証タイプの構成方法については、認証を構成するをご覧ください。

    3. [次へ] をクリックします。
  6. Review: 接続と認証の詳細を確認します。
  7. [作成] をクリックします。

接続構成のサンプル

このセクションでは、Azure Data Lake Storage 接続を作成するときに構成するさまざまなフィールドのサンプル値を示します。

Shared Access Signature 接続タイプ

Fieldname 詳細
場所 us-central1
コネクタ azuredatalakestorage
コネクタのバージョン 1
接続名 adls-gen2-conn-public
Cloud Logging を有効にする
サービス アカウント SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
アカウント google-cloud-dslgen3
ディレクトリ testdirectory1
ファイル システム testcontainer1
サブディレクトリを含める ×
ノードの最小数 2
ノードの最大数 50
共有アクセス署名 SHARED_ACCESS_SIGNATURE
シークレット バージョン 1

アカウント アクセスキーの接続タイプ

Fieldname 詳細
場所 us-central1
コネクタ azuredatalakestorage
コネクタのバージョン 1
接続名 azure-data-lake-conn
Cloud Logging を有効にする
サービス アカウント SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
アカウント google-cloud-dslgen3
ディレクトリ testdirectory1
ファイル システム testcontainer1
サブディレクトリを含める ×
ノードの最小数 2
ノードの最大数 50
アカウントのアクセスキー ACCOUNT_ACCESS_KEY
シークレット バージョン 1

認証を構成する

使用する認証に基づいて詳細を入力します。

  • 共有アクセス署名

    匿名ログインを使用する場合は、[Not Available] を選択します。

    • 共有アクセス署名: 共有アクセス署名を含む Secret Manager の Secret。
  • アカウントのアクセスキー

    匿名ログインを使用する場合は、[Not Available] を選択します。

    • アカウント アクセスキー: アカウントのアクセスキーを含む Secret Manager のシークレット。

エンティティ、オペレーション、アクション

すべての Integration Connectors が、接続されたアプリケーションのオブジェクトを抽象化するレイヤを提供します。アプリケーションのオブジェクトには、この抽象化を通じてのみアクセスできます。抽象化は、エンティティ、オペレーション、アクションとして公開されます。

  • エンティティ: エンティティは、接続されているアプリケーションやサービスのオブジェクト、またはプロパティのコレクションと考えることができます。エンティティの定義は、コネクタによって異なります。たとえば、データベース コネクタでは、テーブルがエンティティであり、ファイル サーバー コネクタでは、フォルダがエンティティです。また、メッセージング システム コネクタでは、キューがエンティティです。

    ただし、コネクタでいずれのエンティティもサポートされていない、またはエンティティが存在しない可能性があります。その場合、Entities リストは空になります。

  • オペレーション: エンティティに対して行うことができるアクティビティです。エンティティに対して次のいずれかのオペレーションを行うことができます。

    使用可能なリストからエンティティを選択すると、そのエンティティで使用可能なオペレーションのリストが生成されます。オペレーションの詳細については、コネクタタスクのエンティティ オペレーションをご覧ください。ただし、コネクタがいずれかのエンティティ オペレーションをサポートしていない場合、サポートされていないオペレーションは Operations リストに含まれません。

  • アクション: コネクタ インターフェースを介して統合で使用できる主要な関数の一つです。アクションを使用すると、1 つまたは複数のエンティティに対して変更を加えることができます。また、使用できるアクションはコネクタごとに異なります。通常、アクションには入力パラメータと出力パラメータがあります。ただし、コネクタがどのアクションもサポートしていない可能性があります。その場合は、Actions リストが空になります。

システムの上限

Azure Data Lake Storage コネクタは、ノードごとに 1 秒あたり 5 件のトランザクションを処理することができ、この上限を超えるトランザクションはすべてスロットルされます。デフォルトでは、Integration Connectors は、接続に 2 つのノードを割り当てます(可用性を高めるため)。

Integration Connectors に適用される上限の詳細については、上限をご覧ください。

アクション

このセクションには、コネクタでサポートされているアクションが一覧表示されます。アクションの構成方法については、アクションの例をご覧ください。

DownloadFile アクション

このアクションにより、ディレクトリまたはコンテナから特定の blob のコンテンツをダウンロードできます。

DownloadFile アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 ダウンロードするファイルのパス(ファイル名を含む)。たとえば、次のように設定します。
  • FILE_NAME
  • dir1/FILE_NAME
  • dir1/dir2/FILE_NAME
HasBytes ブール値 × コンテンツをバイト(Base64 形式)としてダウンロードするかどうか。
  • .pdf.xls.docx などのテキスト以外のファイルをダウンロードするには、HasBytes を true に設定する必要があります。
  • テキスト ファイルをダウンロードするには、HasBytes を true または false に設定します。値を true に設定すると、テキスト コンテンツはバイト(Base64 形式)としてダウンロードされます。
このパラメータのデフォルト値は false です。

DownloadFile アクションの出力パラメータ

アクションが成功すると、ファイルまたは blob の内容が返されます。

DownloadFile アクションの構成方法の例については、アクションの例をご覧ください。

CreateFile アクション

このアクションにより、コンテナまたはディレクトリに blob またはファイルを作成できます。

CreateFile アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 作成するファイルのパス。

CreateFile アクションの構成方法の例については、アクションの例をご覧ください。

CopyFile アクション

このアクションにより、ファイルまたは blob のコンテンツを、同じコンテナまたはディレクトリ内の別のファイルや blob にコピーできます。

CopyFile アクションの入力パラメータ

パラメータ名 データ型 必須 説明
ソースパス 文字列 コピーするファイルのパス。
DestinationPath 文字列 コピー先のファイルのパス。

CopyFile アクションの構成方法の例については、アクションの例をご覧ください。

DeleteObject アクション

このアクションにより、ファイルまたは blob を削除できます。

DeleteObject アクションの入力パラメータ

パラメータ名 データ型 必須 説明
Recursive 文字列 × サブフォルダを含むフォルダのすべてのコンテンツを削除するには、この値を true に設定します。
パス 文字列 削除するファイルまたはフォルダのパス。
DeleteType 文字列
  • Path パラメータで指定したファイルまたはフォルダを削除するには、これを FILESANDFOLDERS に設定します。
  • Path パラメータで指定したフォルダ内のファイルのみを削除するには、これを FILES に設定します。

DeleteObject アクションの構成方法の例については、アクションの例をご覧ください。

LeaseBlob アクション

このアクションを使用すると、blob のロックを作成して管理できます。

LeaseBlob アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 ファイルのパス。
LeaseAction 文字列 実行するリース アクションを指定します。
LeaseDuration 整数 リースの期間を指定します。

LeaseBlob アクションの構成方法の例については、アクションの例をご覧ください。

UploadFile アクション

このアクションにより、ユーザーは特定の blob やコンテナにコンテンツをアップロードできます。

UploadFile アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 アップロードするファイルのパス。
HasBytes ブール値 × コンテンツをバイトとしてアップロードするかどうか。
コンテンツ 文字列 アップロードするコンテンツ。

UploadFile アクションの構成方法の例については、アクションの例をご覧ください。

RenameObject アクション

このアクションにより、ファイルまたはフォルダの名前を変更できます。

RenameObject アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 名前を変更するパス。
RenameTo 文字列 ファイルまたはフォルダの新しい名前。

RenameObject アクションの構成方法の例については、アクションの例をご覧ください。

アクションの例

例 - ファイルをダウンロードする

この例では、バイナリ ファイルをダウンロードします。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [DownloadFile] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "Path": "testdirectory1/test1.pdf",
    "HasBytes": true
    }
  4. アクションが成功すると、DownloadFile タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "Success": "True",
    "ContentBytes": "UEsDBBQABgAIAAAAIQCj77sdZQEAAFIFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooA"
    }]

例 - ファイルをアップロードする

この例では、コンテンツを blob としてアップロードします。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [UploadFile] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "Path": "testblob4",
    "HasBytes": true,
    "Content": "abcdef\nabcdef"
    }
  4. アクションが成功すると、UploadFile タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "Success": "true"
    }]

例 - ファイルを作成する

この例では、指定されたディレクトリにファイルを作成します。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [CreateFile] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "path": "testdirectory1/testblob"
    }
  4. アクションが成功すると、CreateFile タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "Success": "true"
    }]

例 - ファイルをコピーする

この例では、ファイルをある場所から別の場所にコピーします。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [CopyFile] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "SourcePath": "testdirectory1/testblob",
    "DestinationPath": "testblob"
    }
  4. アクションが成功すると、CopyFile タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "Success": "true"
    }]

例 - blob を削除する

この例では、指定した blob を削除します。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [DeleteObject] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "path": "testdirectory1/testblob"
    }
  4. アクションが成功すると、DeleteObject タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "Success": "true"
    }]

例 - blob をリースする

この例では、指定した blob をリースします。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [LeaseBlob] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "Path": "testblob2",
    "LeaseAction": "Acquire",
    "LeaseDuration": 60.0
    }
  4. アクションが成功すると、LeaseBlob タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "LeaseId": "7aae9ca2-f015-41b6-9bdf-5fd3401fc493",
    "Success": "true"
    }]

例 - blob の名前を変更する

この例では、blob の名前を変更します。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [RenameObject] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "Path": "testblob",
    "RenameTo": "testblob6"
    }
  4. アクションが成功すると、RenameObject タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "Success": true
    }]

エンティティ オペレーションの例

このセクションでは、このコネクタでエンティティ オペレーションの一部を実行する方法について説明します。

例 - すべてのレコードを一覧表示する

この例では、Resource エンティティ内のすべてのレコードを一覧表示します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から Resource を選択します。
  3. [List] オペレーションを選択してから、[完了] をクリックします。
  4. 必要に応じて、コネクタタスクの [タスク入力] セクションでフィルタ句を指定して、結果セットをフィルタリングできます。 フィルタ句の値は、常に単一引用符(')内で指定します。

例 - レコードを取得する

この例では、Resource エンティティから、指定した ID のレコードを取得します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から Resource を選択します。
  3. [Get] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタタスクの [タスク入力 セクションで [entityId] をクリックし、[デフォルト値] フィールドに testdirectory1/testblob1 を入力します。

    ここで、testdirectory1/testblob1Resource エンティティ内の一意のレコード ID です。

統合で Azure Data Lake Storage 接続を使用する

接続を作成すると、Apigee Integration と Application Integration の両方で使用できるようになります。この接続は、コネクタタスクを介して統合で使用できます。

  • Apigee Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
  • Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。

Google Cloud コミュニティの助けを借りる

Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。

次のステップ