目次

Search

  1. はじめに
  2. 一括取り込みデータベース

一括取り込みデータベース

一括取り込みデータベース

SAP HANAおよびSAP HANA Cloudソース

SAP HANAおよびSAP HANA Cloudソース

データベース取り込みタスクでSAP HANAおよびSAP HANA Cloudソースを使用するには、最初にソースデータベースを準備し、使用に関する考慮事項を確認してください。

ソースの準備:

  • SAP HANA Database Ingestionコネクタは、JDBCを使用してSAP HANAおよびSAP HANA Cloudデータベースに接続し、データとメタデータを読み取って、接続プロパティをテストします。SAP HANA JDBCドライバファイルngdbc.jarをダウンロードし、Secure Agentが実行されているマシンのSecure Agentインストールディレクトリの特定のサブディレクトリにコピーする必要があります。
    1. SAP HANA JDBCドライバのjarファイルngdbc.jarを、Secure Agentが実行されているLinuxまたはWindowsマシンにダウンロードします。
      ダウンロードするファイルが最新バージョンであることを確認します。ファイルのダウンロードで問題が発生した場合は、SAPカスタマサポートにお問い合わせください。
    2. 次のディレクトリにngdbc.jarファイルをコピーします。
      <
      Secure Agent installation directory
      >/ext/connectors/thirdparty/informatica.hanami
    3. Secure Agentを再起動します。
  • 一括取り込みデータベースユーザーを作成します。管理者権限を持つユーザーとしてソースデータベースに接続し、次の文を実行します。
    CREATE USER
    dbmi_user
    password "<
    password
    >" NO FORCE_FIRST_PASSWORD_CHANGE;
    この文は、デフォルトの権限を使用してデータベースにユーザーを作成します。これにより、基本的なデータディクショナリビューを読み取ることができ、必要なCDCオブジェクトをユーザー自身のスキーマに作成することができます。
  • SAP HANAまたはSAP HANA Cloudソースを含むデータベース取り込みタスクをデプロイして実行するには、ソース接続で、次のシステムビューからメタデータやその他の情報を読み取る権限を持つ一括取り込みデータベースユーザー(
    dbmi_user
    )を指定する必要があります。
    • SYS.M_DATABASE - データベースのバージョンを取得するために使用されます。
    • SYS.M_CS_PARTITIONS- テーブルがパーティション化されているかどうかを識別するために使用されます。(SAP HANA Cloudには適用されません)
    • SYS.SCHEMAS - データベースのスキーマのリストを取得するために使用されます。
    • SYS.TABLES - スキーマのテーブル名のリストを取得するために使用されます。
    • SYS.TABLE_COLUMNS - テーブルのカラムメタデータを取得するために使用されます。
    • SYS.INDEXES - テーブルのインデックス情報を取得するために使用されます。
    • SYS.INDEX_COLUMNS - テーブルのインデックス情報を取得するために使用されます。
  • 増分ロードジョブの場合、次の権限を付与します。
    • dbmi_user
      のPKLOGおよびシャドー_CDCテーブルに行を書き込むトリガの場合は、
      dbmi_user
      のスキーマに対するINSERTアクセス権を、ソーステーブルのスキーマを所有するユーザー(
      schema_user
      )に付与します。
      GRANT INSERT ON SCHEMA
      dbmi_user
      TO
      schema_user
      ;
    • トリガを使用してschema_userのスキーマ内のソーステーブルから変更データをキャプチャするには、次のいずれかの文を実行します。
      GRANT TRIGGER ON SCHEMA
      schema_user
      TO
      dbmi_user
      ;
      この文は、スキーマ内のすべてのテーブルに対するトリガアクセス権を付与します。
      - or -
      GRANT TRIGGER ON
      database
      .
      table_name
      TO
      dbmi_user
      ;
      この文は、特定のソーステーブルに対するトリガアクセス権を付与します。選択した少数のテーブルからデータをキャプチャする場合は、この文を使用します。CDC対象のソーステーブルごとに、付与を繰り返します。
  • 初期ロードジョブの場合、ソーステーブルからデータを読み取るために、次のGRANT文のいずれかを実行します。
    GRANT SELECT ON SCHEMA
    schema_user
    TO
    dbmi_user
    ;
    この文は、スキーマ内のすべてのテーブルに対するSELECTアクセス権を付与します。
    - or -
    GRANT SELECT ON
    database
    .
    table_name
    TO
    dbmi_user
    ;
    この文は、特定のソーステーブルに対するSELECTアクセス権を付与します。データを読み取るソーステーブルごとに、この付与を繰り返します。
  • SAP HANA Cloudソースの場合、暗号化するために、接続にはSAP HANA JDBCカスタム接続プロパティ設定が必要です。SAP HANA Database Ingestionプロパティの
    [詳細接続プロパティ]
    フィールドに次のプロパティを入力します。
    encrypt=true&validateCertificate=false

