Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

在 DynamoDB 与本机 Hive 表之间复制数据

如果 DynamoDB 表中包含数据,您可以将数据复制到本机 Hive 表。这将生成您复制时的数据快照。

如果您需要进行很多 HiveQL 查询,但不想占用 DynamoDB 预配置的吞吐容量,则可执行此操作。由于本机 Hive 表中的数据是 DynamoDB 中数据的副本,而不是“实时”数据,因此您在查询时不应期望得到最新数据。

本部分的示例假设您已按照 教程:使用 Amazon DynamoDB 和 Apache Hive 中的步骤操作并且具有在 DynamoDB 中控制的外部表 (ddb_features)。

从本机 Hive 表到 DynamoDB

您可以创建一个本机 Hive 表并用 ddb_features 中的数据填充此表,如下所示:

Copy
CREATE TABLE features_snapshot AS SELECT * FROM ddb_features;

然后您可以随时刷新数据:

Copy
INSERT OVERWRITE TABLE features_snapshot SELECT * FROM ddb_features;

注意

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

以下示例创建了一个本机 Hive 表,仅包含湖和山峰的某些属性:

Copy
CREATE TABLE lakes_and_summits AS SELECT feature_name, feature_class, state_alpha FROM ddb_features WHERE feature_class IN ('Lake','Summit');

从 DynamoDB 到本机 Hive 表

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

Copy
INSERT OVERWRITE TABLE ddb_features SELECT * FROM features_snapshot;