You need to enable JavaScript to run this app.
导航
数据导出
最近更新时间:2024.11.04 15:18:10首次发布时间:2023.07.12 18:15:03

ByteHouse 支持多种方式将数据导出为本地文件或对象存储 TOS、LASFS 等。

语义说明

SELECT <expr_list> 
INTO OUTFILE "file_path/file_name"
[FORMAT format_name] [SETTINGS setting_name] 

导出格式 FORMAT 支持 JSON, TSVWithNames, TSV, CSV, CSVWithNames, Pretty 等常用格式。
SETTINGS 参数说明如下:

参数

说明

tos_access_key

火山秘钥管理中获取的 Access Key

tos_secret_key

火山秘钥管理中获取的 Secret Key

tos_security_token

STS 临时秘钥,用于更安全地访问 TOS

tos_region

TOS 所在地域,例如 'cn-beijing'

1. 通过命令导出

通过 ByteHouse CLI 导出

安装 ByteHouse CLI,参考文档进行安装:https://github.com/bytehouse-cloud/cli。
在 CLI 中,执行如下语句做导出

Bytehouse » SELECT * FROM db.table INTO OUTFILE 'out.csv' format csv

通过 OpenAPI 调用导出

API 导出参考可以参考 ByteHouse API 列表,通过调用 /sql/sync 实现。
导出示例如下所示:

curl --request POST \
     --url https://bytemart-cn-beijing.bytehouse.volcbiz.com/v1/sql/sync \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {accesstoken}' \
     --header 'content-type: application/json' \
     --data @- <<EOF
{
  "mode": "ansi_sql",
  "query": "SELECT * FROM db.table INTO OUTFILE 'out.csv' format csv",
  "vwID": "vw-{accountid}-default-vw"
}
EOF

2.通过IDE导出数据

您可以使用第三方工具,如 DataGrip 和 DBeaver 连接到 ByteHouse 并导出数据。
连接到 ByteHouse 的具体操作,请参见下列文档:

  1. DataGrip(TCP)
  2. DataGrip(HTTP)
  3. DBeaver(TCP)
  4. DBeaver(HTTP)

连接到 ByteHouse 后,可以通过 IDE 的导出按钮导出数据。
以 DBeaver 为例,在完成查询后,点击下面的导出按钮,并选择导出格式即可。
Image
Image

3.导出到对象存储 TOS

ByteHouse 支持通过配置对象存储的路径及参数实现文件导出,可以提供更加稳定、可落盘的导出方案。可以参考如下步骤进行导出:
在火山引擎 API 访问秘钥界面,申请 ak/sk 用于连接对象存储
Image
策略管理页面,进入 TOSFullAccess 的授权页面添加子账户配置,给用户授权该权限。
Image
对象存储产品页面,确认待导出的对应 TOS 存储桶具有全读写权限。
Image
执行如下语句进行 TOS 数据导出

select * from db.table
 INTO OUTFILE 'vetos://my-testing/data/data-export-test.txt' 
 SETTINGS 
 tos_access_key = 'ak', 
 tos_secret_key = 'sk',
 tos_region = 'cn-beijing';

导出完毕后,访问对象存储桶对导出数据进行查看。
如果需要通过 STS 临时 AK/SK 及 Token 访问 TOS,需要参考对应文档生成密钥对,并配置tos_security_token 进行访问。