在 DynamoDB 和原生 Hive 表之间复制数据 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 DynamoDB 和原生 Hive 表之间复制数据

如果 DynamoDB 表有数据,可以将数据复制到本机 Hive 表。这将为您提供到复制数据时的数据快照。

如果您需要执行多个 HiveQL 查询,但不希望占用 DynamoDB 的预置吞吐量容量,则可能会决定执行此操作。由于本机 Hive 表的数据是 DynamoDB 数据的副本,不是“实时”数据,因此您的查询不应该期望数据是最新的。

注意

本部分中的示例假定您遵循 教程:使用 Amazon DynamoDB 和 Apache Hive,在 DynamoDB 中有一个名为 ddb_features 的表。

例 从 DynamoDB 到原生 Hive 表

可以创建一个本机 Hive 表,如下填充 ddb_features 的数据:

CREATE TABLE features_snapshot AS SELECT * FROM ddb_features;

以后可以随时刷新数据:

INSERT OVERWRITE TABLE features_snapshot SELECT * FROM ddb_features;

在这些示例中,子查询 SELECT * FROM ddb_features 将检索 ddb_features 的所有数据。如果只想复制数据子集,可以在子查询中使用 WHERE 子句。

下面的示例创建一个本机 Hive 表,仅包含部分湖泊和高山属性:

CREATE TABLE lakes_and_summits AS SELECT feature_name, feature_class, state_alpha FROM ddb_features WHERE feature_class IN ('Lake','Summit');
例 从原生 Hive 表到 DynamoDB

使用下面的 HiveQL 语句,将数据从本机 Hive 表复制到 ddb_features

INSERT OVERWRITE TABLE ddb_features SELECT * FROM features_snapshot;