使用和 AWS Mainframe Modernization Amazon Q 生成 Db2 z/OS 数据见解 QuickSight - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用和 AWS Mainframe Modernization Amazon Q 生成 Db2 z/OS 数据见解 QuickSight

由 Shubham Roy (AWS)、Roshna Razack () 和 Santosh Kumar Sin AWS gh () 创作 AWS

摘要

如果您的组织在 IBM Db2 大型机环境中托管关键业务数据,那么从这些数据中获取见解对于推动增长和创新至关重要。通过解锁大型机数据,您可以构建更快、更安全、更可扩展的商业智能,从而加快 Amazon Web Services ()AWS云中数据驱动的决策、增长和创新。

这种模式提供了一种解决方案,用于生成业务见解,并根据 IBM Db2 for z/OS 表中的大型机数据创建可共享的叙述。AWS Mainframe Modernization 使用精确数据复制功能,将大型机数据更改流式传输到亚马逊托管流媒体for Apache Kafka(MSK亚马逊)主题。使用亚马逊 Redshift 流媒体提取,亚马逊主题数据存储在MSK亚马逊 Redshift 无服务器数据仓库表中,以便在亚马逊进行分析。 QuickSight

在亚马逊提供数据后 QuickSight,您可以使用带有 A mazon Q 的自然语言提示 QuickSight来创建数据摘要、提问和生成数据故事。您无需编写SQL查询或学习商业智能 (BI) 工具。

业务背景

这种模式为大型机数据分析和数据洞察用例提供了解决方案。使用该模式,您可以为公司的数据构建可视化仪表板。为了演示解决方案,这种模式使用了一家医疗保健公司,该公司为其在美国的成员提供医疗、牙科和视力计划。在此示例中,成员人口统计和计划信息存储在 IBM Db2 for z/OS 数据表中。可视化仪表板显示以下内容:

  • 按地区划分的成员分布

  • 按性别分列的成员分布

  • 按年龄划分的成员分布

  • 按计划类型划分的成员分布

  • 尚未完成预防性免疫的会员

有关按地区分列的成员分布和尚未完成预防性免疫的成员的示例,请参阅 “其他信息” 部分。

创建仪表板后,您将生成一个数据故事,解释先前分析的见解。数据故事为增加完成预防性免疫接种的成员人数提供了建议。

先决条件和限制

先决条件

  • 活跃 AWS 账户的. 该解决方案是在亚马逊弹性计算云(亚马逊EC2)上的 Amazon Linux 2 上构建和测试的。

  • 带有子网的虚拟私有云 (VPC),您的大型机系统可以访问该子网。

  • 包含业务数据的大型机数据库。有关用于构建和测试此解决方案的示例数据,请参阅附件部分。

  • 在 Db2 z/OS 表上启用更改数据捕获 (CDC)。要CDC在 Db2 z/OS 上启用,请参阅文档。IBM

  • Precission Connect CDC for z/OS 安装在托管源数据库的 z/OS 系统上。CDC适用于 z/OS 的 Precission Connect 映像以 z IBM/OS 数据复制的AWS Mainframe Modernization zip 文件形式提供 Amazon 机器映像 ()。AMI要在大型机上安装 precission Connect CDC for z/OS,请参阅 Precission 安装文档

限制

  • 您的大型机 Db2 数据应采用 Precission Connect 支持的数据类型。CDC有关支持的数据类型的列表,请参阅 Precission Connect CDC 文档

  • 您在亚马逊上的数据MSK应采用亚马逊 Redshift 支持的数据类型。有关支持的数据类型的列表,请参阅亚马逊 Redshift 文档

  • Amazon Redshift 对不同的数据类型有不同的行为和大小限制。有关更多信息,请参阅亚马逊 Redshift 文档

  • 亚马逊中的近乎实时的数据 QuickSight 取决于为亚马逊 Redshift 数据库设置的刷新间隔。

  • 有些 AWS 服务 并非全部可用 AWS 区域。有关区域可用性,请参阅AWS 服务 按地区划分。Amazon Q in 目前 QuickSight 并非在所有支持亚马逊的地区都可用 QuickSight。有关特定终端节点,请参阅服务终端节点和配额页面,然后选择服务的链接。

产品版本

  • AWS Mainframe Modernization 使用精确版本 4.1.44 进行数据复制

  • Python 版本 3.6 或更高版本

  • Apache Kafka 版本 3.5.1

架构

目标架构

下图显示了一种架构,该架构通过使用 Preclist 和 Amazon Q 中的AWS Mainframe Modernization QuickSight数据复制从大型机数据生成业务见解。

从 z/OS 大型机到 Amazon 的七步流程。 QuickSight

