You need to enable JavaScript to run this app.
导航

数据导出

最近更新时间2023.11.24 17:39:32

首次发布时间2023.07.12 18:15:03

ByteHouse 支持通过 SELECT ... INTO OUTFILE 的方式支持将数据导出为本地文件或对象存储 TOS,LASFS 等。

语义说明

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

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

参数

说明

tos_access_key

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

tos_secret_key

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

tos_security_token

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

tos_region

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

导出方式

通过 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

导出到对象存储 TOS

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