with の App Connect 使い方 Amazon Redshift

Amazon Redshift は、 AWSによるフル・マネージド・データウェアハウス・ソリューションであり、大量の分析データの保管と照会を可能にします。 この製品は、SQL を使用して、さまざまなデータ・ストアにわたって構造化データと半構造化データを分析します。これにより、専用のデータウェアハウスをセットアップすることなく、データにアクセスして分析することができます。

Amazon Redshift への接続

App Connect Designer Connect > Applications and APIs ページ(以前の Catalog ページ) またはフローエディタで表示される接続フィールドを入力します。 必要に応じて Amazon Redshift 管理者と協力してこれらの値を取得してください。

Amazon Redshift 接続フィールド:
「接続」フィールド 説明 適用範囲
データベース・ホスト名 Amazon Redshift データベース・サーバーの完全修飾ホスト名または IP アドレス。 例えば、 myserver.abc.com または 192.0.2.24などです。 App Connect in containers そして App Connect
データベース・ポート Amazon Redshift データベース・サーバーが着信クライアント接続を listen するために使用するポート番号
データベース名 接続されている Amazon Redshift データベースの名前
ユーザー名 Amazon Redshift データベース・アカウントにアクセスするためのユーザー名
パスワード Amazon Redshift データベース・アカウントにアクセスするためのパスワード
スキーマ アクセスされるデータベース・オブジェクトのスキーマ名。 このフィールドをブランクのままにすると、ユーザーに関連付けられているデフォルト・スキーマが使用されます。
最大プール・サイズ 単一の接続プール内で許可されるデータベース接続の最大数。 指定されない場合、値はデフォルトで 0 (ゼロ) になります。
追加パラメーター name1=value1;name2=value2 の形式の追加パラメーターの名前または値のペア
プライベート・ネットワーク接続

' App Connectがプライベートネットワークへの接続に使用するプライベートネットワークエージェントの名前を選択します。 このリストには、プライベートネットワークページで作成されたプライベートネットワークエージェントの名前が入力されます。 詳細は「プライベートネットワークへの接続参照。

エンドポイントに接続するには Amazon RedshiftApp Connect Designer の [Applications and APIs ] ページから初めてエンドポイントに接続するには、 を展開し、[Connect] をクリックします。 Amazon Redshift を展開し、[ Connect] をクリックします。 詳細については、 アカウントの管理を参照してください。

ヒント:

App Connectで作成したアカウントをフローで使用する前に、アカウントを識別しやすいように意味のある名前に変更してください。 アプリケーションとAPI ページ のアカウント名を変更するには、アカウントを選択し、オプションメニュー(⋮)を開き、 アカウント名変更 をクリックします。

一般的な考慮事項