图表显示了以下工作流:

  1. Precission Log Reader Agent 从 Db2 日志中读取数据,并将数据写入大型机OMVS文件系统的临时存储中。

  2. 发布者代理从临时存储中读取原始 Db2 日志。

  3. 本地控制器守护程序对操作进行身份验证、授权、监控和管理操作。

  4. 使用预配置AMI在 Amazon EC2 上部署应用代理。它使用 TCP /IP 通过控制器守护程序与发布者代理连接。Apply Agent MSK 使用多个工作程序将数据推送到 Amazon 以实现高吞吐量。

  5. 工作人员将数据以JSON格式写入 Amazon MSK 主题。作为复制消息的中间目标,Amazon MSK 提供了高度可用的自动故障转移功能。

  6. 亚马逊 Redshift 流媒体提取提供从亚马逊到亚马逊 Redshift 无服务器数据库的低延迟、高速数据摄取。MSKAmazon Redshift 中的存储过程将大型机变更数据 (insert/update/deletes) 协调到亚马逊 Redshift 表中。这些 Amazon Redshift 表是亚马逊的数据分析来源。 QuickSight

  7. 用户访问 Amazon 中的数据 QuickSight 以进行分析和见解。您可以使用 Amazon Q 通过自然语言提示与数据进行交互。 QuickSight

工具

AWS 服务

其他工具

代码存储库

此模式的代码可在 GitHub Mainframe_ DataInsights _change_data_ regniforment 存储库中找到。该代码是亚马逊 Redshift 中的一个存储过程。此存储过程可将来自亚马逊的大型机数据更改(插入、更新和删除)调整到 Amazon Redshift 表MSK中。这些 Amazon Redshift 表是亚马逊的数据分析来源。 QuickSight

最佳实践

操作说明

任务描述所需技能

设置安全组。

要连接到控制器守护程序和 Amazon MSK 集群,请为该EC2实例创建一个安全组。添加以下入站和出站规则:

  • 入站规则 1:

    • 对于 “类型”,选择 “自定义” TCP。

    • 对于 Protocol(协议),选择 TCP

    • 对于端口范围,选择 2626(精确控制器守护程序的默认端口)或在大型机上运行的控制器守护程序的端口号。

    • 对于 “来源”,选择 “CIDR屏蔽”。

  • 入站规则 2:

    • 对于 “类型”,选择 “自定义” TCP。

    • 对于 Protocol(协议),选择 SSH

    • 对于端口范围,请选择 22

    • 对于来源,选择 IP 地址前缀列表

  • 入站规则 3:

    • 对于 “类型”,选择 “自定义” TCP。

    • 对于 Protocol(协议),选择 TCP

    • 对于端口范围,请选择 9092-9098

    • 对于 “来源”,选择 “CIDR屏蔽”。

  • 出站规则 1:

    • 对于 “类型”,选择 “自定义” TCP。

    • 对于 Protocol(协议),选择 TCP

    • 对于端口范围,请选择 9092-9098

    • 对于 “来源”,选择 “CIDR屏蔽”。

  • 出站规则 2:

    • 对于 “类型”,选择 “自定义” TCP。

    • 对于 Protocol(协议),选择 TCP

    • 对于端口范围,选择 2626(精确控制器守护程序的默认端口)或在大型机上运行的控制器守护程序的端口号。

    • 对于 “来源”,选择 “CIDR屏蔽”。

记下安全组的名称。启动EC2实例和配置 Amazon MSK 集群时,您需要引用该名称。

DevOps 工程师,AWS DevOps

创建IAM策略和IAM角色。

  1. 要创建IAM策略和IAM角色,请按照AWS文档中的说明进行操作。

    该IAM策略授予在 Amazon MSK 集群上创建主题和向这些主题发送数据的权限。

  2. 创建IAM角色后,将策略与其关联。

    记下IAM角色名称。当您启动实例时,此角色将用作IAMEC2实例配置文件。

DevOps 工程师、AWS系统管理员

配置实EC2例。

要将EC2实例配置为精确运行CDC并连接到 AmazonMSK,请执行以下操作:

  1. 登录 AWS Marketplace,订阅AWS大型机现代化 — 适用于 IBM z/OS 的数据复制

  2. AMI从托管订阅中选择,然后选择 “启动新实例”。

  3. 提供其他配置详细信息,例如实例名称、实例类型、key pair 和子网。VPC有关更多信息,请参阅 Amazon EC2 文档

  4. 在下拉列表中,选择您之前创建的安全组。

  5. 在 “高级详细信息” 下的 “IAM实例配置文件” 下,您必须选择之前创建的角色。

  6. 选择启动实例

AWS管理员、 DevOps 工程师
任务描述所需技能

