ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
Oracle GoldenGateおよびOracle GoldenGate for Big Dataと異なるターゲットを使用したデータのストリーミング
イントロダクション
Oracle GoldenGateは、データエンジニアが1つ以上のデータ管理システムからOracle Cloudデータベースにリアルタイムで大規模にデータを移動できるフルマネージド・サービスです。コンピュート環境の割当てや管理を行わずに、データ・レプリケーション・タスクを1つのインタフェースで設計、実行、調整およびモニターします。
Oracle GoldenGate for Big Dataは、ソース・システムのパフォーマンスに影響を与えることなく、トランザクション・データをビッグ・データおよびクラウド・システムにリアルタイムでストリーミングします。Apache Hadoop、Apache HBase、Apache Hive、Confluent Kafka、NoSQL Databases、Elasticsearch、JDBC、Oracle Cloud、Amazon Web Services、Microsoft Azure Cloud、Google Cloud Platform、データ・ウェアハウスなどの最も一般的なビッグ・データ・ソリューションへのリアルタイム・データ配信を合理化し、改善されたインサイトとタイムリーなアクションを促進します。
Oracle Cloud Infrastructure (OCI) Streamingサービスは、大量のデータ・ストリームをリアルタイムで取り込んで消費するためのフルマネージド型のスケーラブルな耐久性のあるソリューションを提供します。パブリッシュ/サブスクライブ・メッセージング・モデルでデータが連続して順次生成および処理されるユースケースには、OCIストリーミングを使用します。
このチュートリアルでは、Oracle Autonomous Databaseから2つの異なるターゲット(Oracle Autonomous DatabaseおよびOracle Streamsトピック)にデータをストリーミングする方法について学習します。
目標
-
Oracle Autonomous Databasesを2つ設定
-
このシナリオ例では、sourceDBに2つのテーブル Banksと Operacoesがあり、データを2つの異なるターゲットにレプリケートする必要があります
-
表銀行は、targetDBというターゲットのOracle Autonomous Databaseにレプリケートされます
-
表Operacoesは、ほぼリアルタイム・ストリームでOCIストリーミング(kafka)のトピックにレプリケートされます
-
-
ソースからターゲット・データベースにデータをレプリケートするようにOracle GoldenGateを設定します
-
ソース・データベースからOracle Cloud Infrastructure (OCI)ストリーミング(Kafka互換)ターゲット・トピックへの表DMLの公開
アーキテクチャ

重要: このサンプル・アーキテクチャは、学習のみを目的としており、単純な状態に保つために、PUBLICサブネットを使用しています。つまり、これは本番環境または実際のデータ処理に使用しないでください。
本番環境では、プライベート・サブネットを使用し、Oracle Securityのベスト・プラクティスで説明されているセキュリティ・ベスト・プラクティスをすべて適用する必要があります)
前提条件
- Oracle Cloudアカウント- Oracle Cloud Infrastructure Free Tierの開始
- 2つのサブネット(パブリックおよびプライベート)を持つ基本的なVCN (Virtual Cloud Network)
このチュートリアルに従って、まったく新しいVCN QuickStart Networkingを作成できます - Oracle Databaseの基本概念
- Kafkaストリーミングの基本概念
タスク1: 新規コンパートメントの作成
-
Oracle Cloudアカウントにログインし、左上のナビゲーション・メニューをクリックして「アイデンティティとセキュリティ」を選択し、「コンパートメント」をクリックします。

タスク2: sourceDBという名前の新しいOracle Autonomous Databaseの作成
-
左上のナビゲーション・メニューをクリックし、「Oracle Database」を選択して、「Autonomous Database」をクリックします。
-
前のステップで作成したコンパートメント・ストリーミングを選択し、「Autonomous Databaseの作成」をクリックします。

-
次のイメージに示すように情報を入力します。



