このトピックでは、MaxCompute の外部テーブル機能を使用して、Object Storage Service (OSS) の Snappy 圧縮ファイルから MaxCompute にデータを移行する方法について説明します。ファイル内のデータはカンマ (,) で区切られています。
前提条件
MaxCompute を有効化し、プロジェクトを作成済みであること。詳細については、「MaxCompute プロジェクトの作成」をご参照ください。
Object Storage Service (OSS) を有効化し、バケットを作成済みであること。バケットには Snappy 圧縮データファイルが格納されています。OSS の有効化とバケットの作成方法の詳細については、「バケットの作成」をご参照ください。
サンプルファイルは、シンガポールリージョンの OSS バケットにあります。ファイルパスは
mfosscostfee-intl/demo/です。
実際のファイル情報を使用してください。
OSS から MaxCompute への圧縮データの移行
MaxCompute にログインし、開発者ツールに接続します。
以下のいずれかの開発者ツールを使用して、MaxCompute で OSS 外部テーブルを作成できます。
作成方法
プラットフォーム
MaxCompute SQL を使用して OSS 外部テーブルを作成
UI を使用して OSS 外部テーブルを作成
OSS 外部テーブルを作成します。
以下にコマンドの例を示します。外部テーブルを作成するための構文の詳細については、「OSS 外部テーブルの作成」をご参照ください。
-- 外部テーブルを作成します。 create external table if not exists mc_oss_ext_snap_split ( str1 string, str2 string, str3 string, str4 string, str5 string, str6 string, str7 string, str8 string, str9 string, str10 string, str11 string, str12 string, str13 string, str14 string, str15 string, str16 string, str17 string, str18 string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ('field.delim'=',') -- Snappy の内容はカンマ (,) で区切られます。 STORED AS TEXTFILE location 'oss://oss-cn-beijing-internal.aliyuncs.com/mfosscostfee/demo7/' ;外部テーブルからデータを読み取り、MaxCompute 内部テーブルに書き込みます。
以下にコマンドの例を示します。
-- 内部テーブルを作成します。 create table if not exists mc_oss_snap_split ( str1 string, str2 string, str3 string, str4 string, str5 string, str6 string, str7 string, str8 string, str9 string, str10 string, str11 string, str12 string, str13 string, str14 string, str15 string, str16 string, str17 string, str18 string ); -- 外部テーブルからデータを読み取り、内部テーブルに書き込みます。 insert into table mc_oss_snap_split select * from mc_oss_ext_snap_split limit 10;内部テーブルのデータをクエリします。
次のコマンドを実行して、内部テーブルのデータをクエリします。
select str2, str3 from mc_oss_snap_split;次の結果が返されます。
+------------+------------+ | str2 | str3 | +------------+------------+ | 113.221620 | 23.398279 | | 113.288735 | 23.157167 | | 113.040365 | 23.681102 | | 113.910224 | 22.757139 | | 119.086087 | 33.583632 | | 113.363475 | 23.141354 | | 113.328440 | 23.130362 | | 113.249651 | 23.205976 | | 113.258325 | 23.159060 | | 117.463688 | 38.836611 | +------------+------------+この結果は、圧縮データが OSS から MaxCompute に移行されたことを示しています。