Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

在 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;