ノート: 作成したADMINパスワードをノートにとります。
タスク3: targetDBという名前の新しいOracle Autonomous Databaseの作成
-
左上のナビゲーション・メニューをクリックし、「Oracle Database」を選択して、「Autonomous Database」をクリックします。
-
前のステップのストリーミングで作成したコンパートメントを選択し、「Autonomous Databaseの作成」をクリックします。

-
次のイメージに示すように情報を入力します。



ノート: 作成したADMINパスワードをノートにとります。
タスク4: sourceDBの新規スキーマおよび設定の作成
-
sourceDBホーム・ページに移動し、「データベース・アクション」をクリックして、データベースでSQLコマンドを実行し、データをロードします。

-
findata_schema.SQLファイルをダウンロードし、その内容をSQL実行ウィンドウにコピーして、SCRIPTとして実行します。
ノート: FINDATAユーザーのパスワードを設定したことを確認し、このチュートリアルの後半のステップについてノートを取ってください。

-
enable_gg.SQLファイルをダウンロードし、その内容をSQL実行ウィンドウにコピーして、SCRIPTとして実行します。
ノート: GGADMINユーザーのパスワードを設定したことを確認し、このチュートリアルの後半のステップについてノートを取ってください。

タスク5: banks_export.sqlファイルからsourceDBへのデータのロード
-
sourceDBホーム・ページに移動し、「データベース・アクション」をクリックして、データベースでSQLコマンドを実行し、データをロードします。

-
banks_export.SQLファイルをダウンロードし、その内容をSQL実行ウィンドウにコピーして、SCRIPTとして実行します。

-
表に対して単純なCOUNTを実行し、挿入された行数を確認します。

タスク6: targetDBの新規スキーマの作成およびデータのロード
-
"targetDB"に対してタスク4とタスク5を繰り返します。
-
FINDATA表を作成し、GGを有効にして、sourceDBで行ったように表BANKSからターゲット・データベースにデータをロードしますが、現在はtargetDBに接続しています。
タスク7: sourceDBでのOPERACOESというトランザクション表の作成
-
FINDATA.OPERACOESという名前の新しい表をsourceDBにのみ作成します。この表は、Oracle GoldenGate for Big DataがOCIストリーミングのトピックを取得して投稿するソース・データです。 -
sourceDBホーム・ページに移動し、「データベース・アクション」をクリックして、データベースでSQLコマンドを実行し、データをロードします。

-
operacoes_table.SQLファイルをダウンロードし、その内容をSQL実行ウィンドウにコピーして、SCRIPTとして実行します。

これは、Oracle GoldenGateでイベントを開始するためのランダム・データを受信する空の表です。
タスク8: OCIストリーミング・プールの作成
-
左上のナビゲーション・メニューをクリックし、「分析およびAI」を選択して「ストリーミング」をクリックし、「ストリーミング・プール」を選択します。
-
「ストリーム・プールの作成」をクリックし、次の情報を入力します。


-
「作成」をクリックします。
-
「Kafka接続設定」をクリックし、接続文字列に関する情報を確認します。

タスク9: OCIストリーミング・プールにアクセスするためのAUTH TOKENの生成
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM)上のユーザーに関連付けられた認証トークンを使用して、Oracle CloudのOCIストリーミング(Kafka API)およびその他のリソースにアクセスできます。Kafka接続設定では、SASL接続文字列には、前のタスクで説明したパスワードおよびAUTH_TOKEN値というパラメータがあります。OCIストリーミングへのアクセスを有効にするには、OCIコンソールに移動し、AUTH TOKENを作成します。
-
左上のナビゲーション・メニューをクリックし、「アイデンティティとセキュリティ」、「アイデンティティ」、「ドメイン」、「デフォルト・ドメイン」、「ユーザー」の順に選択します。
-
Oracle Autonomous DatabaseやOCI Stream Poolなどの以前のリソースの作成に使用したものと同じユーザーを選択します。


ノート: AUTH TOKENを書き留めてください。次のステップで必要になります。
タスク10: Oracle GoldenGate接続の作成
ソース・データベースおよびターゲット・データベースに接続するには、Oracle GoldenGateに適切な接続設定が必要です。
-
左上のナビゲーション・メニューをクリックし、「Oracle Database」を選択して、GoldenGateをクリックします。
-
左側のメニューからオプション「接続」を選択し、「接続の作成」をクリックします。
-
sourceDBの接続を作成します。