创建 Amazon MSK 集群。

要创建 Amazon MSK 集群,请执行以下操作:

  1. 登录并打开 Amazon MSK 控制台,网址为https://console.aws.amazon.com/msk/。 AWS Management Console

  2. 选择创建集群

  3. 对于集群创建方法,选择自定义创建,对于集群类型,选择已配置。

  4. 为群集提供一个名称。

  5. 根据需要更新群集设置,并保留其他设置的默认值。

  6. 注意 < Kafka 版本 >。 在 Kafka 客户端设置过程中,您将需要它。

  7. 选择下一步

  8. 选择您用于 Precist EC2 实例的相同VPC子网,然后选择之前创建的安全组。

  9. “安全设置” 部分,启用 SASL/SCRAMIAM基于角色的身份验证。Precissift Connect CDC 使用SASL/SCRAM(简单身份验证和安全层/加盐质询响应机制),IAM是连接亚马逊 Redshift 所必需的。

  10. 选择下一步

  11. 要进行查看,请选择监控代理日志传送方法。

  12. 选择 “下一步”,然后选择 “创建集群”。

典型的预配置集群最多需要 15 分钟才能创建。创建集群后,其状态从 “创建中” 变为 “活动”。

AWS DevOps,云管理员

设置SASL/SCRAM身份验证。

要为 Amazon MSK 集群设置SASL/SCRAM身份验证,请执行以下操作:

  1. 要在 Secrets Manager 中设置密钥,请按照AWS 文档中的说明进行操作。

  2. 打开亚马逊MSK控制台,然后选择您之前创建的亚马逊MSK集群。

  3. 选择属性选项卡。

  4. 选择 “关联密钥”,选择密钥,选择您创建的密钥,然后选择 “关联密钥”。

    您将看到一条类似于以下内容的成功消息:

    Successfully associated 1 secret for cluster <chosen cluster name>

  5. 选择集群名称。

  6. 在群集摘要中,选择查看客户机信息

  7. 记下身份验证类型 SASL /的私有端点连接字符串SCRAM。

云架构师

创建 Amazon MSK 主题。

要创建 Amazon MSK 主题,请执行以下操作:

  1. 通过运行以下命令连接到您之前创建的EC2实例,并安装最新更新:

    sudo yum update -y
  2. 通过运行以下命令安装 Java 和 Kafka 库:

    sudo yum install -y java-11 librdkafka librdkafka-devel
  3. 要创建名为kafka中的文件夹/home/ec2-user,请导航到该文件夹,然后运行以下命令:

    mkdir kafka;cd kafka
  4. kafka客户端库下载到kafka文件夹,<YOUR MSK VERSION>替换为您在创建 Amazon MSK 集群时记下的 Kafka 版本:

    wget https://archive.apache.org/dist/kafka//kafka_2.13-<YOUR MSK VERSION>.tgz
  5. 要解压缩下载的文件,请运行以下命令,替换YOUR MSK VERSION>

    tar -xzf kafka_2.13-<YOUR MSK VERSION>.tgz
  6. 要导航到该kafka libs目录并下载 Java IAM 身份验证 Java Archive (JAR) 文件,请运行以下命令,替换<YOUR MSK VERSION>

    cd kafka_2.13-<YOUR MSK VERSION>/libs wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.1/aws-msk-iam-auth-1.1.1-all.jarkafka
  7. 要导航到 Kafka bin 目录并创建client.properties文件,请运行以下命令:

    cd /home/ec2-user/kafka/kafka_2.13-<YOUR MSK VERSION>/bin cat >client.properties
  8. 使用以下内容更新client.properties文件:

    security.protocol=SASL_SSL sasl.mechanism=AWS_MSK_IAM sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
  9. 要创建 Kafka 主题,请导航到 Kafka bin 并运行以下命令,替换<kafka broker>为您在创建 Ama MSK zon 集群时记下的IAM引导服务器私有终端节点:

    ./kafka-topics.sh --bootstrap-server <kafka broker> --command-config client.properties --create --replication-factor 3 —partitions 6 --topic <topic name>

  10. 当消息Created topic <topic name>出现时,请记下主题名称。

云管理员
任务描述所需技能

设置精确脚本以复制数据更改。

