Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TechNight_FY23_MAR__65_GoldenGateforBigData概要_Generic_Filewriter.pdf

 TechNight_FY23_MAR__65_GoldenGateforBigData概要_Generic_Filewriter.pdf

oracle4engineer

March 27, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Technology Night #65-1 GoldenGate for Big Data 入門編 Generic

    File Writer 検証報告 日本オラクル株式会社 クラウド・エンジニアリング統括 COE本部 データベース・ソリューション部 2023年 3月 橋本 琢爾
  2. GoldenGate for Big Data 入門編 - Agenda Copyright © 2023,

    Oracle and/or its affiliates 3 3 Appendix データ変更の履歴を見 るために活用できる Flashback Transaction Query について補足して解説 2 検証内容と結果 GoldenGate for Big Data の基礎技術であ る Generic File Wrietrの検証と結果を 共有 1 概要説明 GoldenGate for Big Data の技術概要と、 OCI GoldenGate の 最新情報を共有
  3. GoldenGate 概要 OCI GoldenGate の現状 OCI GoldenGateで30以上の新しい異種データプラットフォームをサポートすることを発表 (Cloud World 2022)

    https://blogs.oracle.com/oracle4engineer/post/oci-goldengate-support-for-30-new-data-platforms-jp 4 Copyright © 2023, Oracle and/or its affiliates
  4. GoldenGate 概要 OCI GoldenGate の現状 サポート対象 (https://docs.oracle.com/en/cloud/paas/goldengate-service/wxntz/index.html#articletitle) 5 Copyright ©

    2023, Oracle and/or its affiliates デプロイメント・タイプ サポートされている接続タイプ Oracle Database Oracle Database 11.2.0.4、12.1.0.2以上 Oracle Exadata 11.2.04、12.1.0.2以上 Oracle ExadataCS Oracle Autonomous Transaction Processing Oracle Autonomous Data Warehouse Amazon RDS for Oracle 19以上 MySQL MySQLデプロイメント・タイプは、OCI GoldenGateビルド 21.7.0.0.0_220820.1908_616以上で使用できます。 MySQL Database Server EnterpriseおよびCommunity Edition 5.7、8.0 OCI MySQL Database Service 8.0 Amazon Aurora MySQL 5.7 Amazon RDS for MariaDB 10.4、10.5 Amazon RDS for MySQL 5.7、8.0 Azure Database for MySQL 5.7、8.0 MariaDB 10.4、10.5 MySQLのGoogle Cloud SQL 8.0 PostgreSQL PostgreSQLデプロイメント・タイプは、OCI GoldenGateビルド 21.7.0.0.0_220731.2140_663以上で使用できます。 PostgreSQL Server 10、11、12、13、14 Amazon Aurora PostgreSQL 10、11、12、13 Amazon RDS PostgreSQL 10、11、12、13、14 Azure Database for PostgreSQL 10、11、12、13 Google Cloud SQL for PostgreSQL 10、11、12、13、14 デプロイメント・タイプ サポートされている接続タイプ Big Data ビッグ・データ・デプロイメント・タイプは、OCI GoldenGateビルド 21.6.0.0.2_220714.0903_616以上で使用できます。 Apache Kafka 2.4、2.5、2.6、2.7、2.8、3.0、3.1、3.2 OCIストリーミング OCIオブジェクト・ストレージ(ターゲットのみ) Confluent Schema Registry、7.1以前を含む、またはない、 有効なKafka Azure Data Lake Storage (ターゲットのみ) Azure Event Hubs Azure Synapse Analytics (ターゲットのみ) Amazon MSK ※ご注意 現時点では、オンプレミス製品やOCI GoldenGate Marketplaceと比較して 未対応のデータ・ソースがあります
  5. GoldenGate 概要 OCI GoldenGate の現状 OCI GoldenGateで30以上の新しい異種データプラットフォームをサポートすることを発表 (Cloud World 2022)

    https://blogs.oracle.com/oracle4engineer/post/oci-goldengate-support-for-30-new-data-platforms-jp 6 Copyright © 2023, Oracle and/or its affiliates https://docs.oracle.com/en/cloud/paas/goldengate-service/wxntz/index.html#WXNTZ-GUID- 0FA0EEB9-FAA7-4F36-BEAE-DCD6A55ACD44 https://www.oracle.com/jp/integration/what-is-data-mesh/#what-is-data-mesh
  6. GoldenGate 概要 データ連携基盤としての GoldenGate アーキテクチャ (for Database) 7 Copyright ©

    2023, Oracle and/or its affiliates Source Target Trail File Trail File Service Manager Service Manager Administration Server Administration Server Distribution Receiver Extract (Capture) : Commit されたトランザクションは、トランザクションログ読込みで、発生した時点で抽出されます(フィルタリングも可能) Trail : ルーティングのためにデータをキューイングします (証跡ファイルへ書き出し) Distribution Server/Receiver : ターゲットにルーティングするためのデータを配信 Delivery : データをトランザクション の整合性を保ちながら適用 non-Oracle non-Oracle
  7. GoldenGate for Big Data 概要 データ連携基盤としての GoldenGate for Big Data

    アーキテクチャ (+ for Big Data) 8 Copyright © 2023, Oracle and/or its affiliates Source Target Trail File Trail File Service Manager Service Manager Administration Server Administration Server Distribution Receiver non-Oracle non-Oracle GoldenGate for Big Data Target GoldenGate (for RDBMS) Trail File は共通
  8. GoldenGate for Big Data 概要 データ連携基盤としての GoldenGate for Big Data

    アーキテクチャの基礎 アダプタ統合オプション Oracle GoldenGate for Big Dataアーキテクチャに基づく主要 な2製品 • Oracle GoldenGate Javaアダプタ (Generic File Writer) 全体的なフレームワークで Oracle GoldenGate File Writerモ ジュールが組み込まれており、フラット・ファイル使用を目的。 (ファイル・ライター・ハンドラとも表記される) • Oracle GoldenGate for Big Data Oracle GoldenGateの証跡レコードから各種のビッグ・データ・ ターゲット(HDFS、HBase、Kafka、Flume、JDBC、 CassandraおよびMongoDBなど)に対応 これらのハンドラは、データを様々な形式(Avro、JSON、区切り テキスト、XMLなど)に変換可能 9 Copyright © 2023, Oracle and/or its affiliates Target Trail File non-Oracle GoldenGate (for RDBMS) JavaアダプタとOracle GoldenGate for Big Dataの理解 https://docs.oracle.com/cd/F47657_01/gbdin/understanding-java-adapter-and- oracle-goldengate-bigdata.html#GUID-CF8E208D-508C-4BEB-85F4-499AA3B581B1 GoldenGate for Big Data Target
  9. GoldenGate for Big Data 概要 データ連携基盤としての GoldenGate for Big Data

    アーキテクチャ Generic File Writer プロパティ : gg.handler.name.format: delimitedtext (デフォルト) | json | json_row | xml | avro_row | avro_op | avro_row_ocf | avro_op_oc ParquetまたはORCイベント・ハンドラを使用する場合、選択した形式がavro_row_ocfま たはavro_op_ocfである必要があります。 10 Copyright © 2023, Oracle and/or its affiliates Target non-Oracle GoldenGate for Big Data Target GoldenGate (for RDBMS) Trail File format 解説 delimitedtext 区切りテキスト json JSON json_row JSON出力モデリング行データ xml XML avro_row 行コンパクト形式のAvro avro_op 操作詳細形式のAvro avro_row_ocf Avroオブジェクト・コンテナ・ファイル(OCF)形式 avro_op_ocf Avro OCF形式でHDFSに書き込まれる詳細形式のAvro
  10. GoldenGate for Big Data 概要 Generic File Writer https://docs.oracle.com/cd/F47657_01/index.html 11

    Copyright © 2023, Oracle and/or its affiliates GoldenGate for Big Data Target Replicat パラメータファイル ハンドラ用のプロパティファイルを指定 TARGETDB LIBFILE libggjava.so SET property= <parameter file directory>/<properties file name> 各ハンドラのプロパティ設定
  11. GoldenGate for Big Data 入門編 - Agenda Copyright © 2023,

    Oracle and/or its affiliates 13 3 Appendix データ変更の履歴を見 るために活用できる Flashback Transaction Query について補足して解説 2 検証内容と結果 GoldenGate for Big Data の基礎技術であ る Generic File Wrietrの検証と結果を 共有 1 概要説明 GoldenGate for Big Data の技術概要と、 OCI GoldenGate の 最新情報を共有
  12. GoldenGate for Big Data 概要 Generic File Writer 簡易動作確認環境 検証環境のイメージ(オンプレミス)

    14 Copyright © 2023, Oracle and/or its affiliates Extract 【Source】 Oracle 19c (CDB) 【Target】 GoldenGate Application Adapter Deployment_01 (for DB) Deployment_02 (for Big Data) Replicat Trail File : 本検証環境では、各デプロイメントから参照 可能なローカルディスクに配置 GoldenGate On-Premises GoldenGata 21c (for Oracle Database) GoldenGata for Big Data 21c (Generic File Writer)
  13. GoldenGate 概要 Generic File Writer 簡易動作確認環境 15 Copyright © 2023,

    Oracle and/or its affiliates Source Target Service Manager Administration Server Distribution Receiver Extract (Capture) : Trail : Distribution Server/Receiver : Delivery (Replicat) Trail File デプロイメント(実行環境) 検証環境のイメージ(オンプレミス)
  14. GoldenGate for Big Data 概要 Generic File Writer 動作確認環境 16

    Copyright © 2023, Oracle and/or its affiliates ※ Service Manager(全体の管理) は for DBで作成
  15. GoldenGate for Big Data 概要 Generic File Writer 動作確認環境設定(1/3) 17

    Copyright © 2023, Oracle and/or its affiliates ※ご注意 あくまでサンプルです 動作を保証するものではありません
  16. GoldenGate for Big Data 概要 Generic File Writer 動作確認環境設定(2/3) 18

    Copyright © 2023, Oracle and/or its affiliates REPLICAT Rep01J TARGETDB LIBFILE libggjava.so SET property=/u01/app/oracle/product/GG4BD/21.4.0/opt/AdapterExamples/templates/filewriter.properties --SOURCEDEFS ./dirdef/dbo.def --DDL INCLUDE ALL --GROUPTRANSOPS 1000 --MAXSQLSTATEMENTS 200 --MAPEXCLUDE dbo.excludetable MAP orclpdb.hr.employees, TARGET *.*; ※ご注意 あくまでサンプルです 動作を保証するものではありません
  17. GoldenGate for Big Data 概要 Generic File Writer 動作確認環境設定(2/3) 19

    Copyright © 2023, Oracle and/or its affiliates REPLICAT Rep01J TARGETDB LIBFILE libggjava.so SET property=/u01/app/oracle/product/GG4BD/21.4.0/opt/AdapterExamples/templates/filewriter.properties --SOURCEDEFS ./dirdef/dbo.def --DDL INCLUDE ALL --GROUPTRANSOPS 1000 --MAXSQLSTATEMENTS 200 --MAPEXCLUDE dbo.excludetable MAP orclpdb.hr.employees, TARGET *.*; ※ご注意 あくまでサンプルです 動作を保証するものではありません [Database の場合のサンプル] REPLICAT Rep01DB USERALIAS trg_pdb DOMAIN OracleGoldenGate MAP_PARALLELISM 3 MIN_APPLY_PARALLELISM 2 MAX_APPLY_PARALLELISM 10 SPLIT_TRANS_RECS 1000 DBOPTIONS ENABLE_INSTANTIATION_FILTERING MAP orclpdb.hr.employees, TARGET orclpdb21.hr.employees; GG 21c MA版 https://speakerdeck.com/oracle4engineer/goldengate-21c-jian-dan-detabesurepurikesiyongaido-microservice-architectureban
  18. GoldenGate for Big Data 概要 Generic File Writer 動作確認環境設定(3/3) 20

    Copyright © 2023, Oracle and/or its affiliates # Properties file for Replicat Rep01J # File Writer Handler Template gg.handlerlist=filewriter gg.handler.filewriter.type=filewriter gg.handler.filewriter.mode=op gg.handler.filewriter.pathMappingTemplate=./dirout gg.handler.filewriter.stateFileDirectory=./dirsta gg.handler.filewriter.fileNameMappingTemplate=${fullyQualifiedTableName}_${currentTimestamp}.json gg.handler.filewriter.inactivityRollInterval=10s gg.handler.filewriter.finalizeAction=none gg.handler.filewriter.format=json gg.handler.filewriter.format.metaColumnsTemplate=${objectname[table]},${optype[op_type]},${timestamp[op_ts]},${currenttimestamp[current _ts]},${position[pos]} gg.handler.filewriter.partitionByTable=true gg.handler.filewriter.rollOnShutdown=true gg.handler.filewriter.eventHandler=oci ※ご注意 あくまでサンプルです 動作を保証するものではありません
  19. GoldenGate for Big Data 概要 Generic File Writer 動作確認環境 21

    Copyright © 2023, Oracle and/or its affiliates Extract 【Source】 【Target】 GoldenGate Application Adapter Deployment (for DB) Deployment (for Big Data) Replicat GoldenGate On-Premises SQL>update emp set sal=3600 where ename = 'SCOTT'; SCOTT.EMP_2022-12-08_17-12-08.020.json --- { "table":"SCOTT.EMP", "op_type":"U", "op_ts":"2022-12-08 17:32:02.000000", "current_ts":"2022-12-08 17:12:07.996000", "pos":"00000000020000002563", "before":{"EMPNO":7788,"SAL":3000.00}, "after":{"EMPNO":7788,"SAL":3600.00} } 操作モードで JSONフォーマットによる出力設定を実行
  20. GoldenGate for Big Data 概要 連携のパターンについて補足 22 Copyright © 2023,

    Oracle and/or its affiliates 【Target】 GoldenGate for Big Data (※) Replicat Event Handler Streaming Object Storage Amazon Kinesis Azure Event Hub 一時的にファイルを生成 (自動的なパージ設定も可能) ストリーミング (※) ご注意 GoldenGate for Big Data で提供できている データソースと、OCI GoldenGate で連携可能なデータソースには一部差異があります。
  21. GoldenGate for Big Data 入門編 - Agenda Copyright © 2023,

    Oracle and/or its affiliates 23 3 Appendix データ変更の履歴を見 るために活用できる Flashback Transaction Query について補足して解説 2 検証内容と結果 GoldenGate for Big Data の基礎技術であ る Generic File Wrietrの検証と結果を 共有 1 概要説明 GoldenGate for Big Data の技術概要と、 OCI GoldenGate の 最新情報を共有
  22. Appendix データ更新の変遷をデータとして扱う 24 Copyright © 2023, Oracle and/or its affiliates

    SQL>update emp set sal=2000 where ename = 'SCOTT’; SCOTT.EMP_2022-12-08_17-12-08.020.json --- { "table":"SCOTT.EMP", "op_type":"U", "op_ts":"2022-12-08 17:32:02.000000", "current_ts":"2022-12-08 17:12:07.996000", "pos":"00000000020000002563", "before":{"EMPNO":7788,"SAL":3000.00}, "after":{"EMPNO":7788,"SAL":2000.00} } ・ ・ ・ ・ ・ ・ Database 側ではデータを上書きし 最新のデータを保持 Big Data 側でもデータを上書きし 最新のデータを保持 Big Data 側では、更新処理を履 歴データとして蓄積し推移を分析
  23. Appendix データ更新の変遷をデータとして扱う GoldenGate for Big Data など • 様々な Big

    Data 製品の活用 • 既存システムとの融合 GoldenGate の連携を工夫 例えば … • IGNOREDELETES • INSERTUPDATES Oracle Database では? Flashback Transaction Query https://docs.oracle.com/cd/F19136_01/adfns/fl ashback.html#GUID-212A4073-ABE2-4053- A852-3A41DEF6A24D 25 Copyright © 2023, Oracle and/or its affiliates Target 側にデータを蓄積する 事が可能になる (DWH)
  24. Appendix – Flashback Transaction Query 更新の変遷を Oracle Database で把握する 19c

    マニュアルより 19.5 Oracle Flashback Transaction Queryの使用 Oracle Flashback Transaction Queryを使用して、特定の時間間隔内における特定のトランザクションまたはすべてのトランザクショ ンのメタデータおよび履歴データを取得できます。Oracle Flashback Transaction Queryは、静的データ・ディクショナリ・ビュー FLASHBACK_TRANSACTION_QUERYの問合せを行います。 CREATE FLASHBACK ARCHIVE DEFAULT fla1 TABLESPACE USERS QUOTA 500M RETENTION 1 YEAR; ALTER TABLE scott.emp FLASHBACK ARCHIVE fla1; 26 Copyright © 2023, Oracle and/or its affiliates
  25. select * from emp; Appendix – Flashback Transaction Query 更新の変遷を

    Oracle Database で把握する update emp SET sal = 3600 where ename = 'SCOTT'; commit; 27 Copyright © 2023, Oracle and/or its affiliates EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369SMITH CLERK 7902 1980/12/17 0:00 800 20 7499ALLEN SALESMAN 7698 1981/2/20 0:00 1600 300 30 7521WARD SALESMAN 7698 1981/2/22 0:00 1250 500 30 7566JONES MANAGER 7839 1981/4/2 0:00 2975 20 7654MARTIN SALESMAN 7698 1981/9/28 0:00 1250 1400 30 7698BLAKE MANAGER 7839 1981/5/1 0:00 2850 30 7782CLARK MANAGER 7839 1981/6/9 0:00 2450 10 7788SCOTT ANALYST 7566 1987/6/13 0:00 3000 20 7839KING PRESIDENT 1981/11/17 0:00 5000 10 7844TURNER SALESMAN 7698 1981/9/8 0:00 1500 0 30 7876ADAMS CLERK 7788 1987/6/13 0:00 1100 20 7900JAMES CLERK 7698 1981/12/3 0:00 950 30 7902FORD ANALYST 7566 1981/12/3 0:00 3000 20 7934MILLER CLERK 7782 1982/1/23 0:00 1300 10 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369SMITH CLERK 7902 1980/12/17 0:00 800 20 7499ALLEN SALESMAN 7698 1981/2/20 0:00 1600 300 30 7521WARD SALESMAN 7698 1981/2/22 0:00 1250 500 30 7566JONES MANAGER 7839 1981/4/2 0:00 2975 20 7654MARTIN SALESMAN 7698 1981/9/28 0:00 1250 1400 30 7698BLAKE MANAGER 7839 1981/5/1 0:00 2850 30 7782CLARK MANAGER 7839 1981/6/9 0:00 2450 10 7788SCOTT ANALYST 7566 1987/6/13 0:00 3600 20 7839KING PRESIDENT 1981/11/17 0:00 5000 10 7844TURNER SALESMAN 7698 1981/9/8 0:00 1500 0 30 7876ADAMS CLERK 7788 1987/6/13 0:00 1100 20 7900JAMES CLERK 7698 1981/12/3 0:00 950 30 7902FORD ANALYST 7566 1981/12/3 0:00 3000 20 7934MILLER CLERK 7782 1982/1/23 0:00 1300 10 select * from emp as of TIMESTAMP TO_TIMESTAMP ('2023-01-17 14:47:00', 'YYYY-MM-DD HH24:MI:SS’); ⇨ 表を作成した直後の Flashback Query は同じ値を示す select * from emp as of TIMESTAMP TO_TIMESTAMP ('2023-01-17 14:47:00', 'YYYY-MM-DD HH24:MI:SS’); --- EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7788SCOTT ANALYST 7566 1987/6/13 0:00 3000 20
  26. Appendix – Flashback Transaction Query 更新の変遷を Oracle Database で把握する SELECT

    versions_xid XID, versions_startscn START_SCN,versions_endscn END_SCN, versions_operation OPERATION,ename, sal FROM scott.emp VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE WHERE ename = 'SCOTT’; INSERT INTO EMP VALUES(8888,'JACK','HUMM',8888,to_date('16-1-2023','dd-mm-yyyy'),6500,NULL,10); commit; 28 Copyright © 2023, Oracle and/or its affiliates XID START_SCN END_SCN OPERATIOMN ENAME SAL 1661321 SCOTT 3000 05000500B8020000 1661321 U SCOTT 3600 XID START_SCN END_SCN OPERATIOMN ENAME SAL 1661321 SCOTT 3000 05000500B8020000 1661321 U SCOTT 3600 09000700FC020000 1668776 I JACK 6500
  27. Appendix – Flashback Transaction Query 更新の変遷を Oracle Database で把握する SELECT

    xid, start_scn, commit_scn, operation, logon_user, undo_sql FROM flashback_transaction_query WHERE xid = '09000700FC020000’; 29 Copyright © 2023, Oracle and/or its affiliates XID START_SCN COMMIT_SCN OPERATIOMN LOGON_USER UNDO_SQL 09000700FC020000 1671874 1671880 INSERT SCOTTdelete from "SCOTT"."EMP" where ROWID = 'AAAS36AAPAAAACWAAP’; 09000700FC020000 1671874 1671880 BEGIN SCOTT 機能/オプション/パック XE SE2 EE EE-ES DBCS SE DBCS EE DBCS EE-HP DBCS EE-EP ExaCS/CC 注意事項 フラッシュバック・トランザクション N N Y Y N Y Y Y Y フラッシュバック・トランザクション問合せ N N Y Y N Y Y Y Y 参考資料 https://docs.oracle.com/cd/F39414_01/dblic/Licensing-Information.html#GUID-0F9EB85D-4610-4EDF-89C2-4916A0E7AC87
  28. ターゲット側環境 Kafka等 Global Price Listのライセンス定義(Definitions)の記載内容に準拠 Appendix - GoldenGate for Big

    Dataライセンスのカウント方法(Processor) “Oracle or non Oracle database(s) or NoSQL repositories from which you capture data must be counted for the purpose of determining the number of licenses required. For any messaging systems from which you capture, every 25 queues/topics are counted as a Processor. In the instance of multiple source databases, NoSQL repositories, or messaging systems all processors for all sources must be counted.” ※参考翻訳※ 必要なProcessorライセンス数を決定する場合は、データをキャプチャするソースの Oracle または Oracle 以外のデータベースまたは NoSQL リポジトリを実行している プロセッサのみをカウントする必要があります。キャプチャ元がメッセージング システムの 場合、25 queues/topicsあたり1プロセッサとしてカウントされます。複数のソース データベース、NoSQL リポジトリ、またはメッセージング システムのインスタンスでは、 すべてのソースのすべてのプロセッサをカウントする必要があります。 Definitions ソース側DBマシン GG4BDは”ソース側のDBが稼動しているHWのProc数”でカウントします。 GG4BDをインストールしているHWやターゲットが稼動しているHWではあ りませんのでご注意ください。 ソースDBがSE/SE2の場合、DBライセンスがソケット課金であっても、 GG4BDはProcessor数でカウントする必要があります。 ソース側用にOGGが4Procと、GG4BDが4Proc必要です。 例: Copyright © 2023, Oracle and/or its affiliates 30 OGG 32 Proc GG4BD 8 Proc 4 Proc
  29. Apendix • Demo - GoldenGate for Big Data 21.4 -

    Snowflake Stage-Merge from MS SQL Server https://www.youtube.com/watch?v=FJYb0pRbRoA • Live Labs • https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=692&clear=RR,180&session=112850354154153 31 Copyright © 2023, Oracle and/or its affiliates
  30. Technology Night #65-1 まとめ GoldenGate for Big Data (Generic File

    Writer) 検証報告 • GoldenGate によるデータ・レプリケーションの拡充 Database だけではない、様々なデータ・ソースとの連携を実現 • データの連携だけでなく更新の変遷も重要なデータとして維持できる そのレコードがどのような更新履歴を持っているが、も価値となる • データの更新履歴を維持する技術の紹介 GoldenGate for Big Data GoldenGate (for Database) の活用 – パラメータ紹介 Flashback Transaction Query の活用 32 Copyright © 2023, Oracle and/or its affiliates
  31. Our mission is to help people see data in new

    ways, discover insights, unlock endless possibilities.