-
このプロセスを繰り返して、targetDBの接続を作成します。


-
OCIストリーミング・プールDefaultPoolの接続を作成します。


この時点で、次の接続が必要です。

タスク11: Oracle GoldenGateデプロイメントの作成- タイプ: ORACLE
-
左上のナビゲーション・メニューをクリックし、「Oracle Database」を選択して、GoldenGateをクリックします。
-
左側のメニューからオプション「デプロイメント」を選択し、「デプロイメントの作成」をクリックします。


ノート: oggadminパスワードは必ず保存してください。
タスク12: Oracle GoldenGateデプロイメントの作成- タイプ: BIGDATA
-
左上のナビゲーション・メニューをクリックし、「Oracle Database」を選択して、GoldenGateをクリックします。
-
左側のメニューからオプション「デプロイメント」を選択し、「デプロイメントの作成」をクリックします。



-
デプロイメントが作成され、アクティブになったら、次のステップに進みます。

タスク13: Oracle GoldenGateデプロイメント間の接続の作成
Oracle GoldenGateがOracle GoldenGate for Big Dataと通信するには、接続を作成する必要があります。
-
左上のナビゲーション・メニューをクリックし、「Oracle Database」を選択して、GoldenGateをクリックします。
-
左側のメニューからオプション「接続」を選択し、「接続の作成」をクリックします。


接続は次のようになります。

タスク14: Oracle GoldenGateデプロイメントへの接続の追加- GGForOracle
-
GGForOracleデプロイメントを選択し、左側のメニューで「割当て済接続」をクリックし、「接続の割当て」をクリックします。

-
sourceDBの接続を追加します。

-
targetDBの接続を追加します。

-
GGOracletoGGBigDataの接続を追加します。

GGForOracleデプロイメントでは、次の接続が必要です:

タスク15: Oracle GoldenGateデプロイメントへの接続の追加- GGforBigData
-
GGforBigDataデプロイメントを選択し、左側のメニューで「割当て済接続」をクリックし、「接続の割当て」をクリックします。


GGforBigDataデプロイメントでは、次の接続が必要です:

タスク16: GGforOracleのOracle GoldenGateの設定
-
GGForOracleデプロイメントを選択し、「コンソールの起動」をクリックします。
-
資格証明oggadmin/yourpassword (デプロイメントの作成時に作成したパスワード)を入力します。

-
ナビゲーション・メニューをクリックし、「構成」を選択し、「+」をクリックして新しい資格証明を追加します。

-
GGforBigDataデプロイメントの資格証明を追加します。
ノート: デプロイメントの作成時に設定したoggadminを使用します。

-
クリックしてsourceDBに接続し、「TRANDATA」で「+」をクリックしてレプリケーションに必要な表を追加します。

-
FINDATA.BANKS表に新しいレコードを追加し、「送信」をクリックします。
-
FINDATA.OPERACOES表に新しいレコードを追加し、「送信」をクリックします。
-
表が追加されたかどうかを確認するには、FINDATA.*のフィルタをクリックします。

-
クリックしてtargetDBに接続し、CHECKPOINTで「+」をクリックします。


-
FINDATA.CHECKTABLEと入力し、「送信」をクリックします。

-
次に、左側のメニューの「概要」オプションをクリックして、新しい抽出を含めます。




-
次のパラメータを含める:
EXTRACT EXT USERIDALIAS sourceDB DOMAIN OracleGoldenGate EXTTRAIL E1 table FINDATA.operacoes; table FINDATA.banks;
-
-
「処理」、「開始」をクリックして抽出を開始します。

-
ここで、レプリケーションをtargetDBに適用する新しいreplicatを作成します。