要设置 Precist Connect CDC 脚本以将更改的数据从大型机复制到亚马逊MSK主题,请执行以下操作:

  1. 要精确地创建文件夹名称并更改为该文件夹,请运行以下命令:

    mkdir /home/ec2-user/precisely;cd /home/ec2-user/precisely
  2. 要在其中创建两个精确名为 and 的文件夹ddlsscripts然后切换到该scripts文件夹,请运行以下命令:

    mkdir scripts;mkdir ddls;cd scripts
  3. 要在scripts文件夹sqdata_kafka_producer.conf中创建名为的文件,请运行以下命令:

    cat >sqdata_kafka_producer.conf
  4. 使用以下内容更新sqdata_kafka_producer.conf文件:

    builtin.features=SASL_SCRAM security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 sasl.username=<User Name> sasl.password=<Password> metadata.broker.list=<SASL/SCRAM Bootstrap servers>
    注意

    <SASL/SCRAM Bootstrap servers>使用您之前配置的 Amazon MSKSASL/SCRAM经纪人列表进行更新。<Password>使用你之前在 Secrets Manager 中设置的用户名和密码进行更新<User Name>

  5. scripts文件夹中创建script.sqd文件。

    cat >script.sqd

    应用引擎script.sqd用于处理源数据并将源数据复制到目标。有关 Apply Engine 脚本的示例,请参阅 “其他信息” 部分。

  6. 要切换到该ddls文件夹并为每个 Db2 表创建一个.ddl 文件,请运行以下命令:

    cd /home/ec2-user/precisely/ddls cat >mem_details.ddl cat >mem_plans.ddl

例如.ddl 文件,请参阅 “其他信息” 部分。

应用程序开发人员、云架构师

生成网络ACL密钥。

要生成网络访问控制列表(网络ACL)密钥,请执行以下操作:

  1. 要导出sqdata安装路径,请运行以下命令:

    export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin
  2. 要切换到/home/ec2-user目录并生成网络ACL密钥,请运行以下命令:

    cd /home/ec2-user sqdutil keygen --force

    生成公钥和私钥后,将显示以下消息:

    SQDUT04I Generating a private key in file /home/ec2-user/.nacl/id_nacl SQDC017I sqdutil(pid=27344) terminated successfully
  3. 记下存储在.nacl文件夹中的生成的公钥。

云架构师,AWS DevOps
任务描述所需技能

在ISPF屏幕中配置默认值。

要在交互式系统生产率工具 (ISPF) 中配置默认设置,请按照 Precist 文档中的说明进行操作。

大型机系统管理员

配置控制器守护程序。

要配置控制器守护程序,请执行以下操作:

  1. SQDataz/OS 主菜单屏幕上,选择选项 2。

  2. 在 “将守护程序添加到列表” 屏幕上的 “守护程序名称” 字段中,输入守护程序的名称,然后按 Enter。

大型机系统管理员

配置发布者。

要配置发布器,请执行以下操作:

  1. SQDataz/OS 主菜单屏幕上,选择选项 3。这会将您带到 “捕获/发布者摘要” 屏幕

  2. 选择添加CAB文件的选项。这将带您进入 “将CAB文件添加到列表” 屏幕。

  3. 在 “名称” 字段中,输入CAB文件的名称。对于 Db2,输入 “类型为”D

  4. Enter 键。这将带您进入新建 Db2 捕获CAB文件屏幕。

  5. zfS 目录字段中,指定存储装载点。

  6. 按 Enter 键保存并继续。

大型机系统管理员

更新守护程序配置文件。

要更新控制器守护程序配置文件中的发布者详细信息,请执行以下操作:

  1. SQDataz/OS 主菜单屏幕上,选择选项 2。

  2. 在您创建的守护程序S附近输入以查看守护程序的详细信息。

  3. 输入1,然后按 Enter 键编辑代理文件。

  4. 添加您的CAB文件详细信息。以下示例显示了名为的CAB文件的详细信息DB2ZTOMSK。请改用您的大型机用户 ID。<userid>

    ÝDB2ZTOMSK¨ type=capture cab=/u/<userid>/sqdata/DB2ZTOMSK.cab
  5. F3

  6. 输入2可编辑ACL文件。将您的userid添加到acl配置文件中,如以下示例所示:

    Ýacls¨ prod=admin,<userid>
  7. F3 保存并退出。

大型机系统管理员

创建启动控制器守护程序的作业。

要创建作业,请执行以下操作:

  1. 选项中,输入G

  2. 输入JOB卡片、任务和过程库以及Db2 load库的详细信息。

  3. 输入网络ACL文件详细信息,然后输入选项 2,在指定的作业库中生成作业控制语言 (JCL) 文件。

大型机系统管理员

生成捕获发布者JCL文件。

要生成捕获发布者JCL文件,请执行以下操作:

  1. SQDataz/OS 主菜单屏幕上,选择选项 3。这会将您带到 “捕获/发布者摘要” 屏幕

  2. 在CAB文件S旁边输入以将其选中。这将带您进入 “Db2 捕获/发布者详细信息” 屏幕

  3. 选项G中,输入生成capture/publisher作业的选项。

  4. 输入JOB卡库、作业库和过程库以及 Db2 加载库的详细信息。

  5. 要创建作业,请选择选项 4。该作业是在作业库中指定的作业库中创建的。

大型机系统管理员

检查并更新CDC。

  1. 通过运行以下查询来检查 Db2 表的DATACAPTURE标志,更改<table name>为 Db2 表的名称:

    SELECT DATACAPTURE FROM SYSIBM.SYSTABLES WHERE NAME='<table name>';

    确认结果显示DATACAPTUREY

  2. 如果不DATACAPTUREY,请运行以下查询以在 Db2 表CDC上启用,更改<table name>为 Db2 表名:

    ALTER TABLE <table name> DATA CAPTURE CHANGES;
大型机系统管理员

提交JCL文件。

提交您在前面的步骤中配置的以下JCL文件:

  • JCL启动控制器守护程序的文件

  • JCL开始捕获和发布的文件

提交JCL文件后,您可以精确地在EC2实例上启动 Apply Engine。

大型机系统管理员
任务描述所需技能

启动应用引擎并验证CDC。

要在EC2实例上启动 Apply Engine 并进行验证CDC,请执行以下操作:

  1. 要连接到EC2实例,请按照AWS 文档中的说明进行操作。

  2. 切换到包含该script.sqd文件的目录:

    cd /home/ec2-user/precisely/scripts
  3. 要启动应用引擎,请运行以下sqdeng启动命令:

    sqdeng -s script.sqd --identity=/home/ec2-user/.nacl/id_nacl

    Apply Engine 将开始等待来自大型机来源的更新。

  4. 要进行测试CDC,请在 Db2 表中插入或更新一些记录。

  5. 验证 Apply Engine 日志是否显示捕获并写入目标的记录数。

云架构师、应用程序开发人员

验证有关 Amazon MSK 主题的记录。

要阅读来自 Kafka 主题的消息,请执行以下操作:

  1. 要更改到EC2实例上 Kafka 客户端安装路径的bin目录,请运行以下命令,<Kafka version>替换为您的版本:

    cd /home/ec2-user/kafka/kafka_2.13-<Kafka version>/bin
  2. 要验证在 Kafka 主题中以消息CDC形式写入的 Db2,请运行以下命令,将<kafka broker><Topic Name>替换为之前创建的主题:

    ./kafka-console-consumer.sh --bootstrap-server <kafka broker>:9098 --topic <Topic Name> --from-beginning --consumer.config client.properties

  3. 验证消息是否与 Db2 表中更新的记录数相匹配。

应用程序开发人员、云架构师
任务描述所需技能

设置 Amazon Redshift Serverless。

要创建 Amazon Redshift 无服务器数据仓库,请按照文档中的说明进行操作。AWS

在 Amazon Redshift Serverless 控制面板上,验证命名空间和工作组是否已创建并可用。对于此示例模式,该过程可能需要 2−5 分钟。

数据工程师

设置直播摄取所需的IAM角色和信任策略。

要设置来自亚马逊MSK的 Amazon Redshift Serverless 直播接收,请执行以下操作:

  1. 为亚马逊 Redshift 创建访问亚马逊的IAM政策。MSK

    使用以下代码[region]替换 AWS 区域 为 MSK f [account-id] or Amazon、您的 AWS 账户 ID 和[msk-cluster-name]亚马逊MSK集群名称:

    {"Version": "2012-10-17","Statement": [{"Sid": "MSKIAMpolicy","Effect": "Allow","Action": ["kafka-cluster:ReadData","kafka-cluster:DescribeTopic","kafka-cluster:Connect"],"Resource": ["arn:aws:kafka:[region]:[account-id]:cluster/[msk-cluster-name]/*","arn:aws:kafka:[region]:[account-id]:topic/[msk-cluster-name]/*"]},{"Effect": "Allow","Action": ["kafka-cluster:AlterGroup","kafka-cluster:DescribeGroup"],"Resource": ["arn:aws:kafka:[region]:[account-id]:group/[msk-cluster-name]/*"]}]}

    您可以在亚马逊MSK控制台上找到集群名称和亚马逊资源名称 (ARN)。在控制台上,选择集群摘要,然后选择ARN

  2. 要创建IAM角色并附加策略,请按照AWS 文档中的说明进行操作。

  3. 要将IAM角色附加到 Amazon Redshift 无服务器命名空间,请执行以下操作:

    1. 登录控制台,然后在上打开亚马逊 Redshift 控制台。https://console.aws.amazon.com/redshiftv2/

    2. 选择 Serverless 控制面板

    3. 选择 “命名空间”。

    4. 选择 “安全和加密” 选项卡。

    5. 选择 “权限”,然后附加您创建的IAM角色。

  4. 在您的 Amazon Redshift 无服务器安全组中,创建一条包含以下详细信息的入站规则:

    • 对于 “类型”,选择 “自定义” TCP。

    • 对于 Protocol(协议),选择 TCP

    • 对于端口范围,请选择 9098、919 8。

    • 对于来源,选择 Amazon MSK 安全组

  5. 在您的 Amazon MSK 安全组中,创建包含以下详细信息的入站规则:

    • 对于 “类型”,选择 “自定义” TCP。

    • 对于 Protocol(协议),选择 TCP

    • 对于端口范围,请选择 9098、919 8。

    • 对于来源,选择 Amazon Redshift 安全组

    此模式使用该端口对 Amazon Redshift 和亚马逊配置进行IAM身份验证。MSK有关更多信息,请参阅AWS 文档(步骤 2)。

  6. 为 Amazon Redshift 无服务器工作组开启增强版VPC路由。有关更多信息,请参阅 AWS 文档

