全部产品

将AnalyticDB for MySQL数据导出到OSS

更新时间:2019-07-24 19:29:30

本文介绍如何通过AnalyticDB for MySQL映射表和INSERT INTO将AnalyticDB for MySQL中的表数据导出到对象存储服务(Object Storage Service,简称OSS)中。

前提条件

  • 通过以下步骤在OSS中创建存储AnalyticDB for MySQL数据的目录。

    1. 开通OSS服务

      注意:OSS与AnalyticDB for MySQL必须在同一个VPC下,AnalyticDB for MySQL将通过OSS的VPC地址访问OSS。

    2. 创建存储空间

    3. 新建文件夹

      文件夹

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

      注意:AnalyticDB for MySQL导出数据时,自动根据任务并发速度动态确定目标文件数目。

  • 根据AnalyticDB for MySQL快速入门,完成创建实例、设置白名单、创建账号和数据库等准备工作。

实施步骤

  1. 连接AnalyticDB for MySQL,进入目标数据库。

    本示例将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

    1. CREATE TABLE IF NOT EXISTS oss_export_test_external_table
    2. (
    3. uid string,
    4. other string
    5. )
    6. ENGINE='OSS'
    7. TABLE_PROPERTIES='{
    8. "endpoint":"oss-cn-hangzhou-internal.aliyuncs.com",
    9. "url":"oss://bucket-name/adb_data/",
    10. "accessid":"LTAIF****5FsE",
    11. "accesskey":"Ccw****iWjv",
    12. "delimiter":";",
    13. }'
    参数 说明
    ENGINE=’OSS’ 表示该表是外部表,使用的存储引擎是OSS。
    TABLE_PROPERTIES 用于告知AnalyticDB for MySQL如何访问OSS并向其写入数据。
    endpoint OSS的EndPoint(域名节点)

    注意:目前仅支持AnalyticDB for MySQL通过OSS的VPC域名节点访问OSS。

    登录OSS控制台,单击目标Bucket,在Bucket概览页面查看endpoint

    查看OSS连接信息

    url OSS中文件夹的地址,以/结尾。
    accessid 您在访问bucket-name.oss-cn-hangzhou.aliyuncs.com/adb_data/文件夹时所持有的Access Key Secret

    如何获取您的accessidaccesskey,请参见账号与权限管理

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

    1. insert into oss_export_test_external_table
    2. select * from adb_oss_import_test

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

    oss中查看数据