-
次のパラメータを含める:
REPLICAT REP USERIDALIAS targetDB DOMAIN OracleGoldenGate MAP FINDATA.BANKS, TARGET FINDATA.BANKS;
ノート: ここでレプリケートされるのは
FINDATA.BANKS表のみです。これは、targetDBにレプリケートしているためです。もう1つの表FINDATA.OPERACOESは、このチュートリアルの後半でOCIストリーミングのトピックにレプリケートされます。 -
-
「アクション」、「起動」をクリックして、Replicatを起動します。


-
レプリケーションが
FINDATA.BANKS表で機能しているかどうかを確認します。sourceDBのデータベース・アクション・ページに移動し、新しいレコードを挿入します。INSERT INTO FINDATA.BANKS VALUES (999, 999, 'XXXXXX','TEST GOLDENGATE','TESTGG'); COMMIT;
-
targetDBのデータベース・アクション・ページを開き、次の問合せを実行して、レコードが作成されたかどうかを確認します。
select * from FINDATA.BANKS WHERE ID_SEQ = 999;
-
「分散サービス」タブをクリックし、データをGGforBigDataに送信する新しいパスを追加します。



-
「アクション」、「開始」の順にクリックして、サービス分散を開始します。


タスク17: Oracle GoldenGate for Big Dataの設定- GGforBigData
-
GGforBigDataデプロイメントを選択し、「コンソールの起動」をクリックします。
-
資格証明oggadmin/yourpassword (デプロイメントの作成時に作成したパスワード)を入力します。

-
「受信サービス」タブをクリックし、すでに機能しているかどうかを確認します。これは、両方のOracle GoldenGateデプロイメント間の接続に必要なすべての設定をすでに実行しているため、次のようになります。

-
OCIストリーミングのトピックにデータを公開するには、REPLICATを設定する必要があります。
-
「管理サービス」タブをクリックします。



-
次のパラメータを含める:
REPLICAT STRM TARGETDB LIBFILE libggjava.so SET property=/u02/Deployment/etc/conf/ogg/STRM.properties MAP FINDATA.operacoes, TARGET FINDATA.operacoes , THREADRANGE(1-5);
-
この行に${tableName}を追加し、指定されたすべてのデフォルト値を使用します。

-
-
「アクション」、「起動」をクリックして、Replicatを起動します。

-
ステータスが緑色かどうかを確認します。

-
タスク18: OCIストリーミング・トピックへのレプリケーションの確認
-
sourceDBのデータベース・アクション・ページに移動し、
FINDATA.OPERACOES表に行を挿入します。-
load_random_data.sqlスクリプトを使用して、
FINDATA.OPERACOES表にランダム・データを挿入できます。 -
このスクリプトは、
FINDATA.OPERACOESに1.000行を追加し、レプリケーションが期待どおりに動作しているかどうかを確認するのに十分です。
-
-
次のSQLコマンドを実行して、
FINDATA.OPERACOESにレコードがあるかどうかを確認します。SELECT COUNT(*) FROM FINDATA.OPERACOES;
-
左上のナビゲーション・メニューをクリックし、「分析およびAI」を選択して「ストリーミング」をクリックし、左側のメニューから「ストリーム」を選択します。
-
Oracle GoldenGate for Big Dataによって新しいTOPICが自動的に作成されているかどうかを確認します。

-
一部のメッセージを消費し、「メッセージのロード」をクリックしてトピックで使用可能かどうかを確認してください。

重要なノート: 「メッセージのロード」は、最後のMINUTEで消費されたメッセージに対してのみ機能します。これは、LOAD_RANDOM_DATA.SQLスクリプトの実行後にそれより時間がかかる場合、結果が表示されないことを意味します。
結果を表示するには、データベースに移動してLOAD_RANDOM_DATA.SQLスクリプトを再度実行し、「メッセージのロード」に戻ると、メッセージが表示されます。
承認
- 作成者 - Joao Tarla(Oracle LAD Aチーム・ソリューション・エンジニア)
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Stream data using Oracle GoldenGate and Oracle GoldenGate for Big Data with different targets
F80321-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.