数据工程师

将 Amazon Redshift Serverless 连接到亚马逊。MSK

要连接到亚马逊MSK主题,请在 Amazon Redshift Serverless 中创建外部架构。在 Amazon Redshift 查询编辑器 v2 中,运行以下SQL命令,'iam_role_arn'替换为你之前为集群创建的角色,将 'MSK_cluster_arn '替换ARN为集群的角色。

CREATE EXTERNAL SCHEMA member_schema FROM MSK IAM_ROLE 'iam_role_arn' AUTHENTICATION iam URI 'MSK_cluster_arn';
迁移工程师

创建物化视图。

要在 Amazon Redshift Serverless 中使用来自亚马逊MSK主题的数据,请创建一个物化视图。在 Amazon Redshift 查询编辑器 v2 中,运行以下SQL命令,<MSK_Topic_name>替换为你的亚马逊主题的名称。MSK

CREATE MATERIALIZED VIEW member_view AUTO REFRESH YES AS SELECT kafka_partition, kafka_offset, refresh_time, json_parse(kafka_value) AS Data FROM member_schema.<MSK_Topic_name> WHERE CAN_JSON_PARSE(kafka_value);
迁移工程师

在 Amazon Redshift 中创建目标表。

亚马逊 Redshift 表格为亚马逊提供了输入。 QuickSight此模式使用表member_dtlsmember_plans,它们与大型机上的源 Db2 表相匹配。

要在 Amazon Redshift 中创建这两个表,请在亚马逊 Redshift 查询编辑器 v2 中运行以下SQL命令:

-- Table 1: members_dtls CREATE TABLE members_dtls ( memberid INT ENCODE AZ64, member_name VARCHAR(100) ENCODE ZSTD, member_type VARCHAR(50) ENCODE ZSTD, age INT ENCODE AZ64, gender CHAR(1) ENCODE BYTEDICT, email VARCHAR(100) ENCODE ZSTD, region VARCHAR(50) ENCODE ZSTD ) DISTSTYLE AUTO; -- Table 2: member_plans CREATE TABLE member_plans ( memberid INT ENCODE AZ64, medical_plan CHAR(1) ENCODE BYTEDICT, dental_plan CHAR(1) ENCODE BYTEDICT, vision_plan CHAR(1) ENCODE BYTEDICT, preventive_immunization VARCHAR(50) ENCODE ZSTD ) DISTSTYLE AUTO;
迁移工程师

在 Amazon Redshift 中创建存储过程。

这种模式使用存储过程将源大型机的更改数据(INSERTUPDATEDELETE)同步到目标 Amazon Redshift 数据仓库表,以便在亚马逊中进行分析。 QuickSight

要在 Amazon Redshift 中创建存储过程,请使用查询编辑器 v2 运行存储库中的存储过程代码。 GitHub

迁移工程师

从流式实例化视图中读取并加载到目标表。

存储过程从流式实例化视图中读取数据更改,并将数据更改加载到目标表。要运行存储过程,请使用以下命令:

call SP_Members_Load();

您可以使用 Amazon EventBridge 在 Amazon Redshift 数据仓库中安排任务,以便根据您的数据延迟要求调用此存储过程。 EventBridge 以固定的间隔运行作业。要监视先前对该过程的调用是否完成,可能需要使用诸如AWS Step Functions状态机之类的机制。有关更多信息,请参阅以下资源:

另一种选择是使用 Amazon Redshift 查询编辑器 v2 来安排刷新。有关更多信息,请参阅使用查询编辑器 v2 安排查询。

迁移工程师
任务描述所需技能

设置 Amazon QuickSight。

