将 Kafka Streams 数据连接到 Oracle Autonomous Database
您可以创建计算实例并安装 Kafka 以作为生成器发送消息,或者在 OCI 控制台中使用以下步骤。
- 登录到 OCI 控制台并转到市场。
- 在所有应用程序下,搜索 GoldenGate 流分析。
- 单击启动堆栈。
- 提供 VCN 详细信息,然后添加 SSH 公共密钥以稍后使用私有密钥登录到 GoldenGate 流分析实例。
注意:
此 GoldenGate 流分析实例安装了内置的示例 Kafka 流(生成器),如果您有自己的 Kafka 流,也可以使用该实例。
创建自治数据库
- 从左上角菜单中单击 Oracle Database ,然后单击 Autonomous Database 。
- 在自治数据库主页中,单击创建 Autonomous Database 。
- 选择要在其中创建数据库的区间。
- 显示名称:输入可帮助您轻松标识 Autonomous Database 的用户友好说明或其他信息。
- 数据库名称:提供新 Autonomous Database 的名称。
- 选择工作量类型作为数据仓库。
- 选择部署类型作为无服务器。
- 选择数据库版本为 19c,ECPU 计数为 2,存储 (TB) 为 1。
- 创建管理员身份证明并输入密码。密码必须符合基于 Oracle Cloud 安全标准的强密码复杂性标准。有关密码复杂性的规则的详细信息,请参阅创建数据库用户。
- 选择从任何位置安全访问网络访问。
- 将其余参数保留为默认参数,然后单击创建 Autonomous Database 。
此时将显示“Provisioning until the new Autonomous Database”。
创建用于存储 Kafka 消息的表
- 打开 SQLDeveloper,然后单击 + 图标以创建 Oracle 数据库连接。
- 输入连接名称,提供数据库用户名和密码。
- 选择连接类型作为 Cloud Wallet,然后浏览
wallet.zip
文件并单击连接。应成功创建连接。 - 使用以下脚本创建一个示例表:
CREATE TABLE "TEST"."SAMPLE" ( "FRUIT" VARCHAR2(50 BYTE)", "TOTAL" VARCHAR2(50 BYTE)", "COLOR" VARCHAR2(50 BYTE)" )
创建 Oracle Integration 3 实例
- 在 OCI 控制台中,单击 Developer Services(开发人员服务),然后在 Application Integration(应用程序集成)下单击 Integration(集成)。
- 在“集成实例”主页中,单击创建实例。
- 输入名称,选择版本作为 Oracle Integration 3 ,选择版本作为企业,选择配置作为生产,选择许可证类型作为订阅新的 Oracle Integration 实例。
- 单击创建。
创建实例后,单击服务控制台,这将转到新窗口。
在 Oracle Integration 3 中创建 Oracle Autonomous Data Warehouse 连接
- 在 Oracle Integration 实例中,单击汉堡包菜单,然后在设计下选择连接。
- 单击创建,搜索 Oracle ADW 并选择。
- 输入有关此连接的名称、标识符、角色作为触发和调用、关键字和说明。
- 在属性下,展开可选属性并输入服务名。
- 在安全性下,选择 JDBC over SSL ,然后上载
Wallet.zip
文件。 - 输入创建数据库时提供的 Wallet 口令。
- 以 admin 身份输入数据库服务用户名。
- 输入管理员用户的数据库服务密码。
- 选择访问类型作为公共网关。
- 单击右上方的测试。
- 显示成功消息后,单击保存。
Kafka 实例中的关联代理组
您需要在安装 Kafka 流实例中运行的代理。
- 在 Oracle Integration 3 实例中,单击汉堡包菜单,然后在设计下选择代理。
- 在代理页中,单击创建。
- 输入名称、标识符、说明,然后单击创建。
- 创建代理后,单击 Download(下载),然后单击 Connectivity Agent(连接代理)。
- 成功下载后,将
oic_conn_agent_installer.zip
复制到运行 Kafka 主题的 Kafka 实例并生成消息。在此解决方案手册示例中,它是 Oracle GoldenGate Stream Analytics 实例。 - 解压缩
oic_conn_agent_installer.zip
。 - 在状态列下,单击 ... 图标,然后单击下载配置。
- 复制
InstallerProfile.cfg
文件并将此文件复制到 Kafka 实例。 - 替换 Kafka 实例中的
InstallerProfile.cfg
文件。 - 替换
InstallerProfile.cfg
后,运行以下语句以使用以下命令在 Oracle GoldenGate 流分析实例或 Kafka 内部部署实例中启动代理:$ java -jar connectivityagent.jar
代理应成功启动,使其保持运行且不停止。有关详细信息,请参阅在 Oracle Integration 第 2 代中使用集成
在 Oracle Integration 3 中创建 Kafka 连接
- 在 Oracle Integration 3 实例中,单击汉堡包菜单,然后在设计下选择连接。
- 单击创建,搜索 Apache Kafka 并选择。
- 输入有关此连接的名称、标识符、角色作为触发和调用、关键字和说明。
- 在 Properties 下,输入 Bootstrap Servers:instancename:9092。
注意:
在 Kafka 实例正在使用的 VCN 中,在安全列表下,您需要添加端口 9092 以允许流量。 - 为安全性选择无安全策略。
- 选择 Access type(访问类型)作为 Connectivity Agent(连接代理),然后单击 Associate Agent group(关联代理组)。
- 选择该代理并单击使用。
- 单击测试。你应该得到一个成功的消息。
- 单击保存。
在 Oracle Integration 3 中创建 Kafka 与 Oracle Autonomous Data Warehouse 之间的集成
- 在 Oracle Integration 3 实例中,单击汉堡包菜单,然后在设计下选择集成。
- 单击创建,然后在创建集成对话框中,选择应用程序。
- 以 KafkaToADW 身份输入 I ntegration name ,然后单击 Create 。
注意:
您将注意到为 Kafka 创建的两个连接和 Oracle Autonomous Data Warehouse 作为触发器。 - 选择 Kafka,系统将提示您输入触发器的名称,选择消息类型作为使用者,然后单击继续。
- 从下拉列表中选择 Kafka 主题并指定使用者名称,将字段保留为默认值,然后单击继续。
- 选择 Message Structure(消息结构)作为 Sample JSON Document(示例 JSON 文档),然后拖放同一 JSON 文件。
- 在汇总窗口中,检查所有详细信息,然后单击完成。
- 您会发现已创建的触发器下方有一个向下箭头。
- 单击 + 图标,然后在调用下选择 ADW,您将看到一个按名称 Map 列出的附加框。
- 将鼠标移到调用上,然后单击 ... 并选择编辑。
- 为字段“要执行哪些操作”字段提供名称并选择“对表执行操作”?,选择插入并单击继续。
- 选择表,单击继续,然后在“概要”页中单击完成。
- 接下来,将鼠标移到映射框上,单击 ... 并选择编辑。
- 在“映射”页中,连接源和目标字段。
- 单击验证,应成功验证。
- 在“集成”页面上,单击保存,这应该成功配置集成。
- 在“集成”主页上,将鼠标移到状态字段上,然后单击“电源”图标以激活。
- 您将看到一个名为激活集成的窗口,选择生产并单击激活。这将成功激活集成以使用 Kafka 消息。
- 启动 Kafka 主题,您将看到消息存储在数据库中。打开 SQLDeveloper,打开表并单击数据选项卡以查看消息。
- 如果您有自己的 Kafka 流,则可以开始以相同格式生成消息。
- 如果您使用的是 Oracle GoldenGate Stream Analytics,请通过 SSH 访问 Oracle GoldenGate Stream Analytics 实例并转到
/u01/app/osa/utilities/kafka-utils
文件夹。 - 您可以使用
sample.json
作为传入数据。使用此 json 格式:{"fruit": "Apple","total": "Large","color": "Red"}
- 执行以下命令以 Kafka 主题的形式循环数据馈送:
opc@ggsanew kafka-utils]$ ./loop-file.sh ./sample.json | ./sampler.sh 1 1 | ./kafka.sh feed complex