AnalyticDB for MySQL支持通过外表和INSERT INTO方式将AnalyticDB for MySQL中的数据导出到对象存储OSS(Object Storage Service)中。

前提条件

  • 通过以下步骤在对象存储服务OSS中创建存储AnalyticDB for MySQL数据的目录:
    1. 开通对象存储服务,详情请参见开通OSS服务
      说明 OSS与AnalyticDB for MySQL所属Region相同。
    2. 在OSS中创建存储空间,详情请参见创建存储空间
    3. 在OSS中新建目录,详情请参见新建文件夹

      例如,在OSS中新建目录adb_data/,从AnalyticDB for MySQL中导出的数据将存储在该目录下。

      新建目录
  • 根据AnalyticDB for MySQL快速入门,完成创建集群、设置白名单、创建账号和数据库等准备工作,详情请参见AnalyticDB for MySQL快速入门

背景信息

本示例将AnalyticDB for MySQL的adb_demo库中的adb_oss_import_test表数据导出至OSS的adb_data文件夹下。

说明 adb_oss_import_test表详情,请参见通过外表查询或导入OSS数据

将AnalyticDB for MySQL数据导出到OSS时:

  • 3.1.2及之后版本的AnalyticDB for MySQL实例:支持将AnalyticDB for MySQL分区表导出到OSS单文件,用户在导出时可自定义文件名。
  • 3.1.2版本之前的AnalyticDB for MySQL实例:由系统自动命名,其中分区表将会导出多个文件。根据任务并发速度动态确定目标文件数目。

查看AnalyticDB for MySQL实例版本号步骤,请参见如何查看实例版本信息

如果您需要升级实例版本,请提交工单,或在为您提供技术支持的钉钉群内联系ADB官方支持。

操作步骤

  1. 连接目标集群,进入目标数据库。
  2. 通过CREATE TABLE,在adb_demo数据库中创建外部映射表oss_export_test_external_table
    CREATE TABLE IF NOT EXISTS oss_export_test_external_table
    (
    uid string,
    other string
    )
    ENGINE='OSS'
    TABLE_PROPERTIES='{
    "endpoint":"oss-cn-hangzhou-internal.aliyuncs.com",
    "url":"oss://$bucketname/adb_data/",
    "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中文件夹的地址,以/结尾。
    accessid 您在访问adb_data文件夹时所持有的AccessKey ID。

    如何获取您的accessidaccesskey,请参见阿里云控制台

    accesskey 您在访问adb_data文件夹时所持有的Access Key Secret。
    delimiter 定义OSS中数据文件的列分隔符。
  3. 在AnalyticDB for MySQL中,通过INSERT INTO将数据导出到OSS。导出单文件时请注意添加/*output_filename=$file_name*/
    • 导出到OSS(分区表自动导出为多个文件)
      insert [overwrite] into oss_export_test_external_table select * from adb_oss_import_test                 
    • 导出到OSS单文件
      /*output_filename=adb.txt*/insert [overwrite] oss_export_test_external_table select * from adb_oss_import_test
  4. INSERT INTO任务结束后,登录OSS控制台,在adb_data目录下查看同步过来的数据。
    • 导出到OSS(分区表自动导出为多个文件)自动导出多个文件
    • 导出到OSS单文件导出单文件