要设置 Amazon QuickSight,请按照AWS 文档中的说明进行操作。

迁移工程师

在亚马逊 QuickSight 和亚马逊 Redshift 之间建立安全连接。

要在亚马逊 QuickSight 和亚马逊 Redshift 之间建立安全连接,请执行以下操作

  1. 要授权从亚马逊 QuickSight 到亚马逊 Redshift 的连接,请打开亚马逊 Redshift 控制台,然后在亚马逊 Redshift 安全组中添加入站规则。该规则应允许流量从CIDR您设置亚马逊的范围内流向端口 5439(默认 Redshift 端口)。 QuickSight有关 AWS 区域 及其的 IP 地址的列表,请参阅 Amazon 支持 AWS 区域 QuickSight

  2. 在 Amazon Redshift 控制台上,选择 “工作组”、“数据访问”、“网络和安全”,然后启用 “可公开访问”。

迁移工程师

为 Amazon 创建数据集 QuickSight。

要通过 Amazon Redshift 为亚马逊 QuickSight 创建数据集,请执行以下操作:

  1. 在 Amazon QuickSight 控制台的导航窗格中,选择数据集

  2. 数据集页面上,选择新数据集

  3. 选择 Redshift 手动连接

  4. 在 “新建 Redshift 数据源” 窗口中,输入连接信息:

    • 数据源名称中,输入 Amazon Redshift 数据源的名称。

    • 对于数据库服务器,请输入 Amazon Redshift 集群的终端节点。您可以从 Amazon Redshift Serverless 控制面板上集群工作组一般信息部分的终端节点字段中获取终端节点值。服务器地址是冒号之前端点的第一部分,如以下示例所示:

      mfdata-insights.NNNNNNNNN.us-east-1.redshift-serverless.amazonaws.com:5439/dev
    • 对于端口,输入5439(Amazon Redshift 的默认端口)。

    • 输入数据库的名称(在端点的斜杠之后)。在本例中,数据库名称为dev

    • 用户名密码中,输入 Amazon Redshift 数据库的用户名和密码。

  5. 选择 “验证连接”。如果成功,您应该会看到一个绿色复选标记,表示已验证。如果验证失败,请参阅 “故障排除” 部分。

  6. 选择创建数据来源

迁移工程师

加入数据集。

要在 Amazon 中创建分析 QuickSight,请按照AWS 文档中的说明将这两个表格连接起来

在 “联接配置” 窗格中,为 “联接类型” 选择 “”。在 “联接子句” 下,使用memberid from member_plans = memberid from members_details

迁移工程师
任务描述所需技能

在中设置 Amazon Q QuickSight。

要在 QuickSight 生成式 BI 中设置 Amazon Q 功能,请按照AWS 文档中的说明进行操作。

迁移工程师

分析大型机数据并构建可视化仪表板。

要在 Amazon 中分析和可视化您的数据 QuickSight,请执行以下操作:

  1. 要创建大型机数据分析,请按照AWS 文档中的说明进行操作。对于数据集,请选择您创建的数据集。

  2. 在分析页面上,选择生成视觉对象

  3. 创建用于分析的主题窗口中,选择更新现有主题

  4. 选择主题下拉列表中,选择您之前创建的主题。

  5. 选择主题链接

  6. 链接主题后,选择 “构建视觉对象” 以打开 Amazon Q “构建可视化” 窗口。

  7. 在提示栏中。写下你的分析问题。用于此模式的示例问题如下:

    • 按地区显示成员分布

    • 按年龄显示成员分布

    • 按性别显示成员分布

    • 按计划类型显示成员分布

    • 显示未完成预防性免疫的会员

    输入问题后,选择 “构建”。Amazon Q in QuickSight 创建了视觉效果。

  8. 要将视觉效果添加到您的可视化仪表板,ADD请ANALYSIS选择 TO。

完成后,您可以发布仪表板以与组织中的其他人共享。有关示例,请参阅 “其他信息” 部分中的大型机可视化仪表板

迁移工程师
任务描述所需技能

创建数据故事。

创建数据故事以解释先前分析的见解,并提出建议,以增加成员的预防性免疫接种:

  1. 要创建数据故事,请按照AWS 文档中的说明进行操作。

  2. 对于数据故事提示,请使用以下内容:

    Build a data story about Region with most numbers of members. Also show the member distribution by medical plan, vision plan, dental plan. Recommend how to motivate members to complete immunization. Include 4 points of supporting data for this pattern.

    您还可以创建自己的提示,为其他业务见解生成数据故事。

  3. 选择 “添加视觉对象”,然后添加与数据故事相关的视觉对象。对于这种模式,请使用您之前创建的视觉效果。

  4. 选择构建

  5. 有关数据故事输出的示例,请参阅 “其他信息” 部分中的数据故事输出

