SQLMesh 系列教程8- 详解 seed 模型

在数据分析和建模过程中,外部模型(External Models)在 SQLMesh 中扮演着重要角色。外部模型允许用户引用外部数据源或现有数据库表,从而实现灵活的数据整合和分析。本文将介绍外部模型的定义、生成方法(包括使用 CLI 和 YAML 文件)、审计功能,以及如何在实际项目中应用外部模型。通过一个具体的示例,我们将展示如何定义和使用外部模型来分析客户数据,帮助用户更好地理解和利用 SQLMesh 的强大功能。

外部模型(External Models)定义

在 SQLMesh 中,外部模型(External Models)是指那些引用外部数据源或现有数据库表的模型。这些模型允许用户将外部数据集整合到 SQLMesh 的数据管道中,从而实现更灵活的数据处理和分析。外部模型通常用于连接和使用已经存在的数据,而无需在 SQLMesh 中重新定义这些数据。
在这里插入图片描述

如何生成外部模型

1. 使用 CLI 生成外部模型

SQLMesh 提供了命令行界面(CLI),用户可以通过 CLI 命令来创建和管理外部模型。以下是一个基本的命令示例,用于生成外部模型:

sqlmesh create external --name customers --source external_database.customers

这个命令会创建一个名为 customers 的外部模型,引用 external_database 中的 customers 表。

2. 使用 YAML 文件定义外部模型

SQLMesh 还支持通过 YAML 文件定义外部模型。用户可以在 YAML 文件中指定外部模型的名称和数据源。以下是一个示例 YAML 文件:

# models/external/customers.yaml
version: 1
models:
  - name: customers
    type: external
    source: external_database.customers

通过这种方式,用户可以更直观地管理外部模型的定义。

外部模型审计

SQLMesh 提供了审计功能,允许用户跟踪外部模型的使用情况和变更。这对于在内部模型评估之前检查上游依赖项的数据质量非常有用。

这个例子展示了一个带有两个审计的外部模型。

- name: raw.demographics
  description: Table containing demographics information
  audits:
    - name: not_null
      columns: "[customer_id]"
    - name: accepted_range
      column: zip
      min_v: "'00000'"
      max_v: "'99999'"
  columns:
    customer_id: int
    zip: text

用户可以通过 SQLMesh 的 CLI 命令查看外部模型的状态和历史记录。例如,使用以下命令可以查看外部模型的审计信息:

sqlmesh audit external --name customers

这个命令将显示与 customers 外部模型相关的所有变更和使用记录,帮助用户了解模型的使用情况。

实际示例

假设我们在一个数据分析项目中,需要分析来自不同数据源的客户数据。我们可以使用外部模型来整合这些数据。

  1. 定义外部模型:我们可以使用 YAML 文件定义外部模型,如下所示:
# models/external/customers.yaml
version: 1
models:
  - name: customers
    type: external
    source: external_database.customers
  1. 生成外部模型:通过 CLI 命令或直接使用 YAML 文件,SQLMesh 将会识别并生成外部模型。
  2. 查询外部数据:在 SQLMesh 中,我们可以使用这个外部模型进行查询和分析。例如,我们可以创建一个分析模型,计算客户的订单总额:
-- models/analysis/customer_orders.sql
SELECT
    c.id AS customer_id,
    c.name AS customer_name,
    SUM(o.amount) AS total_orders
FROM
    external.customers c
JOIN
    external.orders o ON c.id = o.customer_id
GROUP BY
    c.id, c.name

详细解释示例

在上述示例中,外部模型 customers.yaml 允许我们直接访问外部数据库中的客户数据。通过将外部模型与其他数据模型结合使用,我们可以进行复杂的数据分析。

  • 数据整合:外部模型使得不同数据源的数据整合变得简单。用户可以轻松地将外部数据与 SQLMesh 中定义的数据结合,进行更全面的分析。
  • 灵活性:使用外部模型,用户可以灵活地引用和使用现有的数据,而无需担心数据的重复定义和管理。
  • 审计功能:通过 SQLMesh 的审计功能,用户可以跟踪外部模型的使用情况,确保数据的透明性和可追溯性。

通过外部模型,SQLMesh 提供了一种高效的方式来整合和分析来自不同来源的数据,帮助用户更好地利用现有的数据资源。

最后总结

外部模型为 SQLMesh 提供了强大的数据整合能力,使得用户能够轻松地引用和使用现有的数据源。通过 CLI 和 YAML 文件,用户可以方便地定义外部模型,并利用 SQLMesh 的审计功能跟踪模型的使用情况。在实际项目中,外部模型的灵活性和可扩展性使得数据分析变得更加高效。通过本文的示例,我们展示了如何在数据分析项目中应用外部模型,整合来自不同来源的数据,为决策提供支持。总之,外部模型是 SQLMesh 中不可或缺的组成部分,为数据管理和分析提供了强有力的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/975360.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《微软量子芯片:开启量子计算新纪元》:此文为AI自动生成

量子计算的神秘面纱 在科技飞速发展的今天,量子计算作为前沿领域,正逐渐走进大众的视野。它宛如一把神秘的钥匙,有望开启未来科技变革的大门,而微软量子芯片则是这把钥匙上一颗璀璨的明珠。 量子计算,简单来说,是一种遵循量子力学规律调控量子信息单元进行计算的新型计算…

使用FFmpeg将PCMA格式的WAV文件转换为16K采样率的PCM WAV文件

使用FFmpeg将PCMA格式的WAV文件转换为16K采样率的PCM WAV文件 一、FFmpeg 简介二、PCMA 格式简介三、PCM 格式简介四、转换步骤五、注意事项六、总结在当今的数字音频处理领域,FFmpeg 无疑是一款功能强大的多媒体处理工具。它能够处理几乎所有格式的音频和视频文件,包括将特定…

