ChronusDB 通过创建表函数 s3Cluster Table Function 语句,具有与外部系统集成的能力。

通过表函数 s3Cluster Table Function 语句,允许用户将数据从其他数据源导入/导出,包括 MySQL Server、ODBC/JDBC 连接、文件,以及 S3 等。

本小节主要介绍如何编写 S3 表函数,导入和导出数据。

前提条件

  • 已创建 ChronusDB 集群,且集群状态为活跃

  • 已创建对象存储,并获取对象存储地址。

    注意

    对象存储服务与集群需在同一区域;若不在同一区域,可通过边界路由器VPN 等方式打通网络。

  • 已创建并获取 API 密钥。

编写 S3 表函数

基本语法如下。

s3(path, [access_key_id, secret_access_key,] format, structure, [compression])
参数 说明

path

S3 协议的对象存储路径地址。
必须以 / 结尾。

format

数据格式。

structure

表的结构。
输入格式为 column1_name column1_type,column2_name column2_type,…”;

compression

(可选)文件压缩方式,默认且唯一可选 gzip

将 ChronusDB 数据导入 S3

基本语法示例如下。

$ echo "INSERT INTO FUNCTION s3(
'http://s3.gd2.qingstor.com/bucket-01/chronusDB-cpu/cpu.csv',
'{access_key_id}',
'{secret_access_key}',
'CSV',
'表结构') SELECT * FROM cpu;" | curl 'http://<ChronusDB 用户名>:<ChronusDB 密码>@<高可用 IP>:8123/' --data-binary @-

从 S3 导入数据到 ChronusDB

基本语法示例如下。

$ echo "INSERT INTO ontime SELECT * FROM s3(
'http://s3.gd2.qingstor.com/bucket-01/chronusDB-ontime/ontime.csv',
'{access_key_id}',
'{secret_access_key}',
'CSV',
'表结构');" | curl 'http://<ChronusDB 用户名>:<ChronusDB 密码>@<高可用 IP>:8123/' --data-binary @-