迁移工程师

查看生成的数据故事。

要查看生成的数据故事,请在数据故事页面上选择该故事

迁移工程师

编辑生成的数据故事。

要更改数据故事中的格式、布局或视觉效果,请按照AWS 文档中的说明进行操作。

迁移工程师

分享数据故事。

要共享数据故事,请按照AWS 文档中的说明进行操作。

迁移工程师

故障排除

事务解决方案

QuickSight 从亚马逊到亚马逊 Redshift 数据集的创建失败Validate Connection了。

  1. 确认附加到 Amazon Redshift Serverless 实例的安全组允许来自与您设置亚马逊的地区关联的 IP 地址范围的入站流量。 QuickSight

  2. 确认 Amazon Redshift Serverless 的部署VPC位置已公开发布。

  3. 确认您使用的 Amazon Redshift 用户名和密码正确。您可以在亚马逊 Redshift 控制台上重置用户名和密码。

尝试在EC2实例上启动 Apply 引擎时会返回以下错误:

-bash: sqdeng: command not found

通过运行以下命令导出sqdata安装路径:

export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin

尝试启动 Apply Engine 时会返回以下连接错误之一:

  • SQDD018E Cannot connect to transfer socket(rc==0x18468). Agent:<Agent Name > Socket:/u/./sqdata/.DB2ZTOMSK.cab.data

  • SQDUR06E Error opening url cdc://<VPC end point name>:2626/DB2ZTOMSK/DB2ZTOMSK : errno:1128 (Unknown error 1128)

检查大型机线轴以确保控制器守护程序作业正在运行。

相关资源

其他信息

.ddl 文件示例

成员_details.ddl

CREATE TABLE MEMBER_DTLS ( memberid INTEGER NOT NULL, member_name VARCHAR(50), member_type VARCHAR(20), age INTEGER, gender CHAR(1), email VARCHAR(100), region VARCHAR(20) );

member_plans.ddl

CREATE TABLE MEMBER_PLANS ( memberid INTEGER NOT NULL, medical_plan CHAR(1), dental_plan CHAR(1), vision_plan CHAR(1), preventive_immunization VARCHAR(20) );

.sqd 文件示例

<kafka topic name>替换为您的 Amazon MSK 主题名称。

script.sqd

-- Name: DB2ZTOMSK: DB2z To MSK JOBNAME DB2ZTOMSK;REPORT EVERY 1;OPTIONS CDCOP('I','U','D');-- Source Descriptions JOBNAME DB2ZTOMSK; REPORT EVERY 1; OPTIONS CDCOP('I','U','D'); -- Source Descriptions BEGIN GROUP DB2_SOURCE; DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_details.ddl AS MEMBER_DTLS; DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_plans.ddl AS MEMBER_PLANS; END GROUP; -- Source Datastore DATASTORE cdc://<zos_host_name>/DB2ZTOMSK/DB2ZTOMSK OF UTSCDC AS CDCIN DESCRIBED BY GROUP DB2_SOURCE ; -- Target Datastore(s) DATASTORE 'kafka:///<kafka topic name>/key' OF JSON AS TARGET DESCRIBED BY GROUP DB2_SOURCE; PROCESS INTO TARGET SELECT { REPLICATE(TARGET) } FROM CDCIN;

大型机可视化仪表板

以下数据视觉对象是由 Amazon Q QuickSight 为分析问题创建的show member distribution by region

东北和西南航空有8名成员,西南航空有5名成员,中西部有4名成员。

以下数据视觉效果由 Amazon Q QuickSight 为该问题创建show member distribution by Region who have not completed preventive immunization, in pie chart

东南显示 6,西南航空显示 5,中西部显示 4。

数据故事输出

以下屏幕截图显示了 Amazon Q QuickSight 为提示创建的数据故事的各个部分Build a data story about Region with most numbers of members. Also show the member distribution by age, member distribution by gender. Recommend how to motivate members to complete immunization. Include 4 points of supporting data for this pattern

在导言中,数据故事建议选择成员最多的区域,以便从免疫工作中获得最大的影响。

简介屏幕,用于根据成员群的地理、人口统计和年龄进行分析。

数据故事提供了对这四个区域的成员人数的分析。东北、西南和东南地区的成员最多。

东北和西南地区有8个成员,东南地区有6个成员,中西部有4个成员。

数据故事按年龄对成员进行了分析。

该图显示会员群偏向于年轻人和中年人。

数据报道的重点是中西部的免疫工作。

关于个人宣传活动和区域挑战的建议。
继续进行数据故事分析,并附上预期的结果和结论。

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip