2024年4月27日

dbt seed 处理简单说明

摘要: dbt 支持基于seed 的快速建模处理(比较适合测试环境使用),我们只需要提供csv 格式的文件,之后执行dbt seed 就会创建对应的模型,之后我们就可以在 dbt 模型中引用了,以下简单说明下内部实现以及处理 参考使用 seed 文件位置 一般我们会在dbt 项目的seed 目录中放对应的s 阅读全文

posted @ 2024-04-27 08:00 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

dremio 25.0 KVStore 升级简单说明

摘要: dremio 25.0 开始对于数据源的存储支持加密了,所以升级上稍有不同,官方给出的操作流程如下 参考处理 // 对于已经运行的,应该先stop,然后进行应用包的替换 dremio stop // 执行dremio-admin 的upgrade dremio-admin upgrade // 启动 阅读全文

posted @ 2024-04-27 08:00 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

2024年4月26日

dremio datastore简单说明二

摘要: 以前也介绍过dremio 的datastore,目前软件版主要是基于rocksdb 的kv,对于创建会基于一个的集群角色使用不同的 dremio 实际包含了好几类的KVStoreProvider 参考KVStoreProvider实现子类 可以看到包含了local,remote,trace,noop 阅读全文

posted @ 2024-04-26 08:00 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

dbt server 简单说明

摘要: 目前dbt 官方提供的几个web api 服务基本都废弃了,包含了dbt-server 以及dbt-rpc 如果需要自己包装web api 服务推荐的还是基于dbt core 提供的dbtRunner,具体在core/dbt/cli/main.py 中,可以参考学习 参考资料 https://git 阅读全文

posted @ 2024-04-26 07:15 荣锋亮 阅读(5) 评论(0) 推荐(0) 编辑

2024年4月25日

dbt 增量物化策略简单说明

摘要: dbt 物化模型是支持增量处理的,实际场景中基于增量的数据处理还是比较重要的,dbt 对于增量的处理会和一些因素有关系,比如数据大小, 可靠的unique_key 以及特定数据平台的支持incremental_strategy 策略可以对于特定adapter 支持配置 目前支持的增量策略 当然与实际 阅读全文

posted @ 2024-04-25 07:07 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

2024年4月24日

dbt is_incremental macro 简单说明

摘要: is_incremental macro 实际上就是一个判断,以下是实现的简单说明,官方文档也有说明 参考处理 逻辑 模型必须存在(数据库中),目的表也存在(数据库中),full-refresh 没有传递,模型配置了materialized='incremental' macro 实现 结合上边的逻 阅读全文

posted @ 2024-04-24 07:15 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

2024年4月23日

dbt test block 简单说明

摘要: dbt 的test block实际上是一个jinja2 的扩展,目前主要是test 场景中使用, 此block的实现处理与标准物化的处理是类似的都是jinja2 的扩展 test macro 的创建 按照当前dbt 的版本是分为两中模式,对于tests 路径是可以配置的,包含了tests/gener 阅读全文

posted @ 2024-04-23 07:42 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

2024年4月22日

nginx 1.25.5 发布

