将OSS数据导入AnalyticDB for MySQL_通过INSERT外表方式导入导出OSS数据_OSS_数据接入_分析型数据库MySQL版
将OSS数据导入AnalyticDB for MySQL
本文介绍如何通过AnalyticDB for MySQL映射表和INSERT OVERWRITE INTO或者INSERT INTO将OSS中的数据导入AnalyticDB for MySQL。
前提条件
通过以下步骤在对象存储(Object Storage Service,简称OSS)中准备测试数据。
根据AnalyticDB for MySQL快速入门,完成创建实例、设置白名单、创建账号和数据库等准备工作。
实施步骤
连接AnalyticDB for MySQL,进入目标数据库。
本示例将
oss_import_test_data.txt
中的数据导入AnalyticDB for MySQL的adb_demo
库中。通过CREATE TABLE,在
adb_demo
数据库中创建外部映射表oss_import_test_external_table
。CREATE TABLE IF NOT EXISTS oss_import_test_external_table
(
uid string,
other string
)
ENGINE='OSS'
TABLE_PROPERTIES='{
"endpoint":"oss-cn-hangzhou-internal.aliyuncs.com",
"url":"oss://bucket-name/adb/oss_import_test_data.txt",
"accessid":"LTAIF****5FsE",
"accesskey":"Ccw****iWjv",
"delimiter":";",
}'
参数 说明 ENGINE=’OSS’ 表示该表是外部表,使用的存储引擎是OSS。 TABLE_PROPERTIES 用于告知AnalyticDB for MySQL如何访问OSS中的数据。 endpoint OSS的EndPoint(域名节点)。 注意:目前仅支持AnalyticDB for MySQL通过OSS中ECS的VPC网络(内网)访问OSS。
登录OSS控制台,单击目标Bucket,在Bucket概览页面查看
endpoint
。url OSS中 oss_import_test_external_table
文件的绝对地址。accessid 您在访问 oss_import_test_external_table
文件时所持有的AccessKey ID。如何获取您的
accessid
和accesskey
,请参见获取账号的AK信息。accesskey 您在访问 oss_import_test_external_table
文件时所持有的Access Key Secret**。delimiter 定义OSS中数据文件的列分隔符。 ossnull 标识 NULL
值,包含以下四种取值。- 1,默认值为1:EMPTY_SEPARATORS
a,"",,c --> "a","",NULL,"c"
- 2:EMPTY_QUOTES
a,"",,c --> "a",NULL,"","c"
- 3:BOTH
a,"",,c --> "a",NULL,NULL,"c"
- 4:NEITHER
a,"",,c --> "a","","","c"
通过CREATE TABLE,在
adb_demo
数据库中创建目标表adb_oss_import_test
存储从OSS中导入的数据。CREATE TABLE IF NOT EXISTS adb_oss_import_test
(
uid string,
other string
)
DISTRIBUTED BY HASH(uid)
执行INSERT语句将OSS数据导入AnalyticDB for MySQL。
执行
INSERT INTO
导入数据。insert into adb_oss_import_test
select * from oss_import_test_external_table
执行
INSERT OVERWRITE INTO
导入数据。insert overwrite into adb_oss_import_test
select * from oss_import_test_external_table
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论