首页 > TAG信息列表 > DREMIO
dremio 22.1.1 发布
这次dremio 的发布从功能上更多是bug 修复比较多,对于增强上主要是调整了对于嵌入nessie 历史数据的处理,允许对于非分片列的运行时过滤优化bug 修复还是比较多的,具体可以参考官方文档 参考资料 https://docs.dremio.com/software/release-notes/220-release/dremio udf 以及行级以及列级访问控制资料
就在最近官方blog 发布了关于udf 以及行级以及列级访问控制的详细介绍,还是值得学习阅读的,我以前是简单介绍过 通过阅读官方博客,发现了对于自定义函数的使用,同时纠正下以前关于只能权限控制使用的说明(实际上也可以直接使用的) 参考使用 创建 CREATE FUNCTION area (xdremio 默认parquet 文件存储的一些定义参数
实际上官方文档对于parquet 的定义已经有一些说明了,以下结合源码验证下 参考配置 参考配置参数sabot/kernel/src/main/java/com/dremio/exec/ExecConstants.java block size 默认是256m String PARQUET_BLOCK_SIZE = "store.parquet.block-size"; LongValidatordremio odbc 驱动包下载说明
dremio 就在5月底左右的时候,对于odbc 驱动停止了下载,目前在dremio 社区网站有不大好人员反馈了,总的来说是很不好对于数据处理领域基于python (会使用到odbc)是不少的,而且问题也不少,就看后边官方如何解决了,我整理了一些自己已经下载好的driver,同时放到github 上了,对于需要使用的可以dremio 的InformationSchemaCatalog 服务二
今天简单说明了下关于InformationSchemaCatalog 服务的介绍,当时介绍的InformationSchemaCatalog 更多属于基础能力(实际上这个类核心还是dremio 内部使用的) 对于在bi 工具以及系统使用的,dremio 是通过了独立的存储扩展(dremio 存储扩展比较方便,我们可以灵活的扩展dremio) InfoSchemadremio 的InformationSchemaCatalog 服务
InformationSchemaCatalog 服务实现了模仿information_schema的能力,让我们可以更好的在bi 工具以及其他系统使用 接口定义 /** * Facet of the catalog service that provides metadata with an information_schema like API. * <p> * The metadata provided madremio udf 参考调用处理
以下是基于arthas 生成的调用,可以参考学习使用 参考调用 [arthas@1]$ stack com.dremio.exec.planner.sql.handlers.direct.CreateFunctionHandler toResult Press Q or Ctrl+C to abort. Affect(class count: 1 , method count: 1) cost in 451 ms, listenerId: 1dremio 22 udf 功能
dremio 22 开始支持了直接基于sql 的udf,很方便,强大,但是目前对于社区版来说智能创建,暂时还不能直接使用 目前udf 面向的创建是基于行以及列级别的访问控制 创建udf函数 CREATE FUNCTION multiply (x INT, y INT) RETURNS INT RETURN SELECT x * y; 存储效果dremio 的一些系统表
dremio 的一些系统表是比较有用的,比如进行系统反射以及node 信息的查看,同时也便于系统的监控(同时我们也可以基于prometheus 处理) 查询命令 SELECT * FROM INFORMATION_SCHEMA."TABLES" 包含的信息(红框部分比较重要,值得学习参考) 对于反射比较有用的几dremio 22 odbc 新特性
从dremio 22 开始odbc 支持了arrow flight sql 了,可以很大的提高sql 的性能,但是目前源码没有开源目前支持的操作系统包含了centos 以及windows 10 以及新的(64位系统) 说明 arrow 的flight sql 可以很大的提升数据查询处理能力, 很值得使用,目前jdbc 的还是缺少,比较期待idbc 也可以支基于jprofiler 的一个简单dremio 查询处理学习
一个dremio 查询简单调用链的说明 参考命令 arthas watch watch com.dremio.sabot.exec.fragment.FragmentExecutor$AsyncTaskImpl run '{params, target, returnObj, throwExp}' -x 2 jprofiler 可以直接附加就行了 参考调用图 代码处理 rdremio 对于iceberg 的操作支持
从dremio 22 开始iceberg 已经成为了dremio 标配的ctas 操作了,而且同时也支持直接创建iceberg 表了,此功能整个是很强大 支持的操作 create 支持ctas 以及普通的create 操作 ctas create table mys3.demoapp.dalongtest as select * from pg.public.demoappdremio 22 变动体验
主要是验证下官方发布 ctas iceberg 成为默认 iceberg dml 操作 比如update, 真的比较强大了 sql 自动提示 是更加友好了 arrow cache 废弃了 支持对于table 添加主键 说明 以上只是简单的测试,详细的其他功能打开可以测试,目前来dremio 22 发布
dremio 22 发布了(目前社区版下载以及源码暂时还没发布),新功能很多,也比较值得期待 新特性 iceberg dml 支持,支持了delete,update,merge 等操作,很强大 azure data explorer 数据源支持 sql 编辑器,自动提示 sql runner 保存sql sql 命令支持修改内部schema (以后可以修改列数据类型了)dremio 增量反射处理
我们可以基于dremio 的反射进行数据加速处理,dremio 支持全量以及增量,全量是比较简单的,dremio直接处理完整数据(当然会基于版本基于,不是简单的支持删除,然后使用的,不然会影响业务的),对于增量处理就比较复杂了 增量处理策略 对于文件系统,可以自动标识新的文件 对于其他数据集(物理以dremio logback 几个配置文件简单说明
dremio 是了slf4j 进行文件日志处理,使用的是logback,默认会包含三个日志文件 logback-access.xml logback-admin.xml logback.xml 简单说明 logback.xml 标准logback日志配置文件主要记录dremio内部组件的日志,logback-admin.xml 属于http 请求的日志文件,属于logbdremio 21.1 分布式存储配置demo
主要演示下,具体参数以前我有说明过 环境准备 dockerfile FROM dremio/dremio-oss:21.1 USER root COPY dremio-env-profile /opt/dremio/conf/dremio-env COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas COPY core-site.xml /opt/dremio/conf使用glowroot apm分析dremio 调用
我以前介绍过关于使用jprofiler(商业软件的)调用分析jprofiler 是比较强大的一个工具,对于简单来说 glowroot 也是可行的(opentelemetry 也是一个好选择),以下是关于dremio 集成glowroot的一个简单 说明 环境准备 基于docker-compose 运行 直接复制依赖包以及admin.json 配置(监听端dremio 21 pdfs 不在支持
个人猜测,应该是不利于后续的加速优化以及对于Iceberg 特性的支持 参考配置 配置来自helm paths: { # Local path for dremio to store data. local: ${DREMIO_HOME}"/data" # Distributed path Dremio data including job results, downloads, # uploads使用odbc 提升cube.js 查询dremio 的性能
主要是一个技术说明,后续开发相关的driver 原理 dremio 是支持obdc 访问的,odbc 是比直接的http 访问有更快的性能,而且可以使用更加标准的sql 查询 参考处理 社区已经有了完整的实现node-odbc 我们可以使用来使用 参考demo dremio 的odbc 需要先安装,具体参考官方文档,对于mac 需要先dremio ConnectionConf 接口说明
基本所有dremio 的存储扩展的配置管理都会使用此类 参考类图定 ConnectionConf 继承了AbstractConnectionConf 功能比较简单,主要是提供了获取类型,以及转换为字节字符串 获取类型部分使用了dremio 的注解(开发扩展会包含一个注解,设计还是比较巧妙的,简化了注解的处理) 配置转换为字dremio DatasetListingService 服务简单说明.
DatasetListingService 从功能上来说主要是处理dremio 集群节点访问datasets 的处理,默认基于namespace 的只能协调节点访问,CatalogService 就依赖DatasetListingService 简单介绍 实现类图 从定义以及子类上,可以看出,主要还是获取namespace 包含的source (核心是获取服务)dremio arp BaseTestQuery 类windows 系统问题
对于开发的dremio arp 扩展,我们很多时候需要进行测试,官方是提供了一个BaseTestQuery的类,可以方便的编写测试但是此类默认会创建hadoop 相关的东西,使用起来还是很费事的,一般我们开发jdbc arp 扩展的时候是不会使用hadoop的所以应该禁用,参考官方修改了一个去掉hadoop的 参考使用 在tdremio 社区版目前依赖的一个闭源包
dremio 并不是100%开源的,其中就包含一些以dremio-ce 开头的包,目前这些包是在构建阶段打包进去的 但是这些包还是比较重要的,比如jdbc,es,kernel 以及scheduler 参考清单 基于20.1.0 版本的 dremio-ce-elasticsearch-plugin-20.1.0-202202061055110045-36733c65.jardremio 源码分析学习的几个方便工具
很多时候我们需要开发自己的dremio 扩展(jdbc arp 扩展,存储扩展,格式扩展),dremio 代码相对是比较多的学习起来还是不好弄的,但是我们可以结合一些工具简化我们代码的问题 可选工具 arthas 使用此工具可以很好的了解调用链(方便对于调用链分析) jprofiler 很多时候我们需要开发jdbc 的