Amazon Redshiftで App Connect Designer を使用する前に、以下の考慮事項に注意してください。

  • Amazon Redshift コネクターは、動的ディスカバリーをサポートし、 JDBC フレームワークを使用して開発されます。
  • メタデータ・フィールドとその関連説明は、実行時に動的にロードされ、表形式で表示されます。 これらのフィールドの表示、順序、および大/小文字は、エンドポイントからそのまま表示されるため、制御できません。
  • カタログ・ページ内の表名にも動的な動作があり、その表示順序を App Connect レベルで制御することはできません。
  • ターゲット・バインディング・フィールドには、オプションのフィールド「 スキーマ」があります。 スキーマ が指定されていない場合は、パブリック・スキーマが使用され、その表がそのアカウントの下にリストされます。 「スキーマ」フィールドに有効な値を指定すると、表がリストされます。
  • Amazon Redshift UI では、表、スキーマ、およびデータベースをいくつでも作成できます。
  • App Connect フローで表、スキーマ、およびデータベースを使用するには、新しく作成された表、スキーマ、およびデータベースにいくつかの特権またはアクセス権限付与を付与する必要があります。
  • すべてのコマンドまたは権限付与は、表レベルおよびスキーマ・レベルで行う必要があります。これにより、作成された新規データベースに自動的にアクセスできるようになります。 以下に、一連のコマンドの例をいくつか示します。
    - GRANT USAGE ON SCHEMA "cctforappconnect" TO dev;
    - GRANT CREATE ON SCHEMA "cctforappconnect" TO dev;
    - GRANT SELECT on "cctdata"."cctforappconnect"."author" TO dev;
    - GRANT INSERT on "cctdata"."cctforappconnect"."author" TO dev;
    - GRANT UPDATE on "cctdata"."cctforappconnect"."author" TO dev;
    スキーマを含む Amazon Redshift UI
    データベースを含む Amazon Redshift UI
    ヒント: 上記の grant ステートメントでは、 cctdata が新規データベース、 cctforappconnect がそのデータベースの下のスキーマ、 author が必要なすべての権限を関連付ける表です。 ここで、 dev は、これらすべての権限を付与するデータベース・ユーザーです。

    これらの権限を付与するには、スーパーユーザーとして awsuser を使用する必要があります。これは、これらの権限を作成したユーザーに付与するためのすべての特権がに付与されているためです。 詳しくは、 AWS ドキュメントページの GRANTを参照。

  • 特定の表に対して制限された許可が付与されている場合、その表に対して実行できるのはそれらの操作のみです。 例えば、表に SELECT 権限のみが付与されている場合に INSERT または UPDATE 操作を試行すると、その操作は許可エラーで失敗します。

    サンプル・エラー・メッセージの例:
    {
      "message": "The query execution on the \"redshift\" database failed with an error: \"[IBM App Connect][Redshift JDBC Driver][Redshift]permission denied for relation test111. \".",
      "action": "Take the corrective action for your database type and then retry the operation.",
      "detail": "",
      "url": "",
      "data": {
        "errorDetail": "{\"type\":\"SQLException\",\"message\":\"[IBM App Connect][Redshift JDBC Driver][Redshift]permission denied for relation test111. \",\"SQLState\":\"42501\",\"errorCode\":\"0\",\"state\":\"425010\",\"inserts\":[\"amazonredshift\",\"redshift\",\"[IBM App Connect][Redshift JDBC Driver][Redshift]permission denied for relation test111. \"]}"
      }
    }
    上記のエラーは実行時にスローされ、許可が制限されていても、カタログ・ページではすべての操作が引き続き表示されます (例えば、表に対して SELECT のみが付与されているが、カタログ・ページでは他の操作 (INSERT または UPDATE) を表示することができます)。
  • Amazon Redshift は、基本キーを unique フィールドではなく、その結果として重複レコードが許可される non null フィールドにします。
  • DELETE 操作および UPDATE 操作の場合、複数のレコードが where 条件に一致すると、すべてのレコードがその操作の影響を受けることが観察されます。 例えば、 ID=10の 25 個のレコードがあり、 ID=10を指定して UPDATE を実行しようとすると、データベース内のすべての 25 個のレコードが更新され、出力内のカウントは同じになります。 DELETE 操作でも同様の動作が見られます。
  • UPSERT 命令では、条件が複数のレコードに一致する場合、以下のエラーが戻されます。
    { "message": "The update or create action found multiple records.", "action": "Ensure that the 'where' expression on the update or create action matches a maximum of one record.", "detail": "The 'where' clause for the update or create action matched multiple records in the application, but it can only update or create one record at a time.", "url": "", "data": { "errorDetail": "{\"statusCode\":400,\"message\":\"There are multiple instances found. UpsertWithWhere Operation will not be performed!\"}" } }
  • Amazon Redshift は、事前定義された機能を持つ 2 つのデータ・タイプをサポートします。
    • GeometryType:GeometryTypeは、入力ジオメトリのサブタイプを文字列として返します。

      構文: GeometryType(geom)

    • HyperLogLog:HLL_CREATE_SKETCH関数は、入力式値をカプセル化したHLLSKETCHデータ型を返します。

      構文: HLL_CREATE_SKETCH (aggregate_expression)

      注:
      • App Connect UI を介してこの関数を渡すと、関数ではなく STRING として扱われます。 その状態でエラーが発生する可能性があります。
      • Amazon Redshift UI は両方のデータ・タイプ値を 16 進形式で予期しますが、 App Connect はこれらの関数を 16 進形式で変換しないことに注意してください。

        このようなシナリオでは、サポートされる関数を 16 進形式に変換してから、 App Connect UI を介して渡す必要があります。 これらのデータ型でサポートされている関数の詳細については GeometryTypeAWS および HLL_CREATE_SKETCH関数を参照。

  • Amazon Redshift (JDBC フレームワーク・ベースのコネクター) は、接続時に 「追加パラメーター」 フィールドで指定できる追加のドライバー・プロパティーをサポートします。 のドライバがサポートする接続プロパティとそのデフォルト値の詳細については、 接続プロパティの説明を参照してください。 Amazon Redshift のドライバがサポートする接続プロパティとそのデフォルト値の詳細については、 接続プロパティの説明を参照してください。
  • (一般的な考察) App Connect デザイナーアプリケーションとAPI ページ で利用可能なトリガーイベントとアクションのリストを見ることができます。

    一部のアプリケーションでは、イベントとアクションは環境に依存し、コネクタが設定可能なイベントと動的なアクション検出をサポートしているかどうかによって異なります。 アプリケーションが構成可能イベントをサポートしている場合は、イベント・リストの下に 「さらに構成可能イベントを表示」 リンクが表示されます。 アプリケーションがアクションの動的ディスカバリーをサポートしている場合は、アクション・リストの下に 「さらに表示」 リンクが表示されます。

  • (一般的な考慮事項) アプリケーションで複数の勘定科目を使用している場合、そのアプリケーションのアクションを選択したときに表示されるフィールドのセットは、勘定科目ごとに異なる可能性があります。 フロー・エディターでは、一部のアプリケーションは常に、アクションの静的フィールドのキュレートされたセットを提供します。 他のアプリケーションは、動的ディスカバリーを使用して、接続先のインスタンスで構成されているフィールドのセットを取得します。 例えば、アプリケーションの 2 つのインスタンスに対して 2 つのアカウントがある場合、最初のアカウントは、すぐに使用できる設定を使用する可能性があります。 ただし、2 番目のアカウントは、追加のカスタム・フィールドを使用して構成されている可能性があります。

