创建工作流 - AWS Lake Formation

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

创建工作流

在开始之前,请确保已向角色 LakeFormationWorkflowRole 授予所需的数据权限和数据位置权限。这样,工作流就可以在数据目录中创建元数据表,并将数据写入 Amazon S3 中的目标位置。有关更多信息,请参阅 (可选)为工作流程创建 IAM 角色Lake Formation 权限概述

注意

Lake Formation 使用GetTemplateInstanceGetTemplateInstances、和InstantiateTemplate操作根据蓝图创建工作流程。这些操作不公开,仅在内部用于代表您创建资源。您会收到创建工作流程 CloudTrail 的事件。

通过蓝图创建工作流
  1. 打开 AWS Lake Formation 控制台,网址为 https://console.aws.amazon.com/lakeformation/。以数据湖管理员或具有数据工程师权限的用户身份登录。有关更多信息,请参阅 Lake Formation 角色和 IAM 权限参考

  2. 在导航窗格中,选择蓝图,然后选择使用蓝图

  3. 使用蓝图页面上,选择一个磁贴以选择蓝图类型。

  4. 导入来源下,指定数据来源。

    如果要从 JDBC 源导入,请指定以下内容:

    • 数据库连接 - 从列表中选择一个连接。使用 AWS Glue 控制台创建其他连接。连接中的 JDBC 用户名和密码决定了工作流有权访问的数据库对象。

    • 来源数据路径 - 输入 <database>/<schema>/<table><database>/<table>,具体取决于数据库产品。Oracle Database 和 MySQL 不支持路径中的架构。您可以用百分比 (%) 字符替换 <schema><table>。例如,对于系统标识符 (SID) 为 orcl 的 Oracle 数据库,输入 orcl/% 以导入连接中指定的用户有权访问的所有表。

      重要

      此字段区分大小写。如果任何组件存在大小写不匹配的情况,则工作流将失败。

      如果您指定 MySQL 数据库,则 AWS Glue ETL 默认使用 Mysql5 JDBC 驱动程序,因此本机不支持 mySQL8。您可以将 ETL 作业脚本编辑为使用 customJdbcDriverS3Path 参数,如《AWS Glue 开发人员指南》中的 JDBC connectionType 值中所述,以使用支持 MySQL8 的其他 JDBC 驱动程序。

    如果要从日志文件导入,请确保您为工作流指定的角色(“工作流角色”)具有访问数据来源所需的 IAM 权限。例如,要导入 AWS CloudTrail 日志,用户必须拥有cloudtrail:DescribeTrailscloudtrail:LookupEvents权限才能在创建工作流程时查看 CloudTrail 日志列表,并且工作流程角色必须拥有对 Amazon S3 中该 CloudTrail 位置的权限。

  5. 请执行以下操作之一:

    • 对于数据库快照蓝图类型,可以选择通过指定一个或多个排除模式来识别要导入的一部分数据。这些排除模式是 Unix 风格的 glob 模式。它们将存储为由工作流创建的表的属性。

      有关可用排除模式的详细信息,请参阅《AWS Glue 开发人员指南》中的包含和排除模式

    • 对于增量数据库蓝图类型,请指定以下字段。为每个要导入的表添加一行。

      表名称

      要导入的表。必须全部小写。

      书签键

      定义书签键的列名的逗号分隔列表。如果为空,则使用主键确定新数据。每列的大小写必须与数据来源中定义的大小写匹配。

      注意

      仅当主键按顺序递增或递减(无间隙)时,主键才有资格成为默认书签键。如果要使用主键作为书签键并且它有间隙,则必须将主键列命名为书签键。

      书签顺序

      选择升序时,值大于书签值的行将被标识为新行。选择降序时,值小于书签值的行将被标识为新行。

      分区方案

      (可选)分区键列列表,用斜杠 (/) 分隔。示例: year/month/day

      控制台的“增量数据”部分包括以下字段:“表名称”、“书签键”、“书签顺序”、“分区方案”。您可以添加或删除行,其中每行用于不同的表。

      有关更多信息,请参阅《AWS Glue 开发人员指南》中的使用作业书签来跟踪已处理的数据

  6. 导入目标下,指定目标数据库、目标 Amazon S3 位置和数据格式。

    确保工作流角色对数据库和 Amazon S3 目标位置具有所需的 Lake Formation 权限。

    注意

    目前,蓝图不支持加密目标位置的数据。

  7. 选择导入频率。

    您可以使用自定义选项指定 cron 表达式。

  8. 导入选项下:

    1. 输入工作流名称。

    2. 对于角色,选择您在(可选)为工作流程创建 IAM 角色中创建的角色 LakeFormationWorkflowRole

    3. (可选)指定表前缀。该前缀位于工作流创建的数据目录表的名称之前。

  9. 选择创建,然后等待控制台报告已成功创建工作流。

    提示

    您是否收到了以下错误消息?

    User: arn:aws:iam::<account-id>:user/<username> is not authorized to perform: iam:PassRole on resource:arn:aws:iam::<account-id>:role/<rolename>...

    如果是,请检查您是否<account-id>在所有保单中都使用了有效的 AWS 账号。