AnalyticDB MySQL版提供多种数据同步方案,可满足不同场景下的数据同步需求。以数据文件存储在OSS中为例,介绍如何将OSS中的数据文件导入AnalyticDB MySQL版的adb_demo数据库中并进行查询。
1. 前提条件
通过以下步骤在对象存储(Object Storage Service,简称OSS)中创建存储AnalyticDB MySQL版数据的目录。
• 开通OSS服务
• 创建存储空间
• 创建目录
• 上传测试数据文件
本示例将oss_import_test_data.txt文件上传至OSS中的bucket-name.oss-cn-hangzhou.aliyuncs.com/adb/目录,数据行分隔符为换行符,列分隔符为;,文件示例数据如下所示:
number;note 0001;hello_world_1 0002;hello_world_2 0003;hello_world_3 0004;hello_world_4 0005;hello_world_5 0006;hello_world_6 ...
根据AnalyticDB MySQL版入门指南,完成创建集群、设置白名单、创建账号和数据库等准备工作。
2. 操作步骤
1) 通过CREATE TABLE,在adb_demo数据库中创建外表。
创建CSV、Parquet或TEXT格式OSS外表的建表语法请参见创建OSS外表语法,https://help.aliyun.com/document_detail/188324.html#section-9i5-mh8-imc
2) 查询OSS数据。查询外表映射表和查询AnalyticDB MySQL版内表语法没有区别,可以方便地直接进行查询,如本步骤的示例代码所示:
select uid, other from oss_import_test_external_table where uid < 100 limit 10
• 对于数据量较大的CSV或TEXT数据文件,强烈建议您按照后续步骤导入AnalyticDB MySQL版后再做查询,否则查询性能可能会较差。
• 对于Parquet格式数据文件,直接查询的性能一般也比较高,可以根据需要决定是否进一步导入到AnalyticDB MySQL版后再做查询。
3) 通过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)
4) 执行INSERT语句将OSS数据导入AnalyticDB 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
方式三:异步执行INSERT OVERWRITE INTO导入数据。
submit job insert overwrite into adb_oss_import_test select * from oss_import_test_external_table ;
说明
关于异步提交任务详情请参见: