当前位置: 首页 > wzjs >正文

自己做网站 如何推广那里可以做app网站

自己做网站 如何推广,那里可以做app网站,安徽做网站公司哪家好一点,汕头网站建设开发各种工具都已将软件工程实践引入到数据工程中,但仍有差距存在,尤其是在测试和工作流等领域。SQLMesh 的目标是在这些领域开辟新的天地,解决像 dbt 这样的竞争产品尚未提供强大解决方案的难题。在这篇文章中,我将对 SQLMesh 进行简…

各种工具都已将软件工程实践引入到数据工程中,但仍有差距存在,尤其是在测试和工作流等领域。SQLMesh 的目标是在这些领域开辟新的天地,解决像 dbt 这样的竞争产品尚未提供强大解决方案的难题。在这篇文章中,我将对 SQLMesh 进行简要介绍,分享有关其功能和潜在影响的见解。

安装SQLMesh

上文我们已经创建了示例SQLMesh项目,你可以使用它来学习本文中的示例。

python3 -m venv .venv
source .venv/bin/activate# SQLMesh uses extras to install specific modules that are used in the project. 
# This allows you to quickly extend SQLMesh with the desired capabilities 
# and at the same time ensure a lean footprint.
pip install "sqlmesh[postgres,web]"

项目结构介绍

如果你以前使用过dbt,那么您会对SQLMesh项目框架感到熟悉。开发人员已经确保SQLMesh与dbt向后兼容,允许现有dbt项目的无缝迁移。

  • config.yml - 在您的项目的根目录下,您会发现一个简洁明了的基于 YAML 格式的 SQLMesh 配置文件。此文件内容简短,主要侧重于设置网关(多个网关时)以及定义模型的默认 SQL 语言。
  • Audits - 验证数据是一项至关重要的功能,它应当让数据的生产者和消费者都确信数据符合预期。dbt 也提供了类似的功能,称为“数据测试”。
  • macros - 现在被视为标准的一项功能是能够通过编程式的函数(例如 if 语句、for 循环和筛选表达式)增强静态 SQL 语句。这种功能通常通过宏系统来实现,比如在 dbt 中使用 Jinja,这是一个流行的基于 Python 的模板引擎。SQLMesh 也支持 Jinja,但更进一步提供了自己的宏系统。与简单的字符串替换不同,它解释 SQL 语义,使其成为更强大和灵活的工具。在我看来,这种新增的能力不仅因其优雅的语法而值得称赞,还因其强大的功能而如此,值得肯定。
  • Models- SQLMesh 在定义数据模型方面与众不同的地方在于其如何管理元数据。它并非像其他工具那样使用单独的 YAML 文件,而是直接在 SQL 代码中定义元数据。在我的测试中,我发现这种方法特别直观且对开发者友好,使得建模过程更加顺畅和高效。
    • 原始数据集(Seeds) - 尽管这种情况可能不常见,但我们都知道它迟早会发生的:整合基于 CSV 或 JSON 的数据集。为了解决这个问题,SQLMesh 与 dbt 一样,包含了对原始数据集的支持。在 SQLMesh 中,数据集文件存储在指定的文件夹中,然后在 Models 文件夹中定义相应的模型。
  • 测试(tests) - 我完全赞同 SQLMesh 在为数据建模实现单元测试方面的做法。它并非采用传统的审计方式,而是侧重于一种直接的输入与输出对比检查,这种检查能够快速且轻松地执行,且无需依赖大量资源。这种方法不仅加快了反馈流程,还为数据工程师提供了实用的工具,使他们能够在数据的背景下采用诸如测试先行开发之类的概念。自 1.8 版本起,dbt 还提供了“单元测试”。

SQLMesh核心机制

这是SQLMesh的另一个真正优势所在。开发人员已经解决了数据集开发中的一个关键挑战:管理数据模型的多个版本。SQLMesh引入了虚拟数据环境的概念,它在两个层面上运行:物理和虚拟。

SQL Mesh Engine├── 物理层:数据库仓库 + 快照存储├── 虚拟层:环境隔离视图 + 版本映射├── 元数据引擎:指纹计算 + 依赖解析└── 测试引擎:快照验证 + 自动回滚

