注:

使用具有不同目标的 Oracle GoldenGate 和 Oracle GoldenGate for Big Data 来流数据

简介

Oracle GoldenGate 是一项完全托管的服务,可帮助数据工程师实时、大规模地将数据从一个或多个数据管理系统迁移到 Oracle Cloud 数据库。在单个界面中设计、运行、编排和监视数据复制任务,而无需分配或管理任何计算环境。

Oracle GoldenGate for Big Data 实时将事务数据流式传输到大数据和云系统,而不会影响源系统的性能。它简化了将实时数据交付到主流的大数据解决方案中的过程,包括 Apache Hadoop、Apache HBase、Apache Hive、Confluent Kafka、NoSQL 数据库、Elasticsearch、JDBC、Oracle Cloud、Amazon Web Services、Microsoft Azure Cloud、Google Cloud Platform 和 Data Wareharehouse,以便于提高洞察力和及时采取措施。

Oracle Cloud Infrastructure (OCI) 流处理服务提供了一个完全托管、可扩展且持久的解决方案,用于实时摄取和使用高容量数据流。对于发布 - 订阅消息传递模式中连续生成和处理数据的任何用例,请使用 OCI 流处理。

在本教程中,您将学习如何将数据从 Oracle Autonomous Database 流入两个不同的目标,即 Oracle Autonomous Database 和 Oracle Streams 主题。

目标

体系结构

体系结构

重要提示:此示例体系结构仅用于学习目的,为了保持简单,我们使用的是 PUBLIC 子网,这意味着此不应用于生产环境或实际数据处理。

对于生产环境,您必须使用 PRIVATE 子网并应用此处所述的所有安全最佳实践:Oracle 安全最佳实践 )

先决条件

任务 1:创建新区间

任务 2:创建名为 sourceDB 的新 Oracle Autonomous Database

  1. 单击左上角的导航菜单,选择 Oracle Database ,然后单击 Autonomous Database

  2. 选择在前面的步骤中创建的区间流处理,然后单击创建 Autonomous Database

    T2_1

  3. 按以下图像所示填充信息。

    T2_2

    T2_3

    T2_4

:记下您创建的 ADMIN 密码。

任务 3:创建名为 targetDB 的新 Oracle Autonomous Database

  1. 单击左上角的导航菜单,选择 Oracle Database ,然后单击 Autonomous Database

  2. 选择在前面的步骤流处理中创建的区间,然后单击创建 Autonomous Database

    T2_1

  3. 按以下图像所示填充信息。

    T3_2

    T2_3

    T2_4

:记下您创建的 ADMIN 密码。

任务 4:为 sourceDB 创建新方案和设置

  1. 转到 sourceDB 主页,然后单击数据库操作以对数据库运行 SQL 命令并加载数据。

    T4_1

  2. 下载 findata_schema.sql 文件并将内容复制到 SQL 执行窗口中并将其作为 SCRIPT 运行。

    :确保为 FINDATA 用户设置密码,并记下本教程中后续步骤。

    T4_1

  3. 下载 enable_gg.sql 文件并将内容复制到 SQL 执行窗口中并将其作为 SCRIPT 运行。

    :确保为 GGADMIN 用户设置密码,并记下本教程中后续步骤。

    T4_1

任务 5:将数据从 banks_export.sql 文件加载到 sourceDB

  1. 转到 sourceDB 主页,然后单击数据库操作以对数据库运行 SQL 命令并加载数据。

    T4_1

  2. 下载 banks_export.sql 文件并将内容复制到 SQL 执行窗口中并将其作为 SCRIPT 运行。

    T5_1

  3. 对表运行简单的 COUNT 函数并检查插入的行数。

    T5_1

任务 6:为 targetDB 创建新方案并加载数据

任务 7:在 sourceDB 上创建名为 OPERACOES 的事务处理表

  1. 仅在 sourceDB 中创建一个名为 FINDATA.OPERACOES 的新表。此表是 Oracle GoldenGate for Big Data 将捕获并发布在 OCI 流处理主题上的源数据。

  2. 转到 sourceDB 主页,然后单击数据库操作以对数据库运行 SQL 命令并加载数据。

    T4_1

  3. 下载 operacoes_table.sql 文件并将内容复制到 SQL 执行窗口中并将其作为 SCRIPT 运行。

T7_1

这是一个空表,它将接收随机数据以在 Oracle GoldenGate 上启动事件。

