外部データストアから MaxCompute テーブルまたは MaxCompute テーブルのパーティションにデータをインポートする場合、LOAD 文を使用できます。このトピックでは、LOAD 文を使用して、CSV 形式または別のオープンソース形式のデータを外部データストアから MaxCompute テーブルまたは MaxCompute テーブルのパーティションにインポートする方法について説明します。
このトピックで説明されている文は、以下のプラットフォームで実行できます。
説明
MaxCompute では、LOAD OVERWRITE
文または LOAD INTO
文を実行して、CSV 形式または別のオープンソース形式のデータを外部データストアから MaxCompute テーブルまたは MaxCompute テーブルのパーティションにインポートできます。外部データストアは、Hologres、Object Storage Service (OSS)、Amazon Redshift、または BigQuery です。
Amazon Redshift または BigQuery から MaxCompute テーブルまたは MaxCompute テーブルのパーティションにデータをインポートするには、最初にデータを OSS にインポートする必要があります。
MaxCompute では、動的パーティションモードでパーティションテーブルのパーティションにデータをインポートできます。
LOAD INTO
文は、テーブルまたはテーブルのパーティションにデータを直接追加します。LOAD OVERWRITE
文は、テーブルまたはテーブルのパーティションをクリアしてから、テーブルまたはパーティションにデータを挿入します。
制限
外部データストアのデータは、外部データストアと同じリージョンにある MaxCompute プロジェクトにインポートできます。
OSS から MaxCompute にデータをインポートする場合は、次の制限に注意する必要があります。
OSS から MaxCompute テーブルのパーティションにデータをインポートする場合、パーティションキー列を除く MaxCompute テーブルのスキーマは、外部データストアのデータのレイアウトと一致している必要があり、外部データストアのデータにはパーティションキー列を含めることができません。
Hologres から MaxCompute にデータをインポートする場合は、次の制限に注意する必要があります。
Hologres パーティションテーブルのデータを MaxCompute にインポートすることはできません。
デュアルシグネチャ認証モードを使用する Hologres 外部テーブルを使用して、MaxCompute にデータをインポートすることはできません。
前提条件
MaxCompute の関連 権限 が、データのインポートに使用するアカウントに付与されています。
LOAD
文を実行するためにアカウントを使用する前に、MaxCompute プロジェクトに対する CreateTable 権限 と Alter 権限 をアカウントに付与する必要があります。詳細については、「MaxCompute 権限」をご参照ください。データのインポート元の外部データストアの関連 権限 が、データのインポートに使用するアカウントに付与されています。
外部データストアから MaxCompute にデータをインポートする前に、OSS や Hologres などの外部データストアにアクセスするための 権限 を MaxCompute に付与する必要があります。
LOAD OVERWRITE
文とLOAD INTO
文の 権限 付与方法は、MaxCompute 外部テーブルの場合と同じです。外部データストア: OSS
ワンクリック 権限 付与を実行して、より高い セキュリティ を提供できます。詳細については、「STS 権限 付与」をご参照ください。
外部データストア: Hologres
RAM ロールを作成し、MaxCompute にアクセスするための 権限 を RAM ロールに付与できます。次に、RAM ロールを Hologres インスタンス に追加し、関連 権限 を RAM ロールに付与します。詳細については、「Hologres 外部テーブル」の「STS モードで Hologres 外部テーブルを作成する」をご参照ください。
権限 付与が完了したら、インポートするデータの形式に基づいて適切なインポート方法を選択する必要があります。
ストレージハンドラとして機能する組み込みエクストラクタを使用してデータをインポートする
構文
{load overwrite|into} table <table_name> [partition (<pt_spec>)] from location <external_location> stored by <StorageHandler> [with serdeproperties (<Options>)];
パラメータ
外部データストア: OSS
table_name: 必須。データを挿入するテーブルの名前。データを挿入する前に、テーブルを作成する必要があります。パーティションキー列を除くテーブルのスキーマは、外部データストアのデータのレイアウトと一致している必要があります。
pt_spec: 任意。データを挿入するテーブルのパーティション情報です。このパラメーターの値は
(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)
のフォーマットです。external_location: 必須。 データを格納する OSS ディレクトリです。 このパラメーターの値は、
'oss://<oss_endpoint>/<object>'
フォーマットです。 OSS エンドポイントの詳細については、「OSS ドメイン名」をご参照ください。 デフォルトでは、MaxCompute はこのディレクトリ内のすべてのファイルを読み取ります。StorageHandler: 必須。組み込みエクストラクタと見なされるストレージハンドラの名前。
com.aliyun.odps.CsvStorageHandler
は、CSV ファイルを処理するために使用される組み込みストレージハンドラです。CSV ファイルからデータを読み取り、CSV ファイルにデータを書き込む方法を定義します。関連ロジックはシステムによって実装されます。この パラメータ は、MaxCompute 外部テーブルの場合と同じ方法で使用できます。詳細については、「OSS 外部テーブルを作成する」をご参照ください。Options: オプション。WITH SERDEPROPERTIES の外部テーブルに関連するプロパティ。プロパティは、MaxCompute 外部テーブルを作成する場合と同じです。プロパティの詳細については、「OSS 外部テーブルを作成する」をご参照ください。
外部データストア: Hologres
table_name: 必須。データを挿入するテーブルの名前。データを挿入する前に、テーブルを作成する必要があります。テーブルのスキーマ(パーティションキー列を除く)は、外部データストア内のデータのレイアウトと一致している必要があります。
pt_spec: 任意。 データを挿入するテーブルのパーティション情報。 このパラメーターの値は、
(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)
フォーマットです。external_location: 必須。 データを格納する Hologres インスタンスの Java Database Connectivity (JDBC) URL です。 このパラメーターの値は、
'<jdbc:postgresql://<endpoint>:<port>/<database>?ApplicationName=MaxCompute&[currentSchema=<schema>&][useSSL={true|false}&]table=<holo_table_name>/>'
フォーマットです。endpoint: 必須。クラシックネットワーク 内の Hologres インスタンス のエンドポイント。エンドポイントの取得方法については、「インスタンス の構成」をご参照ください。
重要クラシックネットワーク内の Hologres インスタンス のエンドポイントのみがサポートされています。VPC エンドポイントを使用して Hologres にアクセスすることはできません。
port: 必須。 Hologres インスタンスのポート番号です。 詳細については、「インスタンス構成」をご参照ください。
database: 必須。アクセスする Hologres データベースの名前。Hologres データベースの詳細については、「CREATE DATABASE」をご参照ください。
ApplicationName: 必須。デフォルト値は MaxCompute で、変更は不要です。
schema: 任意。ソーステーブルの名前が Hologres データベースで一意である場合、またはソーステーブルがデフォルトスキーマのテーブルである場合は、このパラメーターを指定する必要はありません。スキーマの詳細については、「CREATE SCHEMA」をご参照ください。
holo_table_name: 必須。Hologres ソーステーブルの名前。Hologres ソーステーブルの詳細については、「CREATE TABLE」をご参照ください。
StorageHandler: 必須。 Hologres 外部テーブルにアクセスするためのメソッドを定義するストレージハンドラです。 このパラメーターを
com.aliyun.odps.jdbc.JdbcStorageHandler
に設定します。 この値は、JdbcStorageHandler を使用して Hologres 外部テーブルにアクセスすることを示します。tblproperties: 必須。WITH SERDEPROPERTIES の Hologres 外部テーブルに関連するプロパティ。プロパティは、MaxCompute 外部テーブルを作成する場合と同じです。
mcfed.mapreduce.jdbc.driver.class: 必須。Hologres データベースへのアクセスに使用する JDBC ドライバ。値を
org.postgresql.Driver
に設定します。odps.federation.jdbc.target.db.type: 必須。アクセスするデータベースのタイプ。値を
holo
に設定します。odps.federation.jdbc.colmapping: 任意。Hologres ソーステーブルの一部のフィールドを Hologres 外部テーブルにマッピングする場合は、このパラメーターを設定する必要があります。このパラメーターは、Hologres ソーステーブルのフィールドと Hologres 外部テーブルのフィールド間のマッピングを指定します。
この パラメータ が構成されていない場合、ソーステーブルのフィールド名は、外部テーブルの対応する同じ名前のフィールドにマップされます。
この パラメータ が構成されているが、外部テーブルの一部のフィールドのマッピングのみが指定されている場合、ソーステーブルの残りのフィールドは、外部テーブルの対応する同じ名前のフィールドにマップされます。一部のフィールド名またはタイプが一致しない場合は、エラーが報告されます。
この パラメータ が構成されていて、ソーステーブルのフィールド名に 大文字 が含まれている場合は、フィールド名を二重引用符("")で囲みます。この パラメータ の値は、
Hologres 外部テーブル フィールド 1 : "Hologres ソーステーブル フィールド 1" [,Hologres 外部テーブル フィールド 2 : "Hologres ソーステーブル フィールド 2" ,...]
形式です。説明たとえば、ソーステーブルのフィールドが
c bool
、map_B string
、a bigint
で、外部テーブルのフィールドがa bigint
、x string
、c bool
であるとします。colmapping
の値が'x: "map_B"'
の場合、マッピングは成功し、Hologres データをクエリできます。
mcfed.mapreduce.jdbc.input.query: 任意。 Hologres ソーステーブルからデータを読み取る場合は、このパラメーターを設定する必要があります。外部テーブルの列、列名、およびデータ型は、直接クエリされる Hologres ソーステーブルのものと一致している必要があります。 エイリアスを使用する場合、それらも一致している必要があります。
select_sentence
のフォーマットはSELECT xxx FROM <holo_database_name>.<holo_schema_name>.<holo_table_name>
です。
例
外部データストア: OSS
ストレージハンドラとして機能する組み込みエクストラクタを使用してデータをインポートします。MaxCompute リソース と OSS リソース の所有者は、同じ Alibaba Cloud アカウントを使用します。vehicle.csv ファイルから VPC 経由で MaxCompute にデータをインポートします。
vehicle.csv ファイルを
mc-test/data_location/
ディレクトリ(oss-cn-hangzhou
リージョンにある OSS バケット内)に保存し、OSS ディレクトリ への パス を整理します。OSS バケットの作成方法については、「バケットを作成する」をご参照ください。vehicle.csv ファイルには、次のデータが含まれています。
1,1,51,1,46.81006,-92.08174,9/14/2014 0:00,S 1,2,13,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,3,48,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,4,30,1,46.81006,-92.08174,9/14/2014 0:00,W 1,5,47,1,46.81006,-92.08174,9/14/2014 0:00,S 1,6,9,1,46.81006,-92.08174,9/14/2014 0:00,S 1,7,53,1,46.81006,-92.08174,9/14/2014 0:00,N 1,8,63,1,46.81006,-92.08174,9/14/2014 0:00,SW 1,9,4,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,10,31,1,46.81006,-92.08174,9/14/2014 0:00,N
バケット、リージョン、およびエンドポイントに基づいて、OSS ディレクトリへの次のパスを整理します。
oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-test/data_location/
MaxCompute クライアント にログインし、ambulance_data_csv_load という名前のテーブルを作成します。文の例:
create table ambulance_data_csv_load ( vehicleId INT, recordId INT, patientId INT, calls INT, locationLatitute DOUBLE, locationLongtitue DOUBLE, recordTime STRING, direction STRING );
LOAD OVERWRITE
文を実行して、OSS からデスティネーションテーブルに vehicle.csv ファイルをインポートします。文の例:load overwrite table ambulance_data_csv_load from location 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-test/data_location/' stored by 'com.aliyun.odps.CsvStorageHandler' with serdeproperties ( 'odps.properties.rolearn'='acs:ram::xxxxx:role/aliyunodpsdefaultrole', /* AliyunODPSDefaultRole ロールの Alibaba Cloud Resource Name (ARN)。ARN は、Resource Access Management (RAM) コンソールの [ロール] ページから取得できます。 */ 'odps.text.option.delimiter'=',' );
RAM ロールの ARN を表示する方法の詳細については、「RAM ロールの情報を表示する」をご参照ください。
ambulance_data_csv_load テーブルのインポート結果を表示します。文の例:
-- 現在のセッションに対してのみ、フルテーブルスキャンを有効にします。 set odps.sql.allow.fullscan=true; select * from ambulance_data_csv_load;
次の結果が返されます。
+------------+------------+------------+------------+------------------+-------------------+------------+------------+ | vehicleid | recordid | patientid | calls | locationlatitute | locationlongtitue | recordtime | direction | +------------+------------+------------+------------+------------------+-------------------+------------+------------+ | 1 | 1 | 51 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | S | | 1 | 2 | 13 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | NE | | 1 | 3 | 48 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | NE | | 1 | 4 | 30 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | W | | 1 | 5 | 47 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | S | | 1 | 6 | 9 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | S | | 1 | 7 | 53 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | N | | 1 | 8 | 63 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | SW | | 1 | 9 | 4 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | NE | | 1 | 10 | 31 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | N | +------------+------------+------------+------------+------------------+-------------------+------------+------------+
外部データストア: Hologres
シナリオ
Hologres インスタンスとデータベースが作成されます。Hologres データベースにテーブルが作成されます。MaxCompute に Hologres 外部テーブルが作成されます。次のサンプルコードは、Hologres 外部テーブルを使用して Hologres テーブル内のデータをクエリする方法を示しています。
-- Hologres 外部テーブルを使用してデータをクエリします。 select * from mf_holo_ext4; -- 次の結果が返されます。 +------------+------+ | id | name | +------------+------+ | 1 | abc | | 2 | ereg | +------------+------+
LOAD 文を実行して、Hologres テーブルから MaxCompute 内部テーブルにデータをインポートします。
MaxCompute 内部テーブルを作成します。
-- MaxCompute 内部テーブルを作成します。 create table mf_from_holo(id bigint,name string);
LOAD 文を実行して、MaxCompute にデータをインポートします。
-- Hologres テーブルから MaxCompute 内部テーブルにデータをインポートします。 load into table mf_from_holo from location 'jdbc:postgresql://hgprecn-cn-wwo3ft0l****-cn-beijing-internal.hologres.aliyuncs.com:80/mf_db?application_name=MaxCompute¤tSchema=public&useSSL=false&table=mf_holo/' stored by 'com.aliyun.odps.jdbc.JdbcStorageHandler' with serdeproperties ( 'odps.properties.rolearn'='acs:ram::18927322887*****:role/hologressrole', 'mcfed.mapreduce.jdbc.driver.class'='org.postgresql.Driver', 'odps.federation.jdbc.target.db.type'='holo' );
インポートされたデータをクエリします。
select * from mf_from_holo; -- 次の結果が返されます。 +------------+------+ | id | name | +------------+------+ | 2 | ereg | | 1 | abc | +------------+------+
別のオープンソース形式でデータをインポートする
構文
{load overwrite|into} table <table_name> [partition (<pt_spec>)] from location <external_location> [row format serde '<serde_class>' [with serdeproperties (<Options>)] ] stored as <file_format>;
パラメータ
table_name: 必須。データを挿入するテーブルの名前。データを挿入する前に、テーブルを作成する必要があります。パーティションキー列を除くテーブルのスキーマは、外部データストアのデータのレイアウトと一致している必要があります。
pt_spec: オプション。データを挿入するテーブルのパーティション情報。このパラメータの値は、
(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)
形式です。external_location: 必須。データを格納する OSS ディレクトリ。このパラメータの値は、
'oss://<oss_endpoint>/<object>'
形式です。OSS エンドポイントの詳細については、「OSS ドメイン名」をご参照ください。デフォルトでは、MaxCompute はこのディレクトリ内のすべてのファイルを読み取ります。serde_class: オプション。このパラメータは、MaxCompute 外部テーブルの場合と同じ方法で使用できます。詳細については、「OSS 外部テーブルを作成する」をご参照ください。
Options: 必須。WITH SERDEPROPERTIES の外部テーブルに関連するプロパティ。プロパティは、MaxCompute 外部テーブルを作成する場合と同じです。プロパティの詳細については、「OSS 外部テーブルを作成する」をご参照ください。
file_format: 必須。 インポートするデータのフォーマット (ORC、PARQUET、RCFILE、SEQUENCEFILE、TEXTFILE など) です。 このパラメーターは、MaxCompute 外部テーブルの場合と同様に使用できます。 詳細については、「OSS 外部テーブルの作成」をご参照ください。
説明serde_class
とOptions
のデフォルト値を使用する場合、これらのパラメーターを指定する必要はありません。インポートする単一ファイルのサイズは 3 GB を超えることはできません。 3 GB を超える場合は、ファイルを分割してください。
例
例 1: 別のオープンソース形式でデータをインポートします。MaxCompute と OSS の所有者は、同じ Alibaba Cloud アカウントを使用します。vehicle.textfile ファイルから VPC 経由で MaxCompute にデータをインポートします。
説明MaxCompute と OSS の所有者が異なる Alibaba Cloud アカウントを使用している場合、MaxCompute の Alibaba Cloud アカウントに OSS のアクセス権限を付与できます。 詳細については、「OSS の STS 権限付与」をご参照ください。
vehicle.txtfile テキストファイル を
mc-test/data_location/
ディレクトリ(oss-cn-hangzhou
リージョンにある OSS バケット内)に保存し、OSS ディレクトリへのパスを整理します。OSS バケットの作成方法については、「バケットを作成する」をご参照ください。vehicle.textfile ファイルには、次のデータが含まれています。
1,1,51,1,46.81006,-92.08174,9/14/2014 0:00,S 1,2,13,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,3,48,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,4,30,1,46.81006,-92.08174,9/14/2014 0:00,W 1,5,47,1,46.81006,-92.08174,9/14/2014 0:00,S 1,6,9,1,46.81006,-92.08174,9/14/2014 0:00,S 1,7,53,1,46.81006,-92.08174,9/14/2014 0:00,N 1,8,63,1,46.81006,-92.08174,9/14/2014 0:00,SW 1,9,4,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,10,31,1,46.81006,-92.08174,9/14/2014 0:00,N
バケット、リージョン、およびエンドポイントに基づいて、OSS ディレクトリへの次のパスを整理します。
oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-test/data_location/
MaxCompute クライアント にログインし、ambulance_data_textfile_load_pt という名前のデスティネーションテーブルを作成します。文の例:
create table ambulance_data_textfile_load_pt ( vehicleId STRING, recordId STRING, patientId STRING, calls STRING, locationLatitute STRING, locationLongtitue STRING, recordTime STRING, direction STRING) partitioned by (ds STRING);
LOAD OVERWRITE
文を実行して、OSS からデスティネーションテーブルに vehicle.textfile ファイルをインポートします。文の例:load overwrite table ambulance_data_textfile_load_pt partition(ds='20200910') from location 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-test/data_location/' row format serde 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' stored as textfile;
ambulance_data_textfile_load_pt テーブルのインポート結果を表示します。文の例:
-- 現在のセッションに対してのみ、フルテーブルスキャンを有効にします。 set odps.sql.allow.fullscan=true; select * from ambulance_data_textfile_load_pt;
次の結果が返されます。
+------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+ | vehicleid | recordid | patientid | calls | locationlatitute | locationlongtitue | recordtime | direction | ds | +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+ | 1,1,51,1,46.81006,-92.08174,9/14/2014 0:00,S | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | | 1,2,13,1,46.81006,-92.08174,9/14/2014 0:00,NE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | | 1,3,48,1,46.81006,-92.08174,9/14/2014 0:00,NE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | | 1,4,30,1,46.81006,-92.08174,9/14/2014 0:00,W | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | | 1,5,47,1,46.81006,-92.08174,9/14/2014 0:00,S | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | | 1,6,9,1,46.81006,-92.08174,9/14/2014 0:00,S | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | | 1,7,53,1,46.81006,-92.08174,9/14/2014 0:00,N | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | | 1,8,63,1,46.81006,-92.08174,9/14/2014 0:00,SW | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | | 1,9,4,1,46.81006,-92.08174,9/14/2014 0:00,NE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | | 1,10,31,1,46.81006,-92.08174,9/14/2014 0:00,N | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 20200910 | +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+
例 2: 動的パーティションモードでデスティネーションテーブルにデータをインポートします。
説明OSS ディレクトリ下のサブディレクトリがパーティション名にマップされている場合、動的パーティションモードでパーティションテーブルにデータをインポートできます。
vehicle1.csv ファイルを OSS バケットの
mc-test/data_location/ds=20200909/
ディレクトリに保存し、vehicle2.csv ファイルをmc-test/data_location/ds=20200910/
ディレクトリ(oss-cn-hangzhou
リージョンにある OSS バケット内)に保存し、OSS ディレクトリへのパスを整理します。OSS バケットの作成方法については、「バケットを作成する」をご参照ください。vehicle1.csv ファイルと vehicle2.csv ファイルには、次のデータが含まれています。
--vehicle1.csv 1,1,51,1,46.81006,-92.08174,9/14/2014 0:00,S 1,2,13,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,3,48,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,4,30,1,46.81006,-92.08174,9/14/2014 0:00,W 1,5,47,1,46.81006,-92.08174,9/14/2014 0:00,S 1,6,9,1,46.81006,-92.08174,9/14/2014 0:00,S --vehicle2.csv 1,7,53,1,46.81006,-92.08174,9/14/2014 0:00,N 1,8,63,1,46.81006,-92.08174,9/14/2014 0:00,SW 1,9,4,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,10,31,1,46.81006,-92.08174,9/14/2014 0:00,N
バケット、リージョン、およびエンドポイントに基づいて、OSS ディレクトリへの次のパスを整理します。
oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-test/data_location/ds=20200909/' oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-test/data_location/ds=20200910/'
MaxCompute クライアント にログインし、ambulance_data_csv_load_dynpt という名前のデスティネーションテーブルを作成します。文の例:
create table ambulance_data_csv_load_dynpt ( vehicleId STRING, recordId STRING, patientId STRING, calls STRING, locationLatitute STRING, locationLongtitue STRING, recordTime STRING, direction STRING) partitioned by (ds STRING);
LOAD OVERWRITE
文を実行して、OSS からデスティネーションテーブルにファイルをインポートします。文の例:load overwrite table ambulance_data_csv_load_dynpt partition(ds) from location 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-test/data_location/' row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde' stored as textfile;
ambulance_data_csv_load_dynpt テーブルのインポート結果を表示します。文の例:
-- 現在のセッションに対してのみ、フルテーブルスキャンを有効にします。 set odps.sql.allow.fullscan=true; select * from ambulance_data_csv_load_dynpt;
次の結果が返されます。
+------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+ | vehicleid | recordid | patientid | calls | locationlatitute | locationlongtitue | recordtime | direction | ds | +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+ | 1 | 7 | 53 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | N | 20200909 | | 1 | 8 | 63 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | SW | 20200909 | | 1 | 9 | 4 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | NE | 20200909 | | 1 | 10 | 31 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | N | 20200909 | | 1 | 1 | 51 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | S | 20200910 | | 1 | 2 | 13 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | NE | 20200910 | | 1 | 3 | 48 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | NE | 20200910 | | 1 | 4 | 30 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | W | 20200910 | | 1 | 5 | 47 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | S | 20200910 | | 1 | 6 | 9 | 1 | 46.81006 | -92.08174 | 9/14/2014 0:00 | S | 20200910 | +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+
参照
MaxCompute プロジェクトから OSS や Hologres などの外部データストアにデータをエクスポートして、他のコンピューティングエンジンでデータを使用できるようにする場合は、UNLOAD 文を使用できます。詳細については、「UNLOAD」をご参照ください。