

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

# 使用生成 Db2 z/OS 数据见解 AWS Mainframe Modernization 和 Quick Sight 中的 Amazon Q
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight"></a>

*Shubham Roy、Roshna Razack 和 Santosh Kumar Singh，Amazon Web Services*

## Summary
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-summary"></a>

注意： AWS Mainframe Modernization 服务（托管运行时环境体验）不再向新客户开放。要获得与 AWS Mainframe Modernization 服务（托管运行时环境体验）相似的功能，请浏览 AWS Mainframe Modernization 服务（Self-Managed 体验）。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [AWS Mainframe Modernization 可用性变更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)。

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

这种模式提供了一种解决方案，用于生成业务见解，并根据 IBM Db2 中的大型机数据为表格创建可共享的叙述。 z/OS 通过[采用 Precisely 的AWS Mainframe Modernization 数据复制功能](https://docs.aws.amazon.com/m2/latest/userguide/precisely.html)，将大型机数据更改流式传输到 [Amazon Managed Streaming for Apache Kafka（Amazon MSK）](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html)主题。使用 [Amazon Redshift 串流摄取](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)，Amazon MSK 主题数据可以存储在 [Amazon Redshift Serverless](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) 数据仓库表中，以便在 Amazon Quick Sight 中进行分析。

在 Quick Sight 中提供数据后，您可以使用自然语言提示和 [Amazon Q in Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) 创建数据摘要、提问并生成数据故事。您不必编写 SQL 查询或学习商业智能（BI）工具。

**商业背景**

此模式提供了一种解决方案，可用于大型机数据分析和数据见解使用案例。使用此模式，您可以为公司的数据构建可视化控制面板。为了演示解决方案，此模式以一家为美国成员提供医疗、牙科和视力计划的医疗保健公司为例。在此示例中，成员人口统计和计划信息存储在 z/OS 数据表的 IBM Db2 中。可视化控制面板显示以下信息：
+ 按区域划分的成员分布
+ 按性别划分的成员分布
+ 按年龄划分的成员分布
+ 按计划类型划分的成员分布
+ 尚未完成预防性免疫接种的成员

有关按区域划分的成员分布和尚未完成预防性免疫接种的成员的示例，请参阅“其他信息”部分。

创建控制面板后，即可生成一个数据故事，其中会解释从先前分析得出的见解。数据故事就如何增加完成预防性免疫接种的成员人数提供了建议。

## 先决条件和限制
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-prereqs"></a>

**先决条件**
+ 活跃 AWS 账户的. 此解决方案在 Amazon Elastic Compute Cloud（Amazon EC2）的 Amazon Linux 2 上构建和测试。
+ 一个虚拟私有云（VPC），其中具有可供大型机系统访问的子网。
+ 一个包含业务数据的大型机数据库。有关用于构建和测试此解决方案的示例数据，请参阅*附件*部分。
+ 在 Db2 z/OS 表上启用了更改数据捕获 (CDC)。要在 Db2 上启用 CDC z/OS，请参阅 [IBM 文档](https://www.ibm.com/docs/en/daafz/7.5?topic=cdc-enabling-data-capture-changes)。
+ Precission Connect CDC，用于 z/OS 安装在托管源数据库的 z/OS 系统上。用于 z/OS 映像的 Precission Connect CDC 在 [IBM z/OS Amazon 机器映像的数据复制](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?applicationId=AWSMPContessa&ref_=beagle&sr=0-1) (AMI) 中以 zip 文件形式提供。AWS Mainframe Modernization 要在大型机上安装 Precissi z/OS on Connect CDC，请参阅 Prec [ist 安装文档](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS)。

**限制**
+ 您的大型机 Db2 数据应采用 Precisely Connect CDC 支持的数据类型。有关支持的数据类型的列表，请参阅 [Precisely Connect CDC 文档](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Data-replication-overview/Supported-source-data-types)。
+ 您在 Amazon MSK 上的数据应采用 Amazon Redshift 支持的数据类型。有关支持的数据类型的列表，请参阅 [Amazon Redshift 文档](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html)。
+ Amazon Redshift 针对不同的数据类型有不同的行为和大小限制。有关更多信息，请参阅 [Amazon Redshift 文档](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-ingestion-limitations)。
+ Quick Sight 中的近乎实时的数据取决于为 Amazon Redshift 数据库设置的刷新间隔。
+ 有些 AWS 服务 并非全部可用 AWS 区域。有关区域可用性，请参阅[按区域划分的AWS 服务](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。Amazon Q in Quick Sight 目前并非在每个支持 Quick Sight 的区域都可用。有关特定端点，请参阅[服务端点和配额](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)页面，然后选择相应服务的链接。

**产品版本**
+ AWS Mainframe Modernization 使用精确版本 4.1.44 进行数据复制
+ Python 版本 3.6 或更高版本
+ Apache Kafka 版本 3.5.1****

## 架构
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-architecture"></a>

**目标架构**

下图显示了一种架构，该架构可使用[采用 Precisely 的AWS Mainframe Modernization 数据复制功能](https://aws.amazon.com/mainframe-modernization/capabilities/data-replication/)和 Amazon Q in Quick Sight，从大型机数据中生成业务见解。

![Seven-step 从 z/OS 大型机到 Amazon QuickSight 的流程。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/cddb6d20-14ae-4276-90d8-14df435db824.png)


下图显示了如下工作流：

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

1. Publisher Agent 可从临时存储中读取原始 Db2 日志。

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

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

1. 这些工作程序会以 JSON 格式将数据写入 Amazon MSK 主题。作为复制消息的中间目标，Amazon MSK 可提供高度可用的自动失效转移功能。

1. Amazon Redshift 串流摄取功能以低延迟、高速度的方式完成从 Amazon MSK 到 Amazon Redshift Serverless 的数据摄取。Amazon Redshift 中的存储过程将大型机更改数据（insert/update/删除）协调到亚马逊 Redshift 表中。这些 Amazon Redshift 表可充当 Quick Sight 的数据分析来源。

1. 用户在 Quick Sight 中访问数据，以获得分析和见解。您可以使用 Amazon Q in Quick Sight 通过自然语言提示与数据进行交互。

## 工具
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-tools"></a>

**AWS 服务**
+ [Amazon Elastic Compute Cloud（Amazon EC2）](https://docs.aws.amazon.com/ec2/)在 AWS Cloud中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器，并快速进行扩展或缩减。
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 可帮助您创建和控制加密密钥以帮助保护您的数据。
+ [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) 是一项完全托管式服务，可帮助您构建并运行使用 Apache Kafka 来处理流数据的应用程序。
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) 是一种云级商业智能（BI）服务，可用于在单独的控制面板中可视化、分析和报告数据。此模式使用了 Amazon Q in Quick Sight 的生成式商业智能功能。
+ [Amazon Redshift Serverless](https://aws.amazon.com/redshift/redshift-serverless/) 是 Amazon Redshift 的无服务器选项，使您能够在几秒钟的时间内，更高效地运行和扩展分析，而无需设置和管理数据仓库基础设施。
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 可帮助您将代码中的硬编码凭证（包括密码）替换为对 Secrets Manager 进行的 API 调用，以便以编程方式检索此密钥。

**其他工具**
+ [Precisely Connect CDC](https://support.precisely.com/products/connect-cdc-formerly-sqdata/) 可收集来自遗留系统的数据并将其集成到云和数据平台中。

**代码存储库**

此模式的代码可在 GitHub [Mainframe\_DataInsights\_change\_data\_reconciliation](https://github.com/aws-samples/Mainframe_DataInsights_change_data_reconcilition)存储库中找到。此代码是 Amazon Redshift 中的存储过程。此存储过程将大型机数据更改（插入、更新和删除）从 Amazon MSK 调整至 Amazon Redshift 表中。这些 Amazon Redshift 表可充当 Quick Sight 的数据分析来源。

## 最佳实践
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-best-practices"></a>
+ 设置 Amazon MSK 集群时遵循[最佳实践](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html)。
+ 遵循 Amazon Redshift [数据解析最佳实践](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-recommendations)，以提高性能。
+ 在为精确设置创建 AWS Identity and Access Management (IAM) 角色时，请遵循最低权限原则，并授予执行任务所需的最低权限。有关详情，请参阅 IAM 文档中的[授予最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv)和[安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 操作说明
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-epics"></a>

### 设置 AWS Mainframe Modernization 在 Amazon EC2 上精确复制数据
<a name="set-up-m2long-data-replication-with-precisely-on-ec2"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 设置安全组。 | 要连接到控制器进程守护程序和 Amazon MSK 集群，请为 EC2 实例[创建安全组](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html)。添加以下入站和出站规则：+ **入站规则 1：**对于**类型**，选择**自定义 TCP**。对于**协议**，选择 **TCP**。对于**端口范围**，选择 **2626**（Precisely 控制器进程守护程序的默认端口）或大型机上运行的控制器进程守护程序的端口号。对于**源**，选择 CIDR 数据块。<br />+ **入站规则 2：**对于**类型**，选择**自定义 TCP**。对于**协议**，选择 **SSH**。对于**端口范围**，选择 **22**。对于**源**，选择 **IP 地址**或**前缀列表**。<br />+ **入站规则 3：**对于**类型**，选择**自定义 TCP**。对于**协议**，选择 **TCP**。对于**端口范围**，选择 **9092-9098**。对于**源**，选择 **CIDR 数据块**。<br />+ **出站规则 1：**对于**类型**，选择**自定义 TCP**。对于**协议**，选择 **TCP**。对于**端口范围**，选择 **9092-9098**。对于**源**，选择 **CIDR 数据块**。<br />+ **出站规则 2：**对于**类型**，选择**自定义 TCP**。对于**协议**，选择 **TCP**。对于**端口范围**，选择 **2626**（Precisely 控制器进程守护程序的默认端口）或大型机上运行的控制器进程守护程序的端口号。对于**源**，选择 **CIDR 数据块**。<br />记下安全组的名称。启动 EC2 实例并配置 Amazon MSK 集群时，您需要引用该名称。 | DevOps 工程师，AWS DevOps | 
| 创建 IAM 策略和 IAM 角色。 | 1. 要创建 IAM 策略和IAM 角色，请按照 [AWS 文档](https://docs.aws.amazon.com/msk/latest/developerguide/create-client-iam-role.html)中的说明进行操作。<br />创建 IAM 策略可授予在 Amazon MSK 集群上创建主题以及向这些主题发送数据的访问权限。<br />2. 创建 IAM 角色后，将此策略与其关联。记下 IAM 角色名称。您启动 EC2 实例时，此角色将用作 IAM 实例配置文件。 | DevOps 工程师，AWS 系统管理员 | 
| 预调配 EC2 实例。 | 要预调配 EC2 实例以运行 Preclist CDC 并连接到 Amazon MSK，请执行以下操作：1. 登录并订阅 [AWS Mainframe Modernization — 适用于 IBM 的数据复制 z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-1&ref_=beagle&applicationId=AWSMPContessa)。 AWS Marketplace<br />2. 从托管式订阅中选择 AMI，然后选择**启动新实例**。<br />3. 提供其他配置详细信息，例如实例名称、实例类型、密钥对、VPC 和子网。有关的更多信息，请参阅 [Amazon EC2 文档](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html)。<br />4. 在下拉列表中，选择您之前创建的安全组。<br />5. 在**高级详细信息**的 **IAM 实例配置文件**下，您必须选择您之前创建的角色。<br />6. 选择**启动实例**。 | AWS 管理员、 DevOps 工程师 | 

### 设置 Amazon MSK
<a name="set-up-msk"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建 Amazon MSK 集群。 | 要创建 Amazon MSK 集群，请执行以下操作：1. 登录并导航至 Amazon MSK。 AWS 管理控制台<br />2. 选择**创建集群**。<br />3. 对于集群创建方法，选择**自定义创建**；对于集群类型，选择**已预调配**。<br />4. 为群集提供一个名称。<br />5. 根据需要更新**集群设置**，对于其他设置，则保留默认值。<br />6. 记下 <**Kafka 版本>**。** **您在 Kafka 客户端设置过程中需要用到它。<br />7. 选择**下一步**。<br />8. 选择您与用于 Precisely EC2 实例相同的 VPC 和子网，然后选择您之前创建的安全组。<br />9. 在 **“安全设置”** 部分中，同时启用**SASL/SCRAM**和**基于 IAM 角色的身份验证**。Precissift Connect CDC 使用 SASL/SCRAM （简单身份验证和安全层/加盐质询响应机制），连接亚马逊 Redshift 需要 IAM。<br />10. 选择**下一步**。<br />11. 要进行查看，请选择**监控**和**代理日志传输方法**。<br />12. 选择**下一步**，然后选择**创建集群**。<br />创建典型的预调配集群耗时最多 15 分钟。创建集群后，其状态将由**正在创建**更改为**活跃**。 | AWS DevOps，云管理员 | 
| 设置 SASL/SCRAM 身份验证。 | 要为 Amazon MSK 集群设置 SASL/SCRAM 身份验证，请执行以下操作：1. 要在 Secrets Manager 中设置密钥，请按照 [AWS 文档](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password-tutorial.html)中的说明进行操作。<br />2. 打开 Amazon MSK 控制台，然后选择您之前创建的 Amazon MSK 集群。<br />3. 选择**属性**选项卡。<br />4. 选择**关联密钥**、**选择密钥**，****选择您创建的密钥，然后选择**关联密钥**。<br />您将看到与以下内容类似的成功消息：<br />`Successfully associated 1 secret for cluster <chosen cluster name>`<br />5. 选择集群名称。<br />6. 在集群摘要部分，选择**查看客户端信息**。<br />7. 记下身份验证类型的私有端点连接字符串 SASL/SCRAM。 | 云架构师 | 
| 创建 Amazon MSK 主题。 | 要创建 Amazon MSK 主题，请执行以下操作：1. 连接到您之前创建的 EC2 实例，然后运行以下命令安装最新更新：<pre>sudo yum update -y</pre><br />2. 运行以下命令，安装 Java 和 Kafka 库：<pre>sudo yum install -y java-11 librdkafka librdkafka-devel</pre><br />3. 要在 `/home/ec2-user` 中创建名为 `kafka` 的文件夹，请导航至该文件夹，然后运行以下命令：<pre>mkdir kafka;cd kafka</pre><br />4. 将 `kafka` 客户端库下载到 `kafka` 文件夹，并将 `<YOUR MSK VERSION>` 替换为您在创建 Amazon MSK 集群过程中记下的 Kafka 版本：<pre>wget https://archive.apache.org/dist/kafka//kafka_2.13-<YOUR MSK VERSION>.tgz</pre><br />5. 要提取下载的文件，请运行以下命令，替换 `YOUR MSK VERSION>`：<pre>tar -xzf kafka_2.13-<YOUR MSK VERSION>.tgz</pre><br />6. 要导航到 `kafka libs` 目录并下载 Java IAM 身份验证 Java 存档（JAR）文件，请运行以下命令，替换 `<YOUR MSK VERSION>`：<pre>cd kafka_2.13-<YOUR MSK VERSION>/libs<br />wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.1/aws-msk-iam-auth-1.1.1-all.jarkafka</pre><br />7. 要导航到 Kafka `bin` 目录并创建 `client.properties` 文件，请运行以下命令：<pre>cd /home/ec2-user/kafka/kafka_2.13-<YOUR MSK VERSION>/bin<br />cat >client.properties</pre><br />8. 使用以下内容更新 `client.properties` 文件：<pre>security.protocol=SASL_SSL<br />sasl.mechanism=AWS_MSK_IAM<br />sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;<br />sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler</pre><br />9. 要创建 Kafka 主题，请导航到 Kafka bin 并运行以下命令，将 `<kafka broker>` 替换为创建 Amazon MSK 集群时记下的 IAM 引导服务器私有端点：<br />`./kafka-topics.sh --bootstrap-server <kafka broker> --command-config client.properties --create --replication-factor 3 —partitions 6 --topic <topic name>`<br />10. 当显示消息 `Created topic <topic name>` 时，记下主题名称。 | 云管理员 | 

### 在 Amazon EC2 上配置 Precisely Apply Engine
<a name="configure-the-precisely-apply-engine-on-ec2"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 设置 Precisely 脚本以复制数据更改。 | 要设置 Precisely Connect CDC 脚本以将更改后的数据从大型机复制到 Amazon MSK 主题，请执行以下操作：1. 要精确创建文件夹名称，请导航至该文件夹，然后运行以下命令：<pre>mkdir /home/ec2-user/precisely;cd /home/ec2-user/precisely</pre><br />2. 要在其中精确创建两个分别名为 `scripts` 和 `ddls` 的文件夹，然后更改为 `scripts` 文件夹，请运行以下命令：<pre>mkdir scripts;mkdir ddls;cd scripts</pre><br />3. 要在 `scripts` 文件夹中创建名为 `sqdata_kafka_producer.conf` 的文件，请运行以下命令：<pre>cat >sqdata_kafka_producer.conf</pre><br />4. 使用以下内容更新 `sqdata_kafka_producer.conf`** **文件：<pre>builtin.features=SASL_SCRAM<br />security.protocol=SASL_SSL<br />sasl.mechanism=SCRAM-SHA-512<br />sasl.username=<User Name><br />sasl.password=<Password><br />metadata.broker.list=<SASL/SCRAM Bootstrap servers></pre>`<SASL/SCRAM Bootstrap servers>`使用您之前配置的 Amazon MSK SASL/SCRAM 代理列表进行更新。使用您之前在 Secrets Manager 中设置的用户名和密码更新 `<User Name>` 和 `<Password>`。<br />5. 在 `scripts` 文件夹中创建 `script.sqd` 文件。<pre>cat >script.sqd</pre><br />Apply Engine 使用 `script.sqd` 来处理源数据并将源数据复制到目标。有关 Apply Engine 脚本的示例，请参阅[其他信息](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional)部分。<br />6. 要更改为 `ddls` 文件夹并为每个 Db2 表创建一个 .ddl 文件，请运行以下命令：<pre>cd /home/ec2-user/precisely/ddls<br />cat >mem_details.ddl<br />cat >mem_plans.ddl</pre><br />有关 .ddl 文件的示例，请参阅[其他信息](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional)部分。 | 应用程序开发人员、云架构师 | 
| 生成网络 ACL 密钥。 | 要生成网络访问控制列表密钥，请执行以下操作：1. 要导出 `sqdata` 安装路径，请运行以下命令：<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre><br />2. 要更改为 `/home/ec2-user` 目录并生成网络 ACL 密钥，请运行以下命令：<pre>cd /home/ec2-user<br />sqdutil keygen --force</pre><br />生成公有和私有密钥后，将显示以下消息：<pre>SQDUT04I Generating a private key in file /home/ec2-user/.nacl/id_nacl<br />SQDC017I sqdutil(pid=27344) terminated successfully</pre><br />3. 记下存储在 `.nacl` 文件夹中的生成的公有密钥。 | AWS 云架构师 DevOps | 

### 准备大型机源环境
<a name="prepare-the-mainframe-source-environment"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 在 ISPF 屏幕中配置默认值。 | 要在 Interactive System Productivity Facility（ISPF）中配置默认设置，请按照 [Precisely 文档](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS/Start-ISPF-Panel-Interface)中的说明进行操作。 | 大型机系统管理员 | 
| 配置控制器进程守护程序。 | 要配置控制器进程守护程序，请执行以下操作：1. 在 **SQData z/OS 主菜单**屏幕上，选择选项 2。<br />2. 在**将进程守护程序添加到列表**屏幕上的**进程守护程序名称**字段中，输入进程守护程序的名称，然后按 **Enter** 键。 | 大型机系统管理员 | 
| 配置发布者。 | 要配置发布者，请执行以下操作：1. 在 **SQData z/OS 主菜单**屏幕上，选择选项 3。这会将您带到 “**Capture/Publisher 摘要**” 屏幕。<br />2. 选择该选项以添加 CAB 文件。这会将您引导至 **将 CAB 文件添加到列表**屏幕。<br />3. 在**名称**字段中，输入 CAB 文件的名称。对于 **Db2**，将**类型**字段输入为 `D`。<br />4. 按 **Enter** 键。这会将您引导至**创建新的 Db2 Capture CAB 文件**屏幕。<br />5. 在 **zFS 目录**字段中，指定存储挂载点。<br />6. 按 **Enter** 保存并继续。 | 大型机系统管理员 | 
| 更新进程守护程序配置文件。 | 要更新控制器进程守护程序配置文件中的发布者详细信息，请执行以下操作：1. 在 **SQData z/OS 主菜单**屏幕上，选择选项 2。<br />2. 在您创建的进程守护程序附近输入 `S`，以查看进程守护程序的详细信息。<br />3. 输入 `1`，然后按 **Enter** 键编辑代理文件。<br />4. 添加 CAB 文件详细信息。以下示例显示了名为 `DB2ZTOMSK` 的 CAB 文件的详细信息。使用您的大型机用户 ID 而不是 `<userid>`。<pre>ÝDB2ZTOMSK¨<br />type=capture <br />cab=/u/<userid>/sqdata/DB2ZTOMSK.cab</pre><br />5. 按 **F3**。<br />6. 输入 `2` 以编辑 ACL 文件。将 `userid` 添加到 `acl` 配置文件，如以下示例所示：<pre>Ýacls¨<br />prod=admin,<userid></pre><br />7. 按 **F3** 保存并退出。 | 大型机系统管理员 | 
| 创建启动控制器进程守护程序的任务。 | 要创建任务，请执行以下操作：1. 在**选项**中，输入 `G`。<br />2. 输入任务卡、任务和程序库以及 `Db2 load` 库详细信息。<br />3. 输入网络 ACL 文件详细信息，然后输入选项 2，以在指定的任务库中生成任务控制语言（JCL）文件。 | 大型机系统管理员 | 
| 生成捕获发布者 JCL 文件。 | 要生成捕获发布者 JCL 文件，请执行以下操作：1. 在 **SQData z/OS 主菜单**屏幕上，选择选项 3。这会将您带到 “**Capture/Publisher 摘要**” 屏幕。<br />2. 在 CAB 文件旁边输入 `S` 以将其选中。这将带您进入 **Db2 Capture/Publisher 详细信息**屏幕。<br />3. 在**选项**中，输入 `G` 以生成 `capture/publisher` 任务。<br />4. 输入任务卡、任务和程序库以及 Db2 负载库详细信息。<br />5. 要创建任务，选择选项 4。该任务是在任务库中指定的任务库中创建的。 | 大型机系统管理员 | 
| 检查并更新 CDC。 | 1. 运行以下查询，检查 Db2 表的 `DATACAPTURE` 标志，并将 `<table name>` 更改为您的 Db2 表名称：<pre>SELECT DATACAPTURE FROM SYSIBM.SYSTABLES WHERE NAME='<table name>';</pre><br />确认结果显示 `DATACAPTURE` 为 `Y`。<br />2. 如果 `DATACAPTURE` 不是 `Y`，请运行以下查询，以在 Db2 表上启用 CDC，并将 `<table name>` 更改为您的 Db2 表名称：<pre>ALTER TABLE <table name> DATA CAPTURE CHANGES;</pre> | 大型机系统管理员 | 
| 提交 JCL 文件。 | 提交在先前步骤中配置的以下 JCL 文件：+ 启动控制器进程守护程序的 JCL 文件<br />+ 启动捕获和发布的 JCL 文件<br />提交 JCL 文件后，您可以在 EC2 实例上启动 Apply Engine in Precisely。 | 大型机系统管理员 | 

### 运行并验证 CDC
<a name="run-and-validate-cdc"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 启动 Apply Engine 并验证 CDC。 | 要在 EC2 实例上启动 Apply Engine 并验证 CDC，请执行以下操作：1. 要连接到 EC2 实例，请按照 [AWS 文档](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)中的说明进行操作。<br />2. 更改为包含 `script.sqd` 文件的目录：<pre>cd /home/ec2-user/precisely/scripts</pre><br />3. 要启动 Apply Engine，请运行以下 `sqdeng` 启动命令：<pre>sqdeng -s script.sqd --identity=/home/ec2-user/.nacl/id_nacl</pre><br />Apply Engine 将开始等待来自大型机源的更新。<br />4. 要测试 CDC，请在 Db2 表中进行一些记录插入或更新操作。<br />5. 验证 Apply Engine 日志是否显示已捕获并写入目标的记录数。 | 云架构师、应用程序开发人员 | 
| 验证 Amazon MSK 主题上的记录。 | 要读取 Kafka 主题中的消息，请执行以下操作：1. 要更改到 EC2 实例上 Kafka 客户端安装路径的 `bin` 目录，请运行以下命令，将 `<Kafka version>` 替换为您的版本：<pre>cd /home/ec2-user/kafka/kafka_2.13-<Kafka version>/bin</pre><br />2. 要验证 Kafka 主题中以消息形式写入的 Db2 CDC，请运行以下命令，将 `<kafka broker>` 和 `<Topic Name>` 替换为之前创建的主题：<br />`./kafka-console-consumer.sh --bootstrap-server <kafka broker>:9098 --topic <Topic Name> --from-beginning --consumer.config client.properties`<br />3. 验证消息数是否与 Db2 表中更新的记录数匹配。 | 应用程序开发人员、云架构师 | 

### 将大型机更改数据存储在 Amazon Redshift Serverless 数据仓库中
<a name="store-mainframe-change-data-in-an-rsslong-data-warehouse"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 设置 Amazon Redshift Serverless。 | 要创建 Amazon Redshift Serverless 数据仓库，请按照 [AWS 文档](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)中的说明进行操作。<br />在 Amazon Redshift Serverless 控制面板上，验证命名空间和工作组是否已创建并可用。对于此示例模式，该过程可能需要耗费 2‒5 分钟的时间。 | 数据工程师 | 
| 设置串流摄取所需的 IAM 角色和信任策略。 | 要设置来自 Amazon MSK 的 Amazon Redshift Serverless 串流摄取，请执行以下操作：1. 为 Amazon Redshift 创建访问 Amazon MSK 的 IAM 策略。<br />`[region]`使用 AWS 区域 适用于 Amazon MSK 的、`[account-id]`您的 AWS 账户 ID 和 `[msk-cluster-name]` Amazon MSK 集群名称替换，运行以下代码：<br />`{"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]/*"]}]}`<br />您可以在 Amazon MSK 控制台上找到集群名称和 Amazon 资源名称（ARN）。在控制台上，选择**集群摘要**，然后选择 **ARN**。<br />2. 要创建 IAM 角色并附加策略，请按照 [AWS 文档](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)中的说明进行操作。<br />3. 要将 IAM 角色附加到 Amazon Redshift Serverless 命名空间，请执行以下操作：登录控制台，然后在上打开亚马逊 Redshift 控制台。[https://console.aws.amazon.com/redshiftv2/]()选择 **Serverless 控制面板**。选择**命名空间**。选择**安全性和加密**选项卡。选择**权限**，然后附加您创建的 IAM 角色。<br />4. 在您的 Amazon Redshift Serverless 安全组中，创建一条包含以下详细信息的入站规则：对于**类型**，选择**自定义 TCP**。对于**协议**，选择 **TCP**。对于**端口范围**，选择 **9098、9198**。对于**源**，选择 **Amazon MSK 安全组**。<br />5. 在您的 Amazon MSK 安全组中，创建一条包含以下详细信息的入站规则：对于**类型**，选择**自定义 TCP**。对于**协议**，选择 **TCP**。对于**端口范围**，选择 **9098、9198**。对于**源**，选择 **Amazon Redshift 安全组**。<br />此模式使用的端口适用于 Amazon Redshift 和 Amazon MSK 配置的 IAM 身份验证。有关更多信息，请参阅 [AWS 文档](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion-getting-started-MSK.html#materialized-view-streaming-ingestion-getting-started-MSK-setup)（步骤 2）。<br />6. 为 Amazon Redshift Serverless 工作组开启增强型 VPC 路由。有关详情，请参阅 [AWS 文档](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-enabling-cluster.html)。 | 数据工程师 | 
| 将 Amazon Redshift Serverless 连接到 Amazon MSK。 | 要连接到 Amazon MSK 主题，请在 Amazon Redshift Serverless 中创建一个外部架构。在 Amazon Redshift 查询编辑器 v2 中，运行以下 SQL 命令，将 `'iam_role_arn'` 替换为您之前创建的角色，将 `'MSK_cluster_arn`' 替换为集群的 ARN。<pre>CREATE EXTERNAL SCHEMA member_schema<br />FROM MSK<br />IAM_ROLE 'iam_role_arn'<br />AUTHENTICATION iam<br />URI 'MSK_cluster_arn';</pre> | 迁移工程师 | 
| 创建实体化视图。 | 要在 Amazon Redshift Serverless 中使用来自 Amazon MSK 主题的数据，请创建实体化视图。在 Amazon Redshift 查询编辑器 v2 中，运行以下 SQL 命令，将 `<MSK_Topic_name>` 替换为您的 Amazon MSK 主题的名称。<pre>CREATE MATERIALIZED VIEW member_view<br />AUTO REFRESH YES<br />AS SELECT<br />kafka_partition, <br />kafka_offset, <br />refresh_time, <br />json_parse(kafka_value) AS Data<br />FROM member_schema.<MSK_Topic_name><br />WHERE CAN_JSON_PARSE(kafka_value); <br /></pre> | 迁移工程师 | 
| 在 Amazon Redshift 中创建目标表。 | Amazon Redshift 表为 Quick Sight 提供了输入。此模式使用表 `member_dtls` 和 `member_plans`，这两个表可与大型机上的源 Db2 表匹配。<br />要在 Amazon Redshift 中创建这两个表，请在 Amazon Redshift 查询编辑器 V2 中运行以下 SQL 命令：<pre>-- Table 1: members_dtls<br />CREATE TABLE members_dtls (<br /> memberid INT ENCODE AZ64,<br /> member_name VARCHAR(100) ENCODE ZSTD,<br /> member_type VARCHAR(50) ENCODE ZSTD,<br /> age INT ENCODE AZ64,<br /> gender CHAR(1) ENCODE BYTEDICT,<br /> email VARCHAR(100) ENCODE ZSTD,<br /> region VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;<br /><br />-- Table 2: member_plans<br />CREATE TABLE member_plans (<br /> memberid INT ENCODE AZ64,<br /> medical_plan CHAR(1) ENCODE BYTEDICT,<br /> dental_plan CHAR(1) ENCODE BYTEDICT,<br /> vision_plan CHAR(1) ENCODE BYTEDICT,<br /> preventive_immunization VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;</pre> | 迁移工程师 | 
| 在 Amazon Redshift 中创建存储过程。 | 此模式使用存储过程将源大型机的更改数据（`INSERT`、`UPDATE`、`DELETE`）同步到目标 Amazon Redshift 数据仓库表，以便在 Quick Sight 中进行分析。<br />要在 Amazon Redshift 中创建存储过程，请使用查询编辑器 v2 运行存储库中的存储过程代码。 GitHub  | 迁移工程师 | 
| 从流式实体化视图中读取，并加载到目标表中。 | 存储过程会从流式实体化视图中读取数据更改，并将数据更改加载到目标表中。要运行存储过程，您可以使用以下命令：<pre>call SP_Members_Load();</pre><br />您可以使用 [Amazon EventBridge](https://aws.amazon.com/eventbridge/) 在 Amazon Redshift 数据仓库中安排任务，以便根据您的数据延迟要求调用此存储过程。 EventBridge 以固定的间隔运行作业。要监控先前对该过程的调用是否已完成，您可能需要使用诸如 [AWS Step Functions](https://aws.amazon.com/step-functions/) 状态机之类的机制。有关更多信息，请参阅以下资源：+ [创建按计划运行的 Amazon EventBridge 规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)<br />+ [使用 AWS Step Functions 和 Amazon Redshift 数据 API 加快 ELT 流程的编排](https://aws.amazon.com/blogs/big-data/accelerate-orchestration-of-an-elt-process-using-aws-step-functions-and-amazon-redshift-data-api/)。<br />另一个选项是使用 Amazon Redshift 查询编辑器 v2 安排刷新。有关更多信息，请参阅[使用查询编辑器 v2 计划查询](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-schedule-query.html)。 | 迁移工程师 | 

### 将 Quick Sight 连接到 Amazon Redshift 中的数据
<a name="connect-quick-sight-to-data-in-rs"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 设置 Quick Sight。 | 要设置 Quick Sight，请按照 [AWS 文档](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html)中的说明进行操作。 | 迁移工程师 | 
| 在 Quick Sight 和 Amazon Redshift 之间建立安全连接。 | 要在 Quick Sight 和 Amazon Redshift 之间建立安全连接，请执行以下操作1. 要授权从 Quick Sight 到 Amazon Redshift 的连接，请打开 Amazon Redshift 控制台，然后在 Amazon Redshift 安全组中添加入站规则。该规则应允许来自您设置 Quick Sight 的 CIDR 范围的流量进入端口 5439（默认的 Redshift 端口）。有关 AWS 区域 及其的 IP 地址的列表，请参阅 [Quick AWS 区域 Sight 支持](https://docs.aws.amazon.com/quicksight/latest/user/regions-qs.html)。<br />在 Amazon Redshift 控制台上，选择**工作组**、**数据访问**、**网络和安全**，然后启用**可公开访问**。 | 迁移工程师 | 
| 为 Quick Sight 创建数据集。 | 要通过 Amazon Redshift 为 Quick Sight 创建数据集，请执行以下操作：1. 在 Quick Sight 控制台的导航窗格中，选择**数据集**。<br />2. 在**数据集**页面上，选择**新数据集**。<br />3. 选择 **Redshift 手动连接**。<br />4. 在**新的 Redshift 数据来源**窗口中，输入连接信息：对于**数据来源名称**，输入 Amazon Redshift 数据来源的名称。对于**数据库服务器**，请输入 Amazon Redshift 集群的端点。从 Amazon Redshift Serverless 控制面板上集群工作组的**一般信息**部分的**端点**字段中，您可以获取端点值。服务器地址是端点中冒号之前的第一部分，如以下示例所示：<pre>mfdata-insights.NNNNNNNNN.us-east-1.redshift-serverless.amazonaws.com:5439/dev</pre>对于端口，输入 `5439`（Amazon Redshift 的默认端口）。输入数据库的名称（端点中的斜杠之后）。在这种情况下，数据库名称为 `dev`。在**用户名**和**密码**，输入 Amazon Redshift 数据库的用户名和密码。<br />5. 选择**验证连接**。如果成功，您应该会看到一个绿色复选标记，表示已验证。如果验证失败，请参阅[问题排查](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting)部分。<br />6. 选择**创建数据来源**。 | 迁移工程师 | 
| 联接数据集。 | 要在 Quick Sight 中创建分析，请按照 [AWS 文档](https://docs.aws.amazon.com/quicksight/latest/user/joining-data.html#create-a-join)中的说明将这两个表联接起来。<br />在**联接配置**窗格中，对于**联接类型**，选择**左**。在**联接子句**下，使用 `memberid from member_plans = memberid from members_details`。 | 迁移工程师 | 

### 使用 Amazon Q in Quick Sight，从大型机数据中获取业务见解
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 设置 Amazon Q in Quick Sight。 | 要设置 Amazon Q in Quick Sight 生成式商业智能功能，请按照 [AWS 文档](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-get-started.html)中的说明进行操作。 | 迁移工程师 | 
| 分析大型机数据并构建可视化控制面板。 | 要在 Quick Sight 中对数据进行分析和可视化，请执行以下操作：1. 要创建大型机数据分析，请按照 [AWS 文档](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-build-visuals.html)中的说明进行操作。对于数据集，选择您创建的数据集。<br />2. 在分析页面上，选择**构建视觉对象**。<br />3. 在**创建分析主题**窗口中，选择**更新现有主题**。<br />4. 在**选择主题**下拉列表中，选择您之前创建的主题。<br />5. 选择**主题链接**。<br />6. 链接主题后，选择**构建视觉对象**，以打开 Amazon Q **构建视觉对象**窗口。<br />7. 在提示栏中，写下您的分析问题。此模式使用的示例问题如下：显示按区域划分的成员分布显示按年龄划分的成员分布显示按性别划分的成员分布显示按计划类型划分的成员分布显示尚未完成预防性免疫接种的成员<br />输入问题后，选择**构建**。Amazon Q in Quick Sight 可创建视觉对象。<br />8. 要将视觉对象添加到可视化控制面板，请选择**添加到分析**。<br />完成后，您可以发布自己的控制面板，以便与组织中的其他人共享。有关示例，请参阅[其他信息](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional)部分中的*大型机可视化控制面板*。 | 迁移工程师 | 

### 使用 Amazon Q in Quick Sight，从大型机数据中创建数据故事
<a name="create-a-data-story-with-qdev-in-quick-sight-from-mainframe-data"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建数据故事。 | 创建数据故事以解释先前分析的见解，并就增加完成预防性免疫接种的成员人数生成建议：1. 要创建数据故事，请按照 [AWS 文档](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-create.html)中的说明进行操作。<br />2. 对于数据故事提示，请使用以下操作：<br />`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.`<br />您还可以构建自己的提示，以为其他业务见解生成数据故事。<br />3. 选择**添加视觉对象**，然后添加与数据故事相关的视觉对象。对于此模式，请使用您之前创建的视觉对象。<br />4. 选择**构建**。<br />5. 有关数据故事输出的示例，请参阅[其他信息](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional)部分中的*数据故事输出*。 | 迁移工程师 | 
| 查看生成的数据故事。 | 要查看生成的数据故事，请在**数据故事**页面上选择该故事。 | 迁移工程师 | 
| 编辑生成的数据故事。 | 要更改数据故事中的格式、布局或视觉对象，请按照 [AWS 文档](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html)中的说明进行操作。 | 迁移工程师 | 
| 共享数据故事。 | 要共享数据故事，请按照 [AWS 文档](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html)中的说明进行操作。 | 迁移工程师 | 

## 问题排查
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting"></a>


| 问题 | 解决方案 | 
| --- | --- | 
| 对于从 Quick Sight 到 Amazon Redshift 的数据集创建，`Validate Connection` 已经失败了。 | 1. 确认附加到 Amazon Redshift Serverless 实例的安全组允许来自与您设置 Quick Sight 的区域关联的 IP 地址范围的入站流量。<br />2. 确认已部署 Amazon Redshift Serverless 的 VPC 公开可用。<br />3. 确认您使用了正确的 Amazon Redshift 用户名和密码。您可以在 Amazon Redshift 控制台上重置用户名和密码。 | 
| 尝试在 EC2 实例上启动 Apply Engine 时会返回以下错误：<br />`-bash: sqdeng: command not found` | 运行以下命令，导出 `sqdata` 安装路径：<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre> | 
| 尝试启动 Apply Engine 时会返回以下连接错误之一：+ `SQDD018E Cannot connect to transfer socket(rc==0x18468). Agent:<Agent Name > Socket:/u/./sqdata/.DB2ZTOMSK.cab.data`<br />+ `SQDUR06E Error opening url cdc://<VPC end point name>:2626/DB2ZTOMSK/DB2ZTOMSK : errno:1128 (Unknown error 1128)` | 检查大型机假脱机，以确认控制器进程守护程序任务正在运行。 | 

## 相关资源
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-resources"></a>
+ 在 Qu@@ [ick Sight 中使用 AWS Mainframe Modernization 和 Amazon Q（模式）生成见](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html?did=pg_card&trk=pg_card)解
+ 在 Qu@@ [ick Sight 中使用 AWS Mainframe Modernization 和 Amazon Q 生成数据见](https://youtu.be/F8b7l79p6TM?si=gASuQtFbMVuEm7IJ)解（演示）
+ [AWS Mainframe Modernization -适用于 IBM 的数据复制 z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-4&ref_=beagle&applicationId=AWSMPContessa)
+ [Amazon Redshift 串流摄取到实体化视图](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)

## 附加信息
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional"></a>

**示例 .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 in Quick Sight 创建，可用于分析问题 `show member distribution by region`*。*

![东北和西南区域有 8 名成员，西南区域有 5 名成员，中西部区域有 4 名成员。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/b40a784c-c1fc-444b-b6df-8bd1f7a6abaa.png)


以下数据视觉对象由 Amazon Q in Quick Sight 创建，可用于分析问题 `show member distribution by Region who have not completed preventive immunization, in pie chart`。

![东南区域显示 6，西南区域显示 5，中西部区域显示 4。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8a95da3c-df4a-458b-9cfe-44e34f80a235.png)


**数据故事输出**

以下屏幕截图显示了 Amazon Q in Quick Sight 为提示 `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` 创建的数据故事的部分。

在简介中，数据故事建议选择成员人数最多的区域，以便免疫接种工作取得最大成效。

![简介屏幕，介绍了基于成员群体的地理、人口统计和年龄的分析。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/40f13957-2db4-42b7-b7a4-a0dd3dad6899.png)


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

![东北和西南区域有 8 名成员，西南区域有 6 名成员，中西部区域有 4 名成员。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc6ed0a0-b79c-4397-95ac-a2fc4c87482a.png)


该数据故事提供了按年龄划分的成员的分析情况。

![该图显示，成员群体以年轻人和中年人为主。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8c56f1ec-3a2e-47a6-bbc4-3631782aa333.png)


该数据故事重点关注中西部的免疫接种工作。

![针对个人外联活动和区域挑战的建议。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/84a647e8-c7d5-4637-94f0-03a611f899b3.png)


![继续数据故事分析，并附上预期的结果和结论。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc9094fc-2a20-485d-b238-e5e4ec70f1d3.png)


## 附件
<a name="attachments-18e72bcb-1b9a-406a-8220-83aca7743ad2"></a>

[要访问与此文档关联的其他内容，请下载并解压缩以下文件：attachment.zip](samples/p-attach/18e72bcb-1b9a-406a-8220-83aca7743ad2/attachments/attachment.zip)