【JavaEE进阶】#{}和${}

🍃前言 MyBatis参数赋值有两种⽅式,使⽤ #{} 和 ${}进⾏赋值,接下来我们看下⼆者的区别 🌳#{}和${}使⽤ 我们先来看一下两者在基础数据类型与string类型下的使用 🚩Interger类型的参数(基础数据类型) &#x1f3c…

【JavaEE进阶】图书管理系统 - 贰

目录 🌲前言 🎄设计数据库 🍃引⼊MyBatis和MySQL驱动依赖 🌳Model创建 🎍约定前后端交互接口 🍀服务器代码 🚩控制层 🚩业务层 🚩数据层 🌴前端代码…

cline通过硅基流动平台接入DeepSeek-R1模型接入指南

为帮助您更高效、安全地通过硅基流动平台接入DeepSeek-R1模型,以下为优化后的接入方案: DeepSeek-R1硅基流动平台接入指南 📌 核心优势 成本低廉:注册即送2000万Tokens(价值约14元)高可用性:规…

Maven——Maven开发经验总结(1)

摘要 本文总结了 Maven 开发中的多个关键经验,包括如何根据版本号决定推送到 releases 或 snapshots 仓库,如何在构建过程中跳过测试,父项目如何控制子项目依赖版本,父项目依赖是否能传递到子项目,如何跳过 Maven dep…

【微服务优化】ELK日志聚合与查询性能提升实战指南

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

Windows 中的启动项如何打开?管理电脑启动程序的三种方法

在日常使用电脑时,我们经常会发现一些应用程序在开机时自动启动,这不仅会拖慢系统的启动速度,还可能占用不必要的系统资源。幸运的是,通过几个简单的步骤,你可以轻松管理这些开机自启的应用程序。接下来,我…

【Linux网络】认识协议(TCP/UDP)、Mac/IP地址和端口号、网络字节序、socket套接字

⭐️个人主页:小羊 ⭐️所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 1、初识协议2、UDP、TCP3、Mac、IP地址4、端口号5、网络字节序6、socket 1、初识协议 协议就是一种约定。如何让不同厂商生产的计…

【架构思维基础:如何科学定义问题】

架构思维基础:如何科学定义问题 一、问题本质认知 1.1 问题矛盾 根据毛泽东《矛盾论》,问题本质是系统内部要素间既对立又统一的关系。例如: 电商系统矛盾演变: 90年代:商品供给不足 vs 消费需求增长00年代&#x…

jetbrains IDEA集成大语言模型

一、CodeGPT ‌CodeGPT‌是由CSDN打造的一款生成式AI产品,专为开发者量身定制。它能够提供强大的技术支持,帮助开发者在学习新技术或解决实际工作中的各种计算机和开发难题‌1。 idea集成 1.在线安装:直接在线安装 2.离线安装 JetBrains Mar…

华为guass在dbever和springboot配置操作

下面记录华为guass在dbever和springboot配置操作,以备忘。 1、安装dbeaver-ce-23.2.0-x86_64-setup.exe和驱动程序 Download | DBeaver Community 2、配置高斯数据库驱动 3、新建数据库连接 4、操作指引 opengauss官方文档 https://docs-opengauss.osinfra.cn/zh…

web的分离不分离:前后端分离与不分离全面分析

让我们一起走向未来 🎓作者简介:全栈领域优质创作者 🌐个人主页:百锦再新空间代码工作室 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[1504566…

近10年气象分析(深度学习)

这是一个气象数据分析程序,主要用于分析和可视化气象数据。以下是该文件的主要功能: 1. 数据加载 在线数据:尝试从 GitHub 加载气象数据。 示例数据:如果无法加载在线数据,程序会自动生成示例数据。 2. 数据分析 …

GStreamer源码安装1.24版本

从官网下载 1.24的源码包 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/1.24?ref_typeheads#getting-started ,尝试过使用git clone 的方式,但速度贼慢,就选择了下载源码包的方式安装依赖 sudo apt install libssl-dev g me…

Vue面试2

1.跨域问题以及如何解决跨域 跨域问题(Cross-Origin Resource Sharing, CORS)是指在浏览器中,当一个资源试图从一个不同的源请求另一个资源时所遇到的限制。这种限制是浏览器为了保护用户安全而实施的一种同源策略(Same-origin p…

毕业项目推荐:基于yolov8/yolo11的水稻叶片病害检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

DeepSeek写贪吃蛇手机小游戏

DeepSeek写贪吃蛇手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端贪吃蛇H5文件: 要求 蛇和食物红点要清晰,不超过屏幕外 下方有暂停和重新…

C/C++跳动的爱心

系列文章 序号直达链接1C/C李峋同款跳动的爱心2C/C跳动的爱心3C/C经典爱心4C/C满屏飘字5C/C大雪纷飞6C/C炫酷烟花7C/C黑客帝国同款字母雨8C/C樱花树9C/C奥特曼10C/C精美圣诞树11C/C俄罗斯方块小游戏12C/C贪吃蛇小游戏13C/C孤单又灿烂的神14C/C闪烁的爱心15C/C哆啦A梦16C/C简单…

深入理解 JSP 与 Servlet:原理、交互及实战应用

一、引言 在 Java Web 开发领域,JSP(JavaServer Pages)和 Servlet 是两个至关重要的技术,它们共同构成了动态网页开发的基础。Servlet 作为服务器端的 Java 程序,负责处理客户端请求并生成响应;而 JSP 则是一种简化的 Servlet 开发方式,允许开发者在 HTML 页面中嵌入 J…