本文介绍何如将AnalyticDB MySQL 2.0的数据导出到对象存储(OSS)。

语法

/*+ dump-col-del=[,], 
    dump-row-del=[\n], 
    dump-oss-accesskey-id=ACCESS_KEY_ID,
    dump-oss-accesskey-secret=ACCESS_KEY_SECRET,
    engine=MPP,
    [return-dump-record-count=TRUE,]
    dump-header=[DUMP DATA [OVERWRITE] INTO 'oss://endpoint/bucket_name/filename']
*/ sql

参数

  • dump-col-del:指定列分符,可选参数。
  • dump-row-del:指定行分隔符,可选参数。
  • dump-oss-accesskey-id:有OSS写某个object权限的access_key_id,必选参数。
  • dump-oss-accesskey-secret:有OSS写某个object权限的access_key_secret,必选参数。
  • engine=MPP:计算引擎,必选参数。
  • return-dump-record-count=TRUE:显示行数,可选参数。
  • dump-header:必选参数。
  • overwrite:可选参数。当指定OVERWRITE时,会对原有文件进行覆盖写,不指定时会对原有文件进行追加写。
  • endpoint:OSS内网的Endpoint,请参见公共云下OSS Region和Endpoint对照表,必选参数。无论同地域还是跨地域,Endpoint一定是内网Endpoint(有些地域不支持跨域访问)。

示例

cx_test3表中年龄大于18岁客户的姓名和手机号导出到testBucketName下的CUSTOMER文件中(覆盖写)。数据库与OSS同地域,都在上海地域。
/*+ dump-oss-accesskey-id=gfCrBlzhaVz****,
    dump-oss-accesskey-secret=pWMAPt15gU8IBox9bj9rpjGU****,
    engine=MPP,
    dump-header=[DUMP DATA OVERWRITE INTO 'oss://oss-cn-shanghai-internal.aliyuncs.com/<testBucketName>/customer.csv']
*/ 
SELECT customer_id,customer_name,phone_num
FROM cx_test3
WHERE age >18;

注意事项

如果导出OSS没有数据且无任何报错,请检查语法是否有问题。语法中return-dump-record-count=TRUEOVERWRITE外面的方括号表示可选项,如果需要加上这两个参数必须把外面的方括号去掉,具体写法参考如上例子。