※ 本記事は、Elói Lopesによる”Oracle OCI GoldenGate to Microsoft Fabric Lakehouse Data Replication“を翻訳したものです。

2025年5月30日


はじめに

Oracle Cloud Infrastructure GoldenGate は、リアルタイムかつ大規模にデータを移動できる、フルマネージドかつクラウドネイティブなサービスです。Big Data 向けGoldenGateの基本機能に加えて、自動スケーリング、柔軟でデータ・スループットに基づくライセンス体系、ユーザー体験の向上といった、フルマネージドサービスならではの利点も備えています。

現在、OCI GoldenGate は Fabric Lakehouse をターゲットとしてサポートしています。OCI GoldenGate を使用することで、Fabric Lakehouse への初期ロードや、初期ロードと連携した CDC(変更データキャプチャ)レプリケーションを実行できます。本記事では、初期ロードの設定方法と、それを CDC レプリケーションと同期する方法について説明します。

まだデプロイメントを作成していない場合はデプロイメントの作成ドキュメントを、接続が未作成の場合は接続の作成ドキュメントを参照してください。

本記事ではソースとして Autonomous Data Warehouse(ADW)を使用しますが、GoldenGate がサポートする任意のソースを使用することも可能です(ただし、一部設定が異なる場合があります)。

GG Azure Lakehouse_Medium

前提条件

  • Oracle と Distributed Applications and Analytics(DAA)向けのデプロイメントが作成されていること

  • Oracle ADW 用の接続が Oracle デプロイメントに割り当てられていること

 

Fabric Lakehouse 接続の作成

OCI GoldenGate で Microsoft Fabric Lakehouse 用の接続を作成するには:

  • OCI GoldenGate の概要ページからConnectionsをクリックする。
  • ConnectionsページでCreate Connectionをクリックする。
  • Create Connectionのページで、以下の項目を入力する:
    • Name には接続の名前を入力する。
    • (任意)Description には他の接続と区別するための説明を入力する。
    • Compartment には接続を作成するコンパートメントを選択する。
    • Type のドロップダウンから Microsoft Fabric Lakehouse を選択する。
    • Azure tenant id にはアプリケーションの Azure テナント ID を入力する。
    • Client id にはアプリケーションのクライアント ID を入力する。
    • Client secret には認証用のアプリケーションのクライアントシークレットを入力する。
    • Create をクリックする。

Create Azure Fabric Connection

 

OCI GoldenGate DAA に接続を割り当てる:

Assing Deploymnet_Medium

 

CDC Extract の作成

Extracts パネルで Add Extract(プラスアイコン) をクリックし、Integrated Extract または Initial Load Extract を作成する。

Integrated Extract を選択し、Name を入力して Next をクリックする。

Create CDC Extract

Credential DomainAlias を選択し、Trail Name を入力する。Next をクリックする。

Create CDC Extract 2

Parameter Files ページで、GoldenGate がデータを取得する対象のテーブルやスキーマを指定する。Create and Run をクリックする。

Create CDC Extract 3

 

Initial Load 用の Extract を作成する前に、Oracle の SCN を取得してください:

— アクティブなトランザクションを取得するクエリ

Select T.START_SCN, T.STATUS TSTATUS, T.START_DATE,
       S.SID, S.SERIAL#, S.INST_ID, S.USERNAME, S.OSUSER, S.STATUS SSTATUS, S.LOGON_TIME
  From gv$transaction T
 Inner
 Join gv$session S
 on S.SADDR = T.SES_ADDR
Union All

— 現在のステータスを取得するクエリ

Select current_scn, ‘CURRENT’, CURRENT_DATE,
       NULL, NULL, NULL, ‘SYS’, NULL, NULL, NULL
 from v$database
Order by 1;

 

Initial Load Extract の作成

Add Extract(プラスアイコン) をクリックし、Initial Load Extract を選択する。Name を入力し、Next をクリックする。

ExtractInitialLoad_Medium

Parameter File では、認証情報、Trail ファイル名、および対象のテーブルを指定してください。

EXTRACT IL
USERIDALIAS <credential> DOMAIN OracleGoldenGate
EXTFILE a2
TABLE SOURCE_USER.SALES; SQLPREDICATE “AS OF SCN <上記のクエリで取得した SCN>”;

 

Create and Run をクリックする。

レポートファイルを確認し、すべてのレコードがロードされたことを確認する:

Initial load statistics

 

Distribution Path の作成

Distribution Path を作成する前に、Distributed Applications and Analytics 用の OCI GoldenGate に認証情報(Credential)を作成する必要があります。

この認証情報には、ターゲット側の OCI GoldenGate for Oracle デプロイメントにある GoldenGate ユーザーを使用します。

Distribution Path 用の新しいユーザーを作成する

OCI GoldenGate(for Oracle)で User Administrator をクリックする。「+」記号をクリックして新しいユーザーを追加する。usernameを指定し、ロールに Operator を設定、Type をPasswordにし、パスワードを入力する:

Create oggpath user

 

ソース側の GoldenGate デプロイメントに新しい認証情報を追加する

OCI GoldenGate の Connections に移動し、GoldenGate 用に定義したのと同じユーザー名とパスワードを使用して、新しいConnectionを作成する:

Create Connection Distribution Path Source Deployment

Oracle 用の OCI GoldenGate デプロイメントに接続を割り当てる:

Assign connection to source deployment

 

Initial Load 用の Distribution Path を作成する

OCI GoldenGate for Oracle で Distribution Service に移動し、Add Path(「+」アイコン) をクリックする。Path Name を入力する:

Add path 1

Initial Load Extract で使用した EXTFILE 名 を入力する。Source は選択せず、空欄のままにしておく。Next をクリックする:

Add path 2

ターゲットに OCI GoldenGate for DAA のホスト名 を指定し、ポートとして 443 を入力する。Trail Name と、前の手順で作成した認証情報の Alias を入力する。Create Path をクリックし、その後 Distribution Path を開始する:

Add path CDC 3

同じ手順に従って、CDC Extract によって作成されたファイル用の 2 つ目の Distribution Path を作成することもできます。

 

Initial Load Replicat の作成

OCI GoldenGate の DAA デプロイメントに移動し、新しい Replicat を追加する。Overview を開き、Replicats パネルで Add Replicat(プラスアイコン) をクリックする。Classic Replicat を選択し、Replicat Name を入力する:

Replicat 1

Trail Name を指定する。この例では Parquet ファイルを作成するため、Format に Parquet を選択する。ターゲットには Lakehouse Microsoft Fabric を指定する:

Replicat 2

Replicat によってソースとターゲットのテーブルをどのようにマッピングするかを指定する。Next をクリックする:

Replicat 3

レコードが正常にロードされたかを確認する:

Rep Initial Load Statistics

Properties で、ワークスペース名Lakehouse 名を指定する:

# Replicat REP1 用のプロパティファイル
gg.target=fabric_lakehouse
# TODO: format は ‘parquet’、’orc’、またはプラグイン形式のいずれかを指定可能。デフォルトは ‘parquet’
gg.format=parquet
gg.eventhandler.onelake.connectionId=ocid1.goldengateconnection.oc1.iad.amaaaaaa2t2mwsaan7qo6phrmpoyn5ngpxo7nwj7hjuvb7wjvexqjt6jmqga
gg.eventhandler.onelake.workspace=DSTEST
# TODO: Fabric の lakehouse 名を編集する
gg.eventhandler.onelake.lakehouse=testds
gg.eventhandler.onelake.pathMappingTemplate=${catalogname}.lakehouse/Files/ogg/${groupName}/${schemaname}.schema/${tablename}
gg.classpath=$THIRD_PARTY_DIR/hadoop/*:$THIRD_PARTY_DIR/parquet/*:$THIRD_PARTY_DIR/onelake/*

gg.eventhandler.onelake.pathMappingTemplate を使用することで、実行時に動的にパス名を生成することができます。

 

CDC Replicat の作成

上記と同じ手順に従って作成するが、Create and Run はクリックせずCreate のみをクリックする。Replicat を開始する前に、「…」をクリックし、Start With Options を選択、オプションを After CSN に変更する:

Start replicat with options

次に、ソース側でレコードを生成する。この例では、100,000 レコードを生成した。データがターゲットにレプリケートされたことを確認する。

Extract CDC の統計情報:

CDC Stats

CDC 用の Replicat を確認し、データが正しくレプリケートされているかをチェックする:

Rep Stats

最後に、Fabric Lakehouse を確認し、Parquet ファイルが lakehouse 内に作成されているかをチェックする:

Lakehouse Files

以上のように、GoldenGate を使って Microsoft Fabric Lakehouse へデータをレプリケートする設定は非常に簡単であることが分かりました。さらに詳しい情報については、ドキュメントを参照してください。