在这里插入图片描述

在物理层面,当一个新项目启动并首次执行计划时,会为每个模型创建一个快照(版本 1)。在所有测试和审计成功完成后,虚拟层面就会发挥作用。会为相应的环境创建一个视图,指向最新的快照。这种方法确保了有效的版本管理以及无缝的更新。

# sqlmesh plan [environment name]
# if you provide no name it will by default use "prod" as environment.
sqlmesh plan

当显式指定环境时,例如“dev”,流程将为dev创建虚拟层,并将视图指向模型的最新快照版本。

sqlmesh plan dev

当对模型进行修改时,SQLMesh 会采用一套复杂的指纹识别系统,该系统不仅会分析模型本身,还会分析整个依赖树。这确保了所有受影响的模型都得到了验证。如果该变更首先在“开发”环境中应用,那么在成功测试和审核后会创建一个新的快照版本,并且“开发”环境中的视图指针会被更新到新的版本。
如果出现操作错误,只需执行一个命令即可轻松回滚到之前的快照版本,无需重新处理数据。这真是太巧妙了!

sqlmesh rollback

如果你想知道那些不再使用的旧快照会怎样处理,那么 SQLMesh 提供了一个解决方案:一个名为“Janitor”的垃圾回收器。此进程会在每次计划执行时自动运行,或者在需要时通过 CLI 命令手动触发运行。

sqlmesh janitor

最后总结

为了提升数据工程的质量,采用成熟的软件工程实践和原则至关重要。SQLMesh 在这方面取得了显著进展,引入了诸如虚拟数据环境等创新概念。我还赞赏其通过单元测试方法来提高测试效率的专注点。在实际操作中,我发现以 YAML 格式定义模拟对象并快速有效地验证 SQL 模型的逻辑特别方便,而且无需依赖大量资源。

然而,就像任何进入成熟市场的新竞争者一样,SQLMesh 必须在行业领导者 dbt 的竞争中证明自己的实力。尽管我认为 SQLMesh 具有强大的潜力能够确立稳固的地位,但 dbt 的大量使用者是否会转向 SQLMesh 还有待观察。话虽如此,我建议你仔细研究一下 SQLMesh 的理念,并评估其可能为组织带来的价值。

http://www.dtcms.com/wzjs/562134.html

相关文章:

  • 网站制作软件dw怎么做网站卖产品
  • 大众点评做团购网站泉州手机网站建设
  • 网站建设技术人员工作平面广告设计图片海报
  • 凡科建站相关链接晋江网站建设公司哪家好
  • 用ssh做网站app网页设计网站
  • 顺德网站建设信息推广网站的步骤
  • 郴州市住房和城乡建设局网站有哪些推广平台和渠道
  • 天津知名网站建设公司济南 网站建设
  • 电子商务网站软件建设核心哪个网站可以做店招店标轮播
  • 淘宝客模板 带程序自动采集 淘宝客网站源码 最新懒人淘宝客源码杭州公司做网站
  • 专业做网站+上海网络销售每天做什么
  • 视频网站是如何做的网站怎么提升流量
  • 电子商务中网站建设wordpress 设置404页面模板
  • 站长工具seo综合查询可以访问wordpress怎么发布文章带图片
  • 答辩学网站开发wordpress自动生产
  • 网站建设免备案免费空间编程机构
  • 建设一个网站的技术可行性研究搭建是什么意思
  • 网站开发知识国内app开发商
  • 无锡网站推广外包服务电脑买编程代码做网站
  • 茂名网站建设教wordpress无法直接上传文件
  • 免费发布产品信息的网站三亚网站推广团队
  • 海口市住房和城乡建设局 网站建站之星官网 discuz
  • 扁平化企业网源码win8风格精简化源码asp带后台企业网站云科技网站建设
  • 青岛做网站建设的公司排名重庆开发网站
  • 郑州网站网络推广公司深圳福田
  • 现在最常用网站开发工具河南省水利建设管理处网站
  • 手机怎么自创网站广州市公共资源交易中心
  • 衡水网站建设浩森宇特有哪些单页网站
  • 公司网站seo公司360官网
  • 企业网站建设公司排名东光有做网站的吗