使用に関する考慮事項:

  • 一括取り込みデータベース
    は、初期ロードジョブと増分ロードジョブではRed Hat LinuxまたはSUSE Linux上のSAP HANAおよびSAP HANA Cloudソースをサポートしますが、初期ロードジョブと増分ロードジョブの組み合わせではサポートしません。
  • データベース取り込み増分ロードジョブは、最大120文字の長さのテーブル名をサポートします。
  • SAP HANAまたはSAP HANA Cloudソースを使用した増分ロードジョブでは、スキーマドリフトオプションはサポートされていません。
  • 一括取り込みデータベース
    では、初期ロードジョブまたは増分ロードジョブの場合、SAP HANAソーステーブルにプライマリキーは必要ありません。
  • 一括取り込みデータベース
    は、ターゲットのデフォルトのカラムデータ型にマッピングされている場合でも、次のソースデータ型をサポートしていません。
    • ARRAY
    • BINTEXT
    • BLOB
    • CLOB
    • nclob
    • ST_GEOMETRY
    • ST_POINT
    • TEXT
    一括取り込みデータベース
    ジョブは、これらのデータ型を持つカラムにはnullをプロパゲートします。
    ALPHANUM、BINTEXT、CHAR、およびCLOBデータ型は、SAP HANA Cloudでは使用できません。
    SAP HANAデータ型からターゲットデータ型へのデフォルトのマッピングについては、Default Data Type Mappingsを参照してください。
  • 増分ロードジョブの場合、
    一括取り込みデータベース
    では、ソースデータベースに次のテーブルが必要です。
    • PKLOGログテーブル。変更タイプとタイムスタンプ、トランザクションID、スキーマ名、テーブル名など、キャプチャされたDML変更に関するメタデータが含まれます。
    • PROCESSEDログテーブル。最新の変更データキャプチャサイクルの最大シーケンス番号(SCN)が含まれます。
    • シャドー<
      スキーマ
      >。<
      テーブル名
      >_CDCテーブル。トランザクションIDやタイムスタンプなどのメタデータとともに、ソーステーブルからキャプチャされた更新の操作前のイメージと、挿入、更新、および削除の操作後のイメージが含まれます。変更がキャプチャされるソーステーブルごとにシャドーテーブルが存在する必要があります。
    また、
    一括取り込みデータベース
    は、AFTER DELETE、AFTER INSERT、およびAFTER UPDATEトリガを使用して、各ソーステーブルのDML変更の操作前のイメージと操作後のイメージを取得し、変更のエントリをPKLOGテーブルとシャドー_CDCテーブルに書き込みます。
    一括取り込みデータベース
    は、処理された挿入、更新、削除行ごとに、SAP HANAシーケンス値をPKLOGテーブルとシャドー_CDCテーブルにも書き込みます。シーケンス値は、CDC処理中にシャドー_CDCテーブルの行をPKLOGテーブルの行にリンクします。
    タスクをデプロイすると、
    一括取り込みデータベース
    は、PKLOG、PROCESSED、およびシャドー_CDCテーブル、トリガ、およびシーケンスが存在することを検証します。これらのアイテムが存在しない場合、デプロイ操作は失敗します。
  • タスクウィザードの
    [ソース]
    ページから、PKLOG、PROCESSED、シャドー_CDCテーブル、トリガ、およびシーケンスを作成するCDCスクリプトをダウンロードまたは実行できます。SAP HANA Database Ingestionプロパティで
    [トリガプレフィックス]
    の値を指定した場合、生成されたトリガの名前の先頭には
    プレフィックス
    _が付きます。
    デフォルトでは、トリガはアプリケーションのシステムユーザーをキャプチャします。代わりにトランザクションユーザーをキャプチャする場合は、CDCスクリプトをダウンロードし、スクリプト内の「APPLICATIONUSER」の箇所をすべて「XS_APPLICATIONUSER」に置き換えます。例えば、AFTER DELETEトリガでこの置換を行うと、アーカイブプロセスに関連する削除を識別して除外できます。
  • 増分ロードジョブの実行中に、テーブルのサイズを維持するために、古いレコードをPKLOGテーブルおよびシャドー_CDCテーブルから削除するハウスキーピングがいくつか行われます。PKLOGテーブルとシャドー_CDCテーブルの自動ハウスキーピングを有効にするには、SAP HANA Database Ingestion接続プロパティの
    [ログのクリア]
    フィールドで、0より大きい値を指定します。デフォルト値は14日間で、最大値は366です。0の値を指定すると、ハウスキーピングは無効になります。
    ハウスキーピングは増分ロードジョブの実行中に行われます。複数のジョブが異なるテーブルに対して実行されている場合、各ジョブはPKLOGテーブルと、そのジョブに対してのみ定義されているシャドー_CDCテーブルに対してハウスキーピングを実行します。ジョブからソーステーブルを削除しても、対応するシャドー_CDCテーブルのパージは行われません。
  • SAP HANAソースとMicrosoft Azure Synapse Analyticsターゲットを持つデータベース取り込みタスクのデプロイで、ソーステーブルに長さの長い複数カラムのプライマリキーが含まれている場合、デプロイに失敗することがあります。この場合、プライマリキーの長さを短くしてから、タスクを再度デプロイしてください。