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' |
安装 ByteHouse CLI,参考文档进行安装:https://github.com/bytehouse-cloud/cli。
在 CLI 中,执行如下语句做导出
Bytehouse » SELECT * FROM db.table INTO OUTFILE 'out.csv' format csv
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
您可以使用第三方工具,如 DataGrip 和 DBeaver 连接到 ByteHouse 并导出数据。
连接到 ByteHouse 的具体操作,请参见下列文档:
连接到 ByteHouse 后,可以通过 IDE 的导出按钮导出数据。
以 DBeaver 为例,在完成查询后,点击下面的导出按钮,并选择导出格式即可。
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
进行访问。