Azure Data Lake

Azure Data Lake コネクタを使用すると、Azure Data Lake バックエンドに接続し、SQL を使用して Azure Data Lake データを取得および更新できます。

準備

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

  • Google Cloud プロジェクトで次の操作を行います。
    • コネクタを構成するユーザーに 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)

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

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

コネクタを構成する

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

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

    [接続] ページに移動

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

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

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

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

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

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

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

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

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

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

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

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

認証を構成する

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

  • 共有アクセス署名

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

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

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

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

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

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

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

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

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

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

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

システムの上限

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

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

アクション

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

DownloadFile アクション

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

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

パラメータ名 データ型 必須 説明
Path 文字列 ある ダウンロードするファイルのパス(ファイル名を含む)。たとえば、次のように設定します。
  • 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 アクションの入力パラメータ

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

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

CopyFile アクション

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

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

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

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

DeleteObject アクション

この操作により、ファイルや blob を削除できます。

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

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

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

LeaseBlob アクション

このアクションにより、blob のロックを作成して管理できます。

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

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

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

UploadFile アクション

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

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

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

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

RenameObject アクション

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

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

パラメータ名 データ型 必須 説明
Path 文字列 名前を変更するパス。
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 接続を使用する

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

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

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

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

次のステップ