AnalyticDB for MySQL支持通过外表和INSERT INTO方式将AnalyticDB for MySQL中的数据导出到OSS中。

前提条件

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

      例如,在OSS中新建文件夹bucket-name.oss-cn-hangzhou.aliyuncs.com/adb_data/,从AnalyticDB for MySQL中导出的数据将存储在该文件夹下。

      新建文件夹
      说明 AnalyticDB for MySQL导出数据时,自动根据任务并发速度动态确定目标文件数目。
  • 根据AnalyticDB for MySQL快速入门,完成创建集群、设置白名单、创建账号和数据库等准备工作,详情请参见AnalyticDB for MySQL快速入门

操作步骤

  1. 连接目标集群,进入目标数据库。

    本示例将AnalyticDB for MySQL的adb_demo库中的adb_oss_import_test表数据导出至OSS的bucket-name.oss-cn-hangzhou.aliyuncs.com/adb_data/文件夹下。

    说明 adb_oss_import_test表详情,请参见将OSS数据导入AnalyticDB for MySQL
  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://bucket-name/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 您在访问bucket-name.oss-cn-hangzhou.aliyuncs.com/adb_data/文件夹时所持有的AccessKey ID。

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

    accesskey 您在访问bucket-name.oss-cn-hangzhou.aliyuncs.com/adb_data/文件夹时所持有的Access Key Secret。
    delimiter 定义OSS中数据文件的列分隔符。
  3. 在AnalyticDB for MySQL中,通过INSERT INTO将数据导出到OSS。
    insert into oss_export_test_external_table
    select * from adb_oss_import_test                 

    待INSERT INTO任务结束后,登录OSS控制台,在adb_data目录下查看同步过来的数据。

    导入成功