任务 8:创建 OCI 流处理池

  1. 单击左上角的导航菜单,选择分析和 AI ,单击流处理,然后选择流处理池

  2. 单击创建流池并填写以下信息。

    T8_1

    T8_1

  3. 单击创建

  4. 单击 Kafka 连接设置并记下有关连接字符串的信息。

    T8_1

任务 9:生成 AUTH TOKEN 以访问 OCI 流处理池

您可以使用与 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 上的用户关联的验证令牌来访问 Oracle Cloud 中的 OCI 流处理 (Kafka API) 和其他资源。在 Kafka 连接设置中,SASL 连接字符串有一个名为 password 的参数和一个 AUTH_TOKEN 值,如上一个任务中所述。要启用对 OCI 流处理的访问,请转到 OCI 控制台并创建 AUTH TOKEN。

  1. 单击左上角的导航菜单,选择身份和安全,选择身份默认域用户

  2. 选择用于创建早期资源(例如 Oracle Autonomous DatabaseOCI 流池)的同一用户。

T9_1

T9_1

:记下 AUTH TOKEN,下一步需要它。

任务 10:创建 Oracle GoldenGate 连接

为了连接到源数据库和目标数据库,Oracle GoldenGate 需要正确的连接设置。

  1. 单击左上角的导航菜单,选择 Oracle Database ,然后单击 GoldenGate

  2. 从左侧菜单中选择连接选项,然后单击创建连接

  3. sourceDB 创建连接。

    T9_1

    T9_1

  4. 重复该过程并为 targetDB 创建连接。

    T9_1

    T9_1

  5. 为 OCI 流处理池 DefaultPool 创建连接。

    T9_1

    T9_1

此时,您应该具有以下连接:

T10_1

任务 11:创建 Oracle GoldenGate 部署 - 类型:ORACLE

  1. 单击左上角的导航菜单,选择 Oracle Database ,然后单击 GoldenGate

  2. 从左侧菜单中选择部署选项,然后单击创建部署

    T10_1

    T10_1

:确保保存 oggadmin 密码。

任务 12:创建 Oracle GoldenGate 部署 - 类型:BIGDATA

  1. 单击左上角的导航菜单,选择 Oracle Database ,然后单击 GoldenGate

  2. 从左侧菜单中选择部署选项,然后单击创建部署

    T12_1

    T12_1

    T12_1

  3. 创建部署并激活后,继续执行下一步。

    T12_1

任务 13:创建 Oracle GoldenGate 部署之间的连接

为了使 Oracle GoldenGate 与 Oracle GoldenGate for Big Data 通信,我们需要创建连接。

  1. 单击左上角的导航菜单,选择 Oracle Database ,然后单击 GoldenGate

  2. 从左侧菜单中选择连接选项,然后单击创建连接

    T13_1

    T13_1

您的连接应如下所示:

T13_1

任务 14:向 Oracle GoldenGate 部署添加连接 - GGForOracle

  1. 选择 GGForOracle 部署,在左侧菜单上单击分配的连接,然后单击分配连接

    T14_1

  2. sourceDB 添加连接。

    T14_1

  3. targetDB 添加连接。

    T14_1

  4. 添加 GGOracletoGGBigData 的连接。

    T14_1

应在 GGForOracle 部署上建立以下连接:

T14_1

任务 15:将连接添加到 Oracle GoldenGate 部署 - GGforBigData

  1. 选择 GGforBigData 部署,在左侧菜单上单击分配的连接,然后单击分配连接

    T15_1

    T15_1

应在 GGforBigData 部署上建立以下连接:

T15_1

