请求导出日记 QLDB - 亚马逊 Quantum Ledger 数据库(亚马逊QLDB)

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

请求导出日记 QLDB

重要

终止支持通知:现有客户将能够使用亚马逊,QLDB直到 2025 年 7 月 31 日终止支持。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL e。

Amazon QLDB 提供了API请求导出指定日期和时间范围以及指定的 Amazon S3 存储桶目标的日志块。日记导出任务可以用 Amazon Ion 的文本或二进制格式写入数据对象,也可以以 Lin JSONes 文本格式写入数据对象。您可以使用 AWS Management Console,一个 AWS SDK,或者 AWS Command Line Interface (AWS CLI) 来创建导出任务。

AWS Management Console

按照以下步骤QLDB使用QLDB控制台提交日记账导出请求。

请求导出(控制台)
  1. 登录 AWS Management Console,然后在 https://console.aws.amazon.com/ql db 上打开亚马逊QLDB控制台。

  2. 在导航窗格中,选择 导出

  3. 选择 创建导出作业

  4. 创建导出作业页面上,输入以下导出设置:

    • 分类账 - 要导出其日记账区块的分类帐。

    • 开始日期和时间-要导出的日记账块范围的包含起始时间戳,以协调世界时 (UTC) 表示。此时间戳必须早于结束日期和时间。如果您提供的起始时间早于账本的时间戳,则将其QLDB默认为账本的CreationDateTime开始时间戳。CreationDateTime

    • 结束日期和时间-要导出的日记账块范围的专有结束时间戳 (UTC)。此日期和时间不能是未来的时间。

    • 日记账区块的目标 — 您的导出作业写入数据对象的 Amazon S3 存储桶和前缀名称。使用以下 Amazon S3 URI 格式。

      s3://amzn-s3-demo-bucket/prefix/

      您必须为输出对象指定 S3 存储桶名称和可选的前缀名称。以下是示例。

      s3://amzn-s3-demo-bucket/journalExport/

      存储桶名称和前缀都必须符合 Amazon S3 命名规则和惯例。有关命名存储桶更多信息,请参阅 Amazon Simple Storage Service 开发人员指南中的存储桶限制和约束。有关更多信息,请参阅对象键和元数据

      注意

      不支持跨区域查询。指定的 Amazon S3 存储桶必须位于同一存储桶中 AWS 区域 作为你的账本。

    • S3 加密 - 您的导出作业在 Amazon S3 存储桶中写入数据时使用的加密设置。有关在 Amazon S3 中使用服务器端加密选项的信息,请参阅 Amazon S3 开发人员指南 中的使用服务器端加密保护数据

      • 存储桶默认加密 - 使用指定 Amazon S3 存储桶的默认加密设置。

      • AES-256 — 对 Amazon S3 托管密钥 (SSE-S3) 使用服务器端加密。

      • AWS-KMS — 使用服务器端加密 AWS KMS 托管密钥 (SSE-KMS)。

        如果您选择此类型以及 “选择其他类型” AWS KMS key选项,您还必须使用以下 Amazon 资源名称 (ARN) 格式指定对称加密KMS密钥。

        arn:aws:kms:aws-region:account-id:key/key-id
    • 服务访问权限-在您的 Amazon S3 存储桶中授予QLDB写入权限的IAM角色。如果适用,该IAM角色还必须授予使用您的KMS密钥的QLDB权限。

      要在请求日记导出QLDB时将角色传递给,您必须具有对IAM角色资源执行iam:PassRole操作的权限。

      • 创建和使用新的服务角色 — 让控制台为您创建一个具有指定 Amazon S3 存储桶所需权限的新角色。

      • 使用现有的服务角色-要了解如何在中手动创建此角色IAM,请参阅导出权限

    • 输出格式 - 导出的日记账数据的输出格式

      • Ion 文本 -(默认)Amazon Ion 的文本表示形式

      • Ion 二进制 — Amazon Ion 的二进制表示

      • JSON— 以换行符分隔JSON的文本格式

        如果选择JSON,则在导出的数据QLDB对象JSON中将 Ion 日志数据向下转换为。有关更多信息,请参阅 向下转换为 JSON

  5. 根据需要进行设置后,选择 创建导出作业

    完成导出作业所需的时间取决于数据大小。如果您的请求提交成功,控制台将返回主导出页面,并列出您的导出作业及其当前状态。

  6. 您可以在 Amazon S3 控制台上查看导出对象。

    打开 Amazon S3 控制台,网址为https://console.aws.amazon.com/s3/

    要了解有关这些输出对象格式的更多信息,请参阅 日记账导出输出于 QLDB

注意

导出作业将在完成七天后过期。有关更多信息,请参阅 导出作业到期

QLDB API

您也可以使用QLDBAPI带有 Amazon 的 Amazon 来请求日记账导出 AWS SDK或者 AWS CLI。 QLDBAPI提供了以下操作供应用程序使用:

  • ExportJournalToS3— 将日期和时间范围内的日记账内容从给定分类账导出到指定的 Amazon S3 存储桶。导出任务可以以 Amazon Ion 的文本或二进制格式或JSON行文本格式将数据写成对象。

  • DescribeJournalS3Export— 返回有关日记账导出作业的详细信息。输出包括其当前状态、创建时间和原始导出请求的参数。

  • ListJournalS3Exports— 返回与当前账本关联的所有分类账的日记账导出任务描述列表 AWS 账户 和区域。每个导出作业描述的输出都包含与​​ DescribeJournalS3Export 返回的相同的详细信息。

  • ListJournalS3ExportsForLedger— 返回给定分类账的日记账导出作业描述列表。每个导出作业描述的输出都包含与​​ DescribeJournalS3Export 返回的相同的详细信息。

有关这些API操作的完整说明,请参阅亚马逊QLDBAPI参考资料

有关使用导出日记账数据的信息 AWS CLI,请参阅 AWS CLI 命令参考

Java 中的示例应用程序

有关基本导出操作的 Java 代码示例,请参阅 GitHub 存储库 a ws-samples/-amazon-qldb-dmv-sample java。有关如何下载和安装此示例应用程序的说明,请参阅 安装 Amazon QLDB Java 示例应用程序。在请求导出之前,请确保按照 Java 教程 中的步骤 1-3 创建一个示例分类帐并用示例数据加载它。

以下类中的教程代码提供了创建导出、检查导出状态和处理导出输出的示例。

描述
ExportJournal vehicle-registration示例分类账中导出日记账区块,时间戳范围为 10 分钟前到现在。将输出对象写入指定的 S3 存储桶,如果未提供唯一存储桶,则创建唯一存储桶。
DescribeJournalExport 描述vehicle-registration示例分类账exportId中指定的日记账导出作业。
ListJournalExports 返回vehicle-registration示例分类账的日记账导出作业描述列表。
ValidateQldbHashChain 使用给定的exportId​​验证vehicle-registration示例分类账的哈希链。如果未提供,则请求新的导出以用于哈希链验证。

导出作业到期

已完成的日记账导出作业有 7 天的保留期。此限制到期后,它们会自动被硬删除。此到期时间是一项硬性限制,无法更改。

删除已完成的导出任务后,您将无法再使用QLDB控制台或以下API操作来检索有关该任务的元数据:

  • DescribeJournalS3Export

  • ListJournalS3Exports

  • ListJournalS3ExportsForLedger

但是,此过期时间对导出数据本身没有影响。所有元数据都保留在导出文件中写入的清单文件中。此到期时间旨在为列出日记账导出任务的API操作提供更流畅的体验。QLDB移除旧的导出任务,以确保您只看到最近的导出,而不必解析多页作业。