9.2.29 Oracle AI Data Platform
概要
Oracle AI Data Platformは、データ・レイク、分析、オーケストレーション・サービスを1つの統合プラットフォームにまとめる新製品です。一元化されたガバナンス、組込みのコラボレーション、および内部と外部のデータソース間のシームレスな統合により、企業はデータ主導型の意思決定を加速し、より高速で効率性の高い大規模なデータ分析を実行できます。
親トピック: ターゲット
9.2.29.1 詳細な機能
概要
Oracle AI Data Platformへのレプリケーションでは、ステージおよびマージ・データ・フローが使用されます。Oracle GoldenGateの証跡からの変更データは、OCIオブジェクト・ストレージの一時的なステージング場所(外部ステージ)にマイクロバッチでステージングされます。ステージングされたレコードは、マージSQL文を使用してOracle AI Data Platformのターゲット表にマージします。デフォルトでは、ステージングされたレコードは3分ごとにマージされます。
9.2.29.1.1 ステージングの場所
Oracle GoldenGate証跡ファイルからの変更データ・レコードは、Avro OCF (オブジェクト・コンテナ・フォーマット)にフォーマットされ、ステージングの場所にアップロードされます。
- OCIオブジェクト・ストレージ
親トピック: 詳細な機能
9.2.29.1.2 データベース・ユーザー権限
- ターゲット表に対するSELECT、CREATE、INSERT、UPDATE、および DELETE権限。
- 外部表に対するSELECT権限、CREATE権限、ALTER権限およびDROP権限。
親トピック: 詳細な機能
9.2.29.1.3 前提条件
- Oracle AI Data Platform用にOracle Cloud Infrastructureアカウントを設定する必要があります。
- Apache Spark用のSimba JDBCドライバ。Simba JDBCドライバは、Oracle AI Data Platformコンソールのクラスタ詳細ページからダウンロードできます。詳細は、「Apache Spark用のSimba JDBCドライバ」を参照してください。
親トピック: 詳細な機能
9.2.29.2 構成
Oracle AI Data Platformレプリケーション・プロパティ構成は、Replicatプロパティ・ファイルに格納されます。
親トピック: Oracle AI Data Platform
9.2.29.2.1 自動構成
Oracle AI Data Platformレプリケーションでは、ファイル・ライター・ハンドラ、OCIイベント・ハンドラ、ターゲットOracle AI Data Platformイベント・ハンドラなどの複数のコンポーネントを構成します。
自動構成機能を使用すると、これらのコンポーネントを自動的に構成して手動構成を最小限に抑えることができます。
自動構成によって変更されたプロパティもハンドラのログ・ファイルに記録されます。
パラメータgg.stageにより、ステージングの場所が決まります。
Oracle AI Data Platformターゲットに複製する自動構成を有効にするには、パラメータgg.target=aidpを設定します。
gg.stageが設定されていない場合、OCIオブジェクト・ストレージがステージングの場所として使用されます。
また、JDBCメタデータ・プロバイダは、Oracle AI Data Platformからターゲット表のメタデータを取得するように自動的に有効化されます。
ターゲット表がない場合は、自動的に作成されます。
9.2.29.2.1.1 ファイル・ライター・ハンドラの構成
ファイル・ライター・ハンドラ名はaidpという値に事前設定されており、そのプロパティはOracle AIデータ・プラットフォームに必要な値に自動的に設定されます。
親トピック: 自動構成
9.2.29.2.1.2 OCIイベント・ハンドラの構成
OCIイベント・ハンドラ名は、値ociに事前設定されています。OCI構成と一致するように構成する必要があります。
gg.eventhandler.oci.bucketMappingTemplate=container1親トピック: 自動構成
9.2.29.2.1.3 Oracle AI Data Platformイベント・ハンドラの構成
Oracle AI Data Platformイベント・ハンドラ名は、値aidpに事前に設定されています。
次に、Oracle AI Data Platformイベント・ハンドラで使用可能な構成プロパティを示します。必要なプロパティは、Oracle AI Data Platform構成と一致するように変更する必要があります。
表9-36 Oracle AI Data Platformイベント・ハンドラの構成プロパティ
| プロパティ | 必須/オプション | 有効な値 | デフォルト | 説明 |
|---|---|---|---|---|
gg.eventhandler.aidp.connectionURL |
必須 |
|
なし | Oracle AI Data Platformに接続するためのJDBC URLを指定します。 |
gg.eventhandler.aidp.maxConnections |
オプション |
整数値 |
10 |
このパラメータは、ターゲット・データベースへの同時JDBCデータベース接続の数を制御するために使用できます。 |
gg.eventhandler.aidp.connectionRetries |
オプション |
整数値 |
3 |
ターゲット・データ・ウェアハウスへの接続が再試行される回数を指定します。 |
gg.eventhandler.aidp.connectionRetryIntervalSeconds |
オプション |
整数値 |
30 |
接続再試行間の遅延(秒単位)を指定します。 |
gg.eventhandler.aidp.createTable |
オプション |
|
|
パラメータ値がtrueに設定されている場合。欠落しているターゲット表が自動的に作成されます。 |
gg.eventhandler.aidp.detectMissingBaseRow |
オプション |
|
|
ベース行のない |
gg.eventhandler.aidp.dropStagingTablesOnShutdown |
オプション |
|
False |
パラメータ値をtrueに設定すると、Oracle GoldenGateによって作成された一時ステージング表が、Replicatの正常な停止時に削除されます。 |
gg.handler.aidp.fileRollInterval |
オプション |
デフォルトの測定単位はミリ秒です。 |
3m |
このパラメータによって、データがAIDPにマージされる頻度が決まります。 注意: デフォルト値を3mから大きい値に増やすと、Replicat内部メモリーに格納されるデータの量が増加します。これにより、メモリー不足エラーが発生し、Replicatプロセスが停止する可能性があります。 |
親トピック: 自動構成
9.2.29.2.2 Oracle AI Data Platformへの認証
jdbc:spark://<Host>;SparkServerType=AIDP;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]- Oracle AI Data Platform JDBCドライバのコンピュート設定
- Oracle AI Data Platformコンピュート・クラスタの接続詳細
- Apache Spark用のSimba JDBCドライバ
- Oracle AI Data Platformの認証方法
親トピック: 構成
9.2.29.2.2.1 Oracle AI Data Platform JDBCドライバのコンピュート設定
表9-37 Oracle AI Data Platform JDBCドライバのコンピュート・リソースの構成設定
| 設定 | 説明 |
|---|---|
|
ホスト |
Oracle AI Data Platformコンピュート・リソースのサーバー・ホスト名値を指定します。 |
|
SparkServerType |
Oracle AI Data Platformコンピュート・リソースのsparkサーバー・タイプ(AIDP)を指定します。 |
|
HTTPパス |
Oracle AI Data Platformコンピュート・リソースのHTTPパス値を指定します。 |
親トピック: Oracle AI Data Platformへの認証
9.2.29.2.2.2 Oracle AI Data Platformコンピュート・クラスタの接続詳細
- Oracle AI Data Platformインスタンスにログインします。
- サイドバーで、必要なワークスペースを選択し、「コンピュート」をクリックします。
- 使用可能なクラスタのリストで、ターゲット・クラスタの名前をクリックします。
- 「接続詳細」タブをクリックすると、JDBC URLの詳細と、そのクラスタに関連付けられているドライバの詳細が表示されます。
- 「JDBC」タブでは、JDBC URLを使用できます。
親トピック: Oracle AI Data Platformへの認証
9.2.29.2.2.3 Apache Spark用のSimba JDBCドライバ
- Oracle AI Data Platformインスタンスにログインします。
- 必要なワークスペースを選択します。
- 「コンピュート」をクリックします。
- 使用可能なクラスタのリストから、ターゲット・クラスタの名前を選択します。
- 「接続詳細」タブをクリックすると、JDBC URLの詳細と、そのクラスタに関連付けられているドライバの詳細が表示されます。
- 「JDBC」タブで、「JDBCドライバのダウンロード」オプションを選択してJDBCドライバjarを取得します。
ノート:
Oracleでは、Oracle AI Data PlatformコンソールからダウンロードしたZIPパッケージに含まれるSimba JDBC jarのリーン・バージョンを使用することをお薦めします。Simba JDBC jarのリーン・バージョンは依存性が小さくなっています。小さくなったこれらの依存性により、Oracle GoldenGateとSimba JDBCドライバ間の依存性の解決の競合が防止され、よりスムーズな統合および互換性を確保するのに役立ちます。リーンSimba JDBCドライバjarは、ダウンロードしたZIPアーカイブのlibsディレクトリにあります。
親トピック: Oracle AI Data Platformへの認証
9.2.29.2.2.4 Oracle AI Data Platformの認証方法
OCI APIキー
Oracle AI Data Platform JDBCドライバでは、次の認証方法がサポートされています:
- AI Data Platformインスタンスが存在するOCIテナンシで、右上隅にある「ユーザー」アイコンに移動します。
- 「ユーザー設定」、「トークンおよびキー」、「APIキーの追加」の順にクリックします。
- 「APIキー・ペアの生成」をクリックします。
- 公開キーと秘密キーをダウンロードします。
- 「追加」をクリックして、公開キーと秘密キーを追加します。
- 表示されたウィンドウから、構成ファイルのプレビューをコピーし、
~/.oci/configファイルにコンテンツを追加します。OCI構成ファイルの例
[DEFAULT] user=ocid1.user.oc1..mockValue fingerprint=mockFingerPrintValue tenancy=ocid1.compartment.oc1..mockValue region=us-phoenix-1 key_file=<path to your private keyfile>ノート:
- Simba JDBCドライバでは、プロファイル名がDEFAULTの
~/.oci/configファイルにOCI構成のデフォルト構成があります。 - プロパティを変更する場合は、新しい構成ファイル・パスとOCIプロファイルの新しい名前を示すOCIConfigFileおよび
OCIProfileキーを使用して、JDBC URLに同様の詳細を指定します。次に例を示します:jdbc:spark://sample.url.com/default;SparkServerType=AIDP;httpPath=cliservice/mockPath;OCIConfigFile=/tmp/config;OCIProfile=MY_PROFILE
- Simba JDBCドライバでは、プロファイル名がDEFAULTの
親トピック: Oracle AI Data Platformへの認証
9.2.29.2.3 クラスパス構成
Oracle AI Data Platformイベント・ハンドラは、Apache SparkのSimba JDBCドライバを使用します。
Simba JDBCドライバのクラスパス構成については、次のことを確認してください:
- クラスパスにJDBCドライバへのパスが含まれている。
-
OCIオブジェクト・ストア・イベント・ハンドラの依存性を含めている。
-
gg.classpath configurationパラメータを編集して、オブジェクト・ストア・イベント・ハンドラの依存性とApache Spark用のSimba JDBCドライバへのパスを含めている。
親トピック: 構成
9.2.29.2.4 INSERTALLRECORDSのサポート
Replicatの一括挿入操作を有効にするには、Replicatパラメータ・ファイル(.prm)でINSERTALLRECORDSパラメータを設定します。これにより、ターゲット表へのデータ・ロードが最適化されます。
gg.handler.aidp.maxFileSize(バッチ・サイズのデフォルト値が1GB)。gg.handler.aidp.fileRollInterval(バルク挿入頻度のデフォルト値が3分)
親トピック: 構成
9.2.29.2.5 操作集計
操作集計では、同じ行に対する複数の操作が、しきい値に基づいて単一の出力操作に結合されます。
親トピック: 構成
9.2.29.2.5.1 インメモリー操作の集計
デフォルトでは、操作レコードはインメモリーで集計されます。マージ間隔は、gg.handler.aidp.fileRollIntervalプロパティを使用して調整できます。gg.handler.aidp.fileRollIntervalプロパティのデフォルト値は3分です。
ノート:
インメモリー操作集計には、追加のJVMメモリー構成が必要です。親トピック: 操作集計
9.2.29.2.6 エンドツーエンド構成
自動構成を使用するエンドツーエンド構成の例を次に示します。
OCIオブジェクト・ストレージを使用したOracle AI Data Platform
# Properties file for Replicat
# Configuration to load GoldenGate trail operation records into AI Data Platform using OCI object store staging location.
# Note: Recommended to only edit the configuration marked as TODO
gg.target=aidp
# OCI Event handler.
#TODO: Edit the OCI region
gg.eventhandler.oci.region=<oci-region>
#TODO: Edit the OCI compartment OCID
gg.eventhandler.oci.compartmentID=<oci-compartment-ocid>
#TODO: Edit the OCI bucket name
gg.eventhandler.oci.bucketMappingTemplate=<oci-bucket-name>
#TODO: Edit the OCI Config Profile name
gg.eventhandler.oci.profile=<oci-profile-name>
#TODO: Edit the OCI Config file path
gg.eventhandler.oci.configFilePath=./oci/config
# AI Data Platform Event Handler.
#TODO: Edit JDBC ConnectionUrl
gg.eventhandler.aidp.connectionURL=<connection-url>
#TODO: Edit the classpath to include OCI Event handler dependencies and Simba JDBC driver.
gg.classpath=/path/to/oci-dep/*:/path/to/simba-jdbc-driver/*親トピック: 構成
9.2.29.2.7 表マッピング
MAP文でターゲット・カタログが指定されていない場合、Oracle AI Data Platformワークスペースではhiveがデフォルト・カタログとして使用されます。イベント・ハンドラは、初期化時にこれをデフォルト・カタログとして使用し、ログ・メッセージを接続カタログは[hive]に設定されていますのように表示します。
表9-38 マッピング表
| Replicatパラメータ・ファイルのMAP文 | AIDPカタログ | AIDPスキーマ | AIDP表 |
|---|---|---|---|
MAP SCHEMA_1.TABLE_1, TARGET "schema_1"."table_1"; |
デフォルト・カタログ(hive) |
schema_1 |
table_1 |
MAP DB_1.SCHEMA_1.TABLE_1, TARGET "db_1"."schema_1"."table_1" |
db_1 |
schema_1 |
table_1 |
親トピック: 構成
9.2.29.3 トラブルシューティングと診断
- サポートされていないOracle AI Data Platformデータ型:
ARRAYMAPSTRUCT
-
動的値を使用したバケット・マッピング・テンプレートの作成の回避:
動的値を使用するOCIイベント・ハンドラのバケット・マッピング・テンプレートを作成しないようにします。これは、1つの表に対して複数のバケットが生成される可能性があるためです。アプリケーションがREFRESH SQL文を使用して新しい利用可能なステージングされたファイルで外部テーブルを更新するので、結果に一貫性がなくなる可能性があります。そのため、特定の表のすべてのステージング・ファイルの場所は一貫している必要があります。- 無効なバケット・マッピング・テンプレートの例:
test_run1_${tableName}_${currentTimestamp}を使用します。ここで、currentTimestampは動的タイムスタンプ値に置き換えられます。たとえば、
2025-09-02_05-54-26.166の場合、test_run1_HISTORY_2025-09-02_05-54-26.166、test_run1_HISTORY_2025-09-02_06-21-46.006、test_run1_NEW_ORDER_2025-09-02_05-54-28.005などの複数のバケットが生成されます。
- 有効なバケット・マッピング・テンプレートの例:
- 定数バケット・マッピング・テンプレート(
testrun1など)を使用すると、Replicatの実行全体に対して、同じ単一バケット内の表ごとに一意の単一パスが確保されます。 test_run1_${tableName}などのテンプレートを使用すると、test_run1_HISTORY, test_run1_NEW_ORDERなどのソース表ごとに一意の単一バケットが生成されます。
- 定数バケット・マッピング・テンプレート(
- 無効なバケット・マッピング・テンプレートの例:
- コンポーネントの共存:
外部ステージの場所を使用する場合、Replicatプロセスが実行されているマシンの場所/リージョン、およびオブジェクト・ストアのリージョンは、適用プロセスの全体的なスループットに影響します。最大限のスループットを得るには、理想的にはコンポーネントを同じリージョンまたはできるかぎり近くに配置する必要があります。
- ターゲット表に適用されないDDL:
Oracle GoldenGate for Distributed Applications and AnalyticsはDDLレプリケーションをサポートしていません
- 1900-01-01より前のタイムスタンプ値の処理:
Oracle AI Data Platformは現在、内部日付表現のため、デフォルトで1900-01-01より前のタイムスタンプのデータ型の値をサポートしていません。
1900-01-01より前のタイムスタンプ値の書込みを有効にするには、クラスタ構成で次のプロパティを設定します:
クラスタを再起動して、変更を適用します。spark.sql.parquet.int96RebaseModeInWrite=CORRECTED
親トピック: Oracle AI Data Platform