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

注册安全工程师好考吗难度大吗北京搜索引擎优化seo

注册安全工程师好考吗难度大吗,北京搜索引擎优化seo,建设网站专业公司吗,一个公司设计网站怎么做dbt项目采用工程化思维,数据模型分层实现,支持描述模型文档和测试,非常适合大型数据工程项目。但也需要用户编写大量yaml描述文件,这个过程非常容易出错且无聊。主要表现: 手工为dbt模型编写yaml文件,这过…

dbt项目采用工程化思维,数据模型分层实现,支持描述模型文档和测试,非常适合大型数据工程项目。但也需要用户编写大量yaml描述文件,这个过程非常容易出错且无聊。主要表现:

  • 手工为dbt模型编写yaml文件,这过程可能会导致错误和拼写失误。
  • 手工编写yaml文件非常耗时,特别是在包括很多模型的大型项目中。
  • 当数据模型发生变化时,更新yaml文件可能是一件令人头痛的事情。
  • 确保所有yaml文件看起来一致,并遵循相同的最佳实践具有挑战性。

dbt-codegen简介

dbt-lab提供了 dbt-codegen工具包,实现一组宏,用于dbt代码并在命令行中输出结果。Codegen旨在为dbt模型自动生成YAML文件,解决与手动创建文件的痛点挑战。Codegen是如何解决这些问题的:

  • Codegen自动化YAML文件创建的整个过程。它基于dbt模型生成YAML配置,减少了手动干预的需要。这大大节省了时间,并最大限度地减少了错误的风险。

  • 通过自动生成YAML文件,Codegen确保了所有dbt模型的一致性和标准化。它遵循预定义的规则和模板,消除了配置差异的可能性。

  • Codegen具有高度可扩展性,允许你有效地管理许多dbt模型。随着数据转换需求的增长,Codegen适应规模,为处理众多模型和配置提供无缝解决方案。

实现过程如下:

Codegen通过分析dbt模型并提取相关信息以生成YAML文件,过程包括:

  • Codegen分析dbt模型,提取列名、数据类型和关系等细节。然后基于分析结果生成YAML配置,包括模型、列和关系。
  • Codegen应用预定义模板,确保标准化配置和一致性,最终输出是一组可以在dbt项目中使用的YAML文件配置信息。

完整功能列表:

  • generate_source (source)
  • generate_base_model (source)
  • create_base_models (source)
  • base_model_creation (source)
  • generate_model_yaml (source)
  • generate_model_import_ctes (source)

dbt-codegen实战

我们看到该包可用于为源和模型列表生成YAML,此外还可以用于为源的基本模型生成SQL。下面介绍几个常用的代码生成功能。读者可以在上文介绍的入门项目中测试。

安装

packages:  - package: dbt-labs/dbt_utils    version: 1.3.0  - package: dbt-labs/codegen    version: 0.12.1

运行dbt deps安装包。安装成功后,包文件将被安装到dbt_packages目录下。

示例1: 生成schema.yml

在命令行运行,直接输出到控制台:

dbt run-operation generate_source --args 'schema_name: shop'# 多个参数
dbt run-operation generate_source --args '{"schema_name": "shop", "database_name": "raw", "table_names":["table_1", "table_2"]}'

也可以直接输出到文件:

dbt --quiet run-operation generate_source --args '{"table_names": ["orders"]}' > models/staging/jaffle_shop/_sources.yml

还可以编码方式执行,拷贝宏代码至DBT项目中, 因为是一次性任务,可以放置analysis 目录下, 然后编译代码:

{{ codegen.generate_source('raw_jaffle_shop') }}
# 包括多个参数
{{ codegen.generate_source(schema_name= 'jaffle_shop', database_name= 'raw') }}

生成结果大致如下:

version: 2sources:- name: shopdatabase: rawschema: shoptables:- name: customersdescription: ""- name: ordersdescription: ""- name: paymentsdescription: ""

示例2: 生成模型yaml文件

  • model_names (required): The model(s) you wish to generate YAML for.
  • upstream_descriptions (optional, default=False): Whether you want to include descriptions for identical column names from upstream models and sources.
  • include_data_types (optional, default=True): Whether you want to add data types to your model column definitions.
dbt run-operation generate_model_yaml --args '{"model_names": ["customers"]}'

生成结果:

version: 2models:- name: customersdescription: ""columns:- name: customer_iddata_type: integerdescription: ""- name: customer_namedata_type: textdescription: ""

当然也可以在analyse模型中编码方式生成:

{{ codegen.generate_model_yaml(model_names=['customers']
) }}

还可以使用辅助函数代码。Get_models并指定一个目录和/或前缀,以获得所有匹配模型的列表,这些模型将被传递到model_names列表中。

{% set models_to_generate = codegen.get_models(directory='marts', prefix='fct_') %}
{{ codegen.generate_model_yaml(model_names = models_to_generate
) }}

助手方法可以在源码中找到,请参考下面截图:
在这里插入图片描述

总结

本文介绍dbt-codegen工具,它可以帮助我们快速生成dbt模型描述文件、生成源等代码。我们介绍多种生成方式,包括命令行和分析模型代码等,有想法的读者还可以考虑编写vscode插件实现。更多示例及详细文档,可以参照官方文档。

http://www.hkea.cn/news/307630/

相关文章:

  • 淄博市 网站建设报价郑州seo外包阿亮
  • 网络服务商是指什么网站优化排名工具
  • 网站优化的分析比较好的品牌策划公司有哪些
  • 国外比较好的资源网站电商运营推广是做什么的
  • 佛山房地产网站建设seo实战培训王乃用
  • 如何做可以赚钱的网站关键词如何快速排名
  • 深圳品牌做网站公司有哪些百度app推广
  • 重庆建设行业信息网站搜狗登录入口
  • 同仁行业网站建设报价北京做的好的seo公司
  • 陕西自助建站做网站郑州外语网站建站优化
  • 小型企业网站系统cilimao磁力猫最新版地址
  • 铁岭网站建设移动网站广东网站seo
  • 网站模板插件sem和seo
  • 用wordpress制作网站模板沈阳seo
  • 优化一个网站多少钱宜昌网站seo
  • 刚做的网站怎么才能搜索到枸橼酸西地那非片功效效及作用
  • 罗湖区网站公司专业模板建站
  • 哪有备案好的网站国产系统2345
  • 网站开发怎么让别人看到最新营销模式有哪些
  • ssm网站开发源码百度推广多少钱一个月
  • 手游门户网站建设appstore关键词优化
  • 齐河网站开发seo服务内容
  • 北京微信网站建设费用想卖产品怎么推广宣传
  • 网站上线的步骤厦门网站推广公司哪家好
  • 网站做app的软件有哪些百度一下你就知道下载
  • 界面设计的重要性百度seo关键词排名推荐
  • 股票做T网站直播营销
  • 北京手机网站建设公司排名技术优化seo
  • wordpress可爱的主题seo优化教程
  • 自己可以申请网站做外卖吗网站描述和关键词怎么写