Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

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;