イベントとアクション

Amazon Redshift イベント

これらのイベントは、フローをトリガーしてフロー内のアクションの完了を開始する、このアプリケーション内の変更に関するものです。

より多くの設定可能なイベントを表示します:デフォルトで表示されるイベントは、最適化された接続を使用して事前に設定されています。 新規または更新されたオブジェクトについてこのアプリケーションをポーリングすることによってフローをトリガーできるイベントを構成すると、さらに多くの項目が使用可能になります。

Amazon Redshift アクション

フローは、このアプリケーションに対してこれらのアクションを実行します。

オブジェクト アクション 説明
カスタム SQL カスタム SQL の実行 カスタム SQL 照会を実行します。 DDL および DML ステートメントをサポートします。

App Connect を Amazon Redshiftに接続すると、その他の使用可能な項目がリストされます。

Amazon Redshift を使用するテンプレートのダッシュボード・タイル

テンプレートを使用して、 Amazon Redshift のフローを素早く作成します。

App Connect テンプレートを使用して、 Amazon Redshiftでアクションを実行するフローを素早く作成する方法について説明します。 たとえば、 Discover ページに移動してを検索してください Amazon Redshift

Amazon Redshift を使用するテンプレートのダッシュボード・タイル
詳細ビューの Amazon Redshift フロー

を使用して App Connect、と統合する Amazon Redshift フローを構築します。

IBM® コミュニティのブログを読んで、レコード Amazon Redshift から取得した新規従業員ごとに Google Sheets スプレッドシートに新しい行を作成する方法を確認してください。 「ブログを読む」 をクリックしてブログに移動します。