摘要: 就在最近nginx 发布了1.25.5 有一些特性比较有意思 新特性 stream 支持虚拟主机了 比较有意思的功能,结合sni 可以做一些很有意思的事情 一个新的模块ngx_stream_pass_module 与proxy_pass 类似,目前主要是proxy 到ip port (域名以及类似u 阅读全文

posted @ 2024-04-22 10:01 荣锋亮 阅读(18) 评论(0) 推荐(0) 编辑

dbt exceptions macro 简单说明

摘要: dbt exceptions 实际属于一个namespace 变量可以进行一些代码可控的异常处理以及raise 以及warn 参考使用 raise_compiler_error 使用 {% if number < 0 or number > 100 %} {{ exceptions.raise_co 阅读全文

posted @ 2024-04-22 07:34 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

2024年4月21日

dbt 使用adapter.dispatch 进行macro 的覆盖处理

摘要: adapter.dispatch 是一个很方便的功能,可以实现方法的重载,对于不同环境可以使用不同的macro ,以下是一个简单示例 macro 定义 appdemo.sql 注意在macros 目录下,当然可以修改 {% macro demo(name,age) %} # 注意此处我没有指定,na 阅读全文

posted @ 2024-04-21 08:00 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

dbt doc 函数内部处理简单说明

摘要: dbt 提供了一个方便的doc 函数,可以方便的使用类似ref 模式进行docs block 定义的引用 引用参考处理 示例 version: 2 models: - name: events description: '{{ doc("table_events") }}' columns: - n 阅读全文

posted @ 2024-04-21 08:00 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

dbt docs block 简单说明

摘要: dbt docs block 是一个jinja2 bblock 的扩展,以下是一个简单的说明 参考使用 定义 {% docs table_events %} This table contains clickstream events from the marketing website. The 阅读全文

posted @ 2024-04-21 08:00 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

2024年4月20日

dbt asset-paths 简单说明

摘要: dbt的asset-paths 是一个比较有意思的配置,可以用来增强我们的文档信息,比如存放一些图片在资源描述中引用资源 生成的文档中可以进行显示,提示文档的信息 参考配置 dbt_project.yml asset-paths: ["assets"] 使用 假如assets包含一些描述图片信息 m 阅读全文

posted @ 2024-04-20 08:00 荣锋亮 阅读(1) 评论(0) 推荐(0) 编辑

dbt docs block 的一些技巧

摘要: dbt 的docs 实际上自定义上还是很强大的,可以灵活的docs block 解析,同时docs 定义也可以类似model 那样进行引用,当然也包含了一些内部固定模式可以灵活的进行文档的自定义 一些内置自定义玩法 自定义文档路径 类似dbt 其他资源一样docs 也是支持自定义的,否则默认会搜索m 阅读全文

posted @ 2024-04-20 08:00 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

dremio 25.0 maven ce 依赖官方已经发布

摘要: 以前写过如何基于软件包的jar 实现maven 依赖的重构,目前官方ce 依赖的包已经发布了,可以直接使用了 参考资料 https://www.cnblogs.com/rongfengliang/p/18129848 阅读全文

posted @ 2024-04-20 07:17 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

dremio dbt ref 内部处理简单说明

摘要: dremio dbt 内部对于ref 进行了重写,可以实现一些灵活的扩展 参考处理 ref 参考实现 dbt/include/dremio/macros/builtins/builtins.sql 对于ref 进行了一些调整,可以进行一些自定义操作,核心是对于模型格式化的定义 {%- macro r 阅读全文

posted @ 2024-04-20 00:17 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

2024年4月19日

npm 下载npm tar 包

摘要: 主要记录下如何使用npm 的pack 命令,快速下载npm repo 中的tar 包,方便项目使用 参考处理 参考命令 npm pack @lakehouse-rs/flight-sql-client-linux-x64-gnu@0.0.7 效果 说明 当然也可以通过npm 的json api 格式 阅读全文

posted @ 2024-04-19 22:53 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

dremio dbt 模型处理简单说明

摘要: dremio dbt adapter 在设计的时候与传统adapter 稍有不同,比如里边调整了database 名称的处理,同时因为dremio 的特殊性 对于物化的处理是先物化然后创建一个视图(table 模式的) 对于我们实际使用到的数据是在dremio 的space (或者nessie 数据 阅读全文

posted @ 2024-04-19 06:59 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

2024年4月18日

graalvmjs 24.0.1 nodejs 镜像

摘要: graalvmjs 已经支持jdk 22了,基于官方提供的更新了新版本的docker 镜像,方便使用 Dockerfile FROM debian:bullseye-backports LABEL author="rongfengliang" LABEL email="1141591465@qq.c 阅读全文

posted @ 2024-04-18 12:03 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

dremio SchemaMutability 简单说明

摘要: dremio SchemaMutability 属于一个枚举,定义了schema 的可变性能力() 参考定义 public enum SchemaMutability { @Tag(1) ALL(true, true, true, true), @Tag(2) NONE(false, false, 阅读全文

posted @ 2024-04-18 11:50 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

casl 同构授权js 框架

摘要: casl 同构授权js 框架,提供了web前端以及后端的集成支持(使用相同的api ) 包含的特性 多功能 灵活的基于subject 以及属性的授权处理 同构 同时支持前端以及后端 类型安全 基于ts 开发 小巧 压缩之后只有6kb 声明式的 基于声明式的可以灵活的进行规则的共享,包含了ui,api 阅读全文

posted @ 2024-04-18 11:49 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

lightdash 对于headless browser的使用

摘要: 对于slack 的unfurl lightdash 使用了headless browser,以下说明下内部处理 参考图 此图来自官方文档,可以看出主要包含了调度以及slack 的 内部实现 实际上就是对于 unfurl 的图片处理部分,里边包含了cookie处理(安全)以及对于请求进行拦截(核心也是 阅读全文

posted @ 2024-04-18 11:49 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

browserless 对于延迟加载图片的处理

摘要: 日常中大家为了提高web的性能基于可见区的图片加载基本常见,但是对于基于puppeteer的快照以及pdf生成就不太方便了,以下是一个解决方法,核心是过去内容的高度,基于代码进行滚动,模拟人的操作实现资源的加载 参考实现 const express = require("express"); con 阅读全文

posted @ 2024-04-18 11:48 荣锋亮 阅读(5) 评论(0) 推荐(0) 编辑

browserless 屏幕捕捉以及pdf 导出简单试用

摘要: 基于browserless 以及puppeteer 我们可以快速的进行屏幕捕捉生成图片以及导出pdf 文件,以下是一个简单的试用 环境准备 docker-compose version: "3" services: app: image: browserless/chrome:latest port 阅读全文

posted @ 2024-04-18 11:48 荣锋亮 阅读(4) 评论(0) 推荐(0) 编辑

browserless 部署无头浏览器到docker中的工具

摘要: browserless 部署无头浏览器到docker 中的工具 包含的特性 支持可配置的并行以及请求队列 开箱即用的字体支持 debug 视图支持 交互式的puppeteer 调试器 支持puppeteer 以及playwright 支持基于websocket 以及rest api 的请求控制(可以 阅读全文

posted @ 2024-04-18 11:48 荣锋亮 阅读(10) 评论(0) 推荐(0) 编辑

dbt flags 变量简单说明

摘要: 通过flags 可以使用dbt cli 的一些参数,比较常用的是对于增量物化处理的场景 参考使用 {% if flags.FULL_REFRESH %} drop table ... {% else %} -- no-op {% endif %} 说明 支持的参数都在flags 中可以看看,一些db 阅读全文

posted @ 2024-04-18 09:14 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

dbt adapter macro 简单说明

摘要: dbt 的adapter macro 提供了方便的在macro 中对于db 操作的能力,让macro 具有了动态能力,默认包含了不少实现 而且在不少dbt 项目中经常看到 参考使用 结合了api 这个macro 提供了能力,进行ddl 的维护 {%- set target_relation = ap 阅读全文

posted @ 2024-04-18 06:41 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

2024年4月17日

dremio FormatCreator 简单说明

摘要: FormatCreator 的核心职责就是进行Format plugin 的创建 核心提供的能力 如下图,目前核心是为FileSystemPlugin 提供格式化处理的能了(包含了格式识别,数据预览,格式插件查找,创建格式插件) 构造函数初始化 默认是基于了动态类发现以及加载进行系统FormatPl 阅读全文

posted @ 2024-04-17 19:49 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

dremio No enum constant com.dremio.common.types.TypeProtos.MinorType.TIMESTAMPMICRO 问题简单说明

摘要: 现象 此问题一般出现了我们对于数据源的物理表进行了反射(源表包含时间戳类型的数据),但是我们希望直接使用反射里边的parquet 文件格式数据,此时使用预览默认是可以读取parquet 数据的,但是当我们实际查询的时候发现可能提示此问题 参考异常调用链 VALIDATION ERROR: No en 阅读全文

posted @ 2024-04-17 19:49 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

kuto 大型js 项目快速更新的一个工具

摘要: kuto 这个工具比较有意思,可以将大型js 项目的js bundler 进行拆分,这样用户就可以下载更少的资源了,提升加载速度 kuto 的处理机制 第一次构建的时候 kuto 可以将源js 拆分为maina 以及一个正常的大的corpus corpus 没有副作用,同时这个corpus 是可以c 阅读全文

posted @ 2024-04-17 08:00 荣锋亮 阅读(7) 评论(0) 推荐(0) 编辑

dremio 一个元数据刷新问题

摘要: 以前关于dremio 元数据刷新的也简单介绍过,最近发现dremio 新版本(从24.1 版本开始)有一些调整,废弃了,所有数据集的刷新配置 只支持基于查询的元数据刷新,一些关于此调整一些说明 好处 减少了元数据刷新的时间以及对于查询的影响,可以让查询阶段的元数据处理更快了(核心是减少查询处理) 减 阅读全文

posted @ 2024-04-17 00:16 荣锋亮 阅读(5) 评论(0) 推荐(0) 编辑

2024年4月16日

dbt-checkpoint 源码结构简单说明

摘要: 前边说过dbt-checkpoint 是基于dbt 的元数据解析,然后集合规则进行check,属于一个pre-commit 插件,以下简单说明下内部实现 配置 核心是 .pre-commit-hooks.yaml文件,一个标准的pre-commit 定义 内容 核心是id,name,entry,la 阅读全文

posted @ 2024-04-16 19:39 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

自定义pre-commit 开发格式简单说明

摘要: 内容来自官方文档,主要是简单说明下,方便学习 约定 git 项目需要包含.pre-commit-hooks.yaml 文件,里边内容格式如下 - id: trailing-whitespace name: Trim Trailing Whitespace description: This hook 阅读全文

posted @ 2024-04-16 19:39 荣锋亮 阅读(6) 评论(0) 推荐(0) 编辑

dbt-checkpoint 确保dbt 项目质量的pre-commit hooks 工具

摘要: dbt-checkpoint 实际上属于pre-commit hooks plugin 实现了不少hooks 可以用来提升dbt 项目的模型质量内部处理上实际是对于dbt 的元数据进行解析,当然dbt-checkpoint 也提供了不少其他扩展 目前包含的hooks 只大概说明下,详细的后边介绍下, 阅读全文

posted @ 2024-04-16 19:38 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

pre-commit 多语言pre-commit hooks 框架

摘要: pre-commit 多语言pre-commit hooks 框架 基于python 开发,功能很强大 参考使用 安装 pip install pre-commit 添加配置 .pre-commit-config.yaml repos: - repo: https://github.com/pre- 阅读全文

posted @ 2024-04-16 19:38 荣锋亮 阅读(2) 评论(0) 推荐(0) 编辑

dbt 项目依赖文件加载处理简单说明

摘要: 核心是通过ManifestLoader 的load 方法中通过调用ReadFilesFromFileSystem 处理的,以前简单说明dbt 的一些任务执行是需要先生成manifest文件(比如run) 此任务数据的预处理是通过装饰器 ReadFilesFromFileSystem 类 @datac 阅读全文

posted @ 2024-04-16 08:00 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

2024年4月15日

dbt CompileTask 简单说明

摘要: 以前简单介绍过dbt 的manifest Compiler 模块,以下说明下dbt 的CompileTask cli task 作用 核心是对于解析生成的Manifest 进行编译,同时还会对于编译结果写入target 目录,同时还需要进行db 链接进行一个check 处理(比如schema 信息获 阅读全文

posted @ 2024-04-15 00:58 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

2024年4月14日

jinja2 通过添加自定义parser实现macro的名称调整

摘要: 实际上是dbt 在设计macro 中的一个技巧,比较有意思,对于系统或者三方包开发的macro 添加自己prefix 比如,原始macro name 为dremio__alter_column_type dbt 会将解析的macro 添加一个dbt_macro__的前缀为 dbt_macro__dr 阅读全文

posted @ 2024-04-14 06:46 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

2024年4月13日

windmill Airplane&Superblocks&Retool&Prefect&Airflow 可选工具

摘要: 现在调度工具是越来越多了,而且集成的能力也越来越强大了windmill 是一个很不错的workflow 调度平台功能很强大 特性 可扩展的执行runtime,支持跨语言代码执行 强大的调度器,支持基于低代码以及yaml 模式 通过app builder 使用低代码或者js 框架开发面向数据的dash 阅读全文

posted @ 2024-04-13 09:12 荣锋亮 阅读(3) 评论(0) 推荐(0) 编辑

dbt macro 名称获取简单说明

摘要: dbt common 包中包含了一个工具模块可以进行macro 的组合 参考代码 可以看出主要是进行组合的,属于一个格式,对于后续任务执行的macro 处理需要使用 from dbt_common.exceptions import DbtInternalError # dbt 对于macro 会默 阅读全文

posted @ 2024-04-13 00:07 荣锋亮 阅读(5) 评论(0) 推荐(0) 编辑

导航