dremio 下载大量查询结果数据的一个技巧

dremio 可以对查询结果进行下载(csv,json,parquet格式的),但是目前有一个100万的限制,实际上一般是够用了,但是很多时候大家可能
希望对于查询的结果进行存储(比如进行进一步的分发),以下是一个技巧

默认下载的处理

从处理上就是dremio 的查询job,将查询结果存储到一个__datasetDownload 存储插件的存储中(新版本的分布式存储中)

  • 参考sql 处理
    csv 格式的
 
CREATE TABLE "__datasetDownload"."91733d30-d1d2-46bf-8f2b-3c34d587a96c" STORE AS (type => 'text', fieldDelimiter => ',', lineDelimiter => '
') WITH SINGLE WRITER AS SELECT * FROM (
SELECT * FROM "ops-action"
) LIMIT 1000000

因为dremio 对于内部处理进行了限定,__datasetDownload 开头的是内部存储插件,如果希望自己手工执行类似的sql 是不行的

变通方法

如果内部的不行,我们可以使用一个外部的(比如nas,s3),使用类似的sql 进行存储,然后基于外部存储进行实际的下载

  • 参考sql
CREATE TABLE "mys3"."91733d30-d1d2-46bf-8f2b-3c34d587a96c" STORE AS (type => 'text', fieldDelimiter => ',', lineDelimiter => '
') WITH SINGLE WRITER AS SELECT * FROM (
SELECT * FROM "ops-action"
) LIMIT 1000000

说明

内部处理上实际上就是一个CTAS,但是我们可以参考内部处理的命令规避限制,实现对于大数据量的下载处理

参考资料

sabot/kernel/src/main/java/com/dremio/exec/planner/sql/handlers/query/CreateTableHandler.java
sabot/kernel/src/main/java/com/dremio/exec/planner/sql/handlers/query/DataAdditionCmdHandler.java
https://docs.dremio.com/current/get-started/cluster-deployments/architecture/limits/

posted on   荣锋亮  阅读(27)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-02-05 dremio DacDaemonYarnApplication 简单说明
2023-02-05 apache twill 开发参考流程
2022-02-05 glob 方便的nodejs 文件查找包
2022-02-05 actionhero Initializer的优先级
2022-02-05 grouparoo 插件加载处理
2022-02-05 actionherojs 插件restart 说明
2022-02-05 浏览器指纹信息获取js 包的使用

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示