任务 16:为 GGforOracle 设置 Oracle GoldenGate

  1. 选择 GGForOracle 部署,然后单击启动控制台

  2. 输入身份证明 oggadmin/yourpassword (在创建部署期间创建的密码)。

    T16_1

  3. 单击导航菜单,然后选择配置,然后单击 + 以添加新身份证明。

    T16_1

  4. 添加 GGforBigData 部署的凭证。

    :使用您在创建部署期间设置的 oggadmin

    T16_1

  5. 单击以连接到 sourceDB ,然后单击 TRANDATA 上的 + 以添加复制所需的表。

    T16_1

  6. FINDATA.BANKS 表添加新记录,然后单击提交

    T16_1

  7. FINDATA.OPERACOES 表添加新记录,然后单击提交

    T16_1

  8. 要检查是否添加了表,请单击 FINDATA.* 的筛选器。

    T16_1

  9. 单击以连接到 targetDB ,然后单击 CHECKPOINT 上的 +

    T16_1

    T16_1

  10. 输入 FINDATA.CHECKTABLE 并单击提交

    T16_1

  11. 现在单击左侧菜单的概览选项以包括新提取。

    T16_1

    T16_1

    T16_1

    T16_1

    • 包括以下参数:

      EXTRACT EXT
      USERIDALIAS sourceDB DOMAIN OracleGoldenGate
      EXTTRAIL E1
      table FINDATA.operacoes;
      table FINDATA.banks;
      
      
  12. 单击操作启动以启动提取。

    T16_1

  13. 现在,创建一个新副本以将复制应用于 targetDB

    T16_1

    T16_1

    T16_1

    • 包括以下参数:

      REPLICAT REP
      USERIDALIAS targetDB DOMAIN OracleGoldenGate
      MAP FINDATA.BANKS, TARGET FINDATA.BANKS;
      

    :此处仅复制 FINDATA.BANKS 表。这是因为我们正在将其复制到 targetDB 。另一个表 FINDATA.OPERACOES 将复制到本教程稍后面的 OCI 流处理主题中。

  14. 单击操作启动以启动副本。

    T16_1

    T16_1

  15. 检查复制是否适用于 FINDATA.BANKS 表:转至 sourceDB 的数据库操作页并插入新记录。

    INSERT INTO FINDATA.BANKS VALUES (999, 999, 'XXXXXX','TEST GOLDENGATE','TESTGG');
    COMMIT;
    

    T16_1

  16. 打开 targetDB 的数据库操作页,并运行下面的查询来检查是否创建了记录。

     select * from FINDATA.BANKS WHERE ID_SEQ = 999;
    
    

    T16_1

  17. 单击分发服务选项卡,然后添加新路径以将数据发送到 GGforBigData

    T16_1

    T16_1

    T16_1

  18. 单击操作启动以启动服务分发。

    T16_1

    T16_1

任务 17:设置 Oracle GoldenGate for Big Data - GGforBigData

  1. 选择 GGforBigData 部署,然后单击启动控制台

  2. 输入身份证明 oggadmin/yourpassword (在创建部署期间创建的密码)。

    T17_1

  3. 单击接收器服务选项卡并检查它是否已在运行。它应如下所示,因为我们已做了两个 Oracle GoldenGate 部署之间连接所需的所有设置。

    T17_2

  4. 现在,我们需要设置 REPLICAT 以便在 OCI 流处理主题上发布数据。

  5. 单击管理服务选项卡。

    T17_1

    T17_1

    T17_1

    • 包括以下参数:

       REPLICAT STRM
       TARGETDB LIBFILE libggjava.so SET property=/u02/Deployment/etc/conf/ogg/STRM.properties
       MAP FINDATA.operacoes, TARGET FINDATA.operacoes , THREADRANGE(1-5);
      
      

      T17_1

    • 只需在此行上添加 ${tableName} 并使用提供的所有默认值。

      T17_1

  6. 单击操作启动以启动副本。

    T17_1

    • 检查状态是否为绿色:

      T17_1

任务 18:验证到 OCI 流处理主题的复制

  1. 转到 sourceDB 的数据库操作页,然后在 FINDATA.OPERACOES 表中插入一些行。

    • 可以使用 load_random_data.sql 脚本将随机数据插入到 FINDATA.OPERACOES 表中。

    • 此脚本将在 FINDATA.OPERACOES 上添加 1.000 行,并且足以检查复制是否按预期工作。

      T17_1

  2. 通过运行以下 SQL 命令检查 FINDATA.OPERACOES 中是否有任何记录。

    SELECT COUNT(*) FROM FINDATA.OPERACOES;
    

    T17_1

  3. 单击左上角的导航菜单,选择分析和 AI ,单击流处理,然后从左侧菜单中选择

  4. 检查 Oracle GoldenGate for Big Data 是否自动创建新的 TOPIC。

    T17_1

  5. 单击加载消息,尝试使用一些消息并检查它们在主题中是否可用。

    T17_1

重要说明加载消息仅适用于在上一个 MINUTE 中使用的消息,这意味着如果运行 LOAD_RANDOM_DATA.SQL 脚本后花费的时间比该时间长,则不会看到任何结果。

要查看结果,请转到数据库并再次运行 LOAD_RANDOM_DATA.SQL 脚本,然后返回到加载消息,您将看到您的消息。

确认

更多学习资源

探索 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 频道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心