写点什么

利用 LookML 项目导入功能简化代码可复用性

  • 2020-06-17
  • 本文字数:419 字

    阅读完需:约 1 分钟

利用 LookML 项目导入功能简化代码可复用性

编写 SQL 时,分析师要经常回顾以前编写的查询,以便在适当情况下复用已经创建的代码。遗憾的是,这一存在缺陷的过程会导致复制和粘贴小的查询片段,并重新组合它们以形成新的查询。重新组合 SQL 片段并调试生成的 SQL 语句可能既耗费时间又消耗资源,易出错且扩展性差。

利用 LookML 进行 DRY 数据建模

LookML 提供一种新的高效工具,使建模更快捷、更可复用。进行数据分析时,LookML 会防止您编写重复代码。借助 LookML,只需编写一次代码段,即可将其作为更易于管理的通用、可复用查询组件。在计算机科学中,这一概念被称为 DRY(Don’t Repeat Yourself,避免重复代码),它有助于显著节省时间。据报告,使用 Looker 的分析团队能够平均节省 70% 的时间,部分原因在于采用 LookML 工具以 DRY 原则建模带来的效率提升。



图 1:通过 LookML 将 SQL 片段转换为可复用的代码


一旦编写完模型,Looker 将读取模型并在一个非编码者可访问的可视化点击式界面中呈现模型。当用户构建其查询时,Looker 在后台自动执行生成优化后 SQL 代码的复杂工作。Looker 能够使其生成的 SQL 适应 50 多种特定的数据库语言,以得到语义正确且效率最高的 SQL 查询。


在项目间共享代码

以项目形式组织的 LookML 模型是 LookML 的最高组织级容器。


例如,请考虑一下一个构建项目以描述和计算净收入的财务部门的情况。营销部门可能还要利用这一指标来确定营销活动的盈利能力。为了制定更好的决策,这两个部门协作和共享指标以实现跨整个企业一致的衡量至关重要。


幸运的是,LookML 利用众所周知的机制实现了团队间模型共享 —— 这一机制改编自编程语言的世界。该解决方案称为包管理 —— 几乎所有成熟的编程语言都具有的一个功能。


包被定义为可由另一个程序复用的代码单元(或软件)。包管理器是一个允许查找、安装、配置、更新和删除包的系统。利用包管理器,开发人员不必以人工方式执行这些任务,从而省却了工作并提高了代码一致性。


LookML 的项目导入功能将包管理原理引入您的分析模型。 项目导入允许模型开发人员无需复制和粘贴即可复用来自另一个项目的代码,从而改进模型编码的 DRY 方法并节省 LookML 开发人员的宝贵时间。

企业项目导入:“轴辐”式架构

在大型企业,Looker 部署会增长到核心数据团队不再能够管理每个部门的数据需求并且必须进行某种程度的授权的地步。拆分项目以便每个部门管理其自己的模型变得非常有利,但事实证明,要保持模型的一致性并非易事。


通过允许团队将集中的、高度治理的业务逻辑下推至每个部门的项目,项目导入解决了这一问题。这种“轴辐”(hub and spokes) 式架构在维持一个高效的 DRY 模型的同时,提供了扩展性和一致性。


在“轴辐”式架构中,一个中心数据团队管理核心项目(轴心),而每个部门管理自己的项目(辐条)。轴心包含通用业务逻辑,而辐条包含域特定逻辑。轴心逻辑通过项目导入功能导入到辐条。


借助“轴辐”式架构和项目导入,可以做到两全其美。“轴辐”架构允许每个部门利用分布式、可扩展的建模所有权按照自己的节奏运转,而项目导入可确保每个部门都“讲”相同的、源自领域专家的共享逻辑语言。

LookML Blocks® 的项目导入功能

Looker Blocks® 提供了项目导入的一大优势 —— 基于公共数据集和用例可复用的 LookML 代码单元。例如,Salesforce Block 能够被快速改编为可理解的维度和度量 —— Salesforce 模式中一些众所周知的棘手事情。分析原始 Salesforce 数据或者使用其 API 非常复杂,这使这类块具有巨大价值。


项目导入使开发人员只需引用 Block 源代码的 URL,然后立即在其项目中使用该代码。由于无需对 Block 的内容进行硬编码,开发人员可以很容易地选择更新 Block 的安装,随着 Block 变得更好,开发人员的模型也会变得更好。

了解更多信息

是否要了解更多信息并且开始进行项目导入?查看我们的文档、在社区参与对话以及订阅我们的博客,以了解重点介绍新版本功能的未来更新。

关于 Looker

Looker 是一个统一的数据平台,能够在决策时为员工提供行之有效的业务洞察。Looker 将数据整合到用户的日常工作流,使企业能够从丰富的数据获得更大价值。2000 多家行业领先的创新企业(例如,Sony、Amazon、The Economist、IBM、Etsy、Lyft 和 Kickstarter)信赖 Looker 为其数据驱动文化提供动力。Looker 公司于 2020 年 2 月正式加入 Google Cloud。要了解更多信息,请通过以下方式与我们联系:LinkedIn、Twitter、Facebook 和 YouTube 或者访问 looker.com。


2020-06-17 17:561449

评论

发布
暂无评论
发现更多内容

说说节奏感

Justin

方法论 28天写作

12 张图 | 深入理解 Eureka三层缓存架构

悟空聊架构

缓存 Eureka 28天写作 悟空聊架构 12月日更

【HarmonyOS 专题】01 基础 Mac 环境安装配置

阿策小和尚

HarmonyOS 28天写作 Android 小菜鸟 12月日更

Prometheus Exporter (十八)Graphite Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 Graphite

团队基建系列 - 组织知识传承 1

搬砖的周狮傅

团队成长

使用 javap 分析 Java 的字符串操作

汪子熙

Java jdk 28天写作 12月日更 javac

【量化】资产组合理论:鸡蛋不能放在一个篮子里

恒生LIGHT云社区

量化投资 量化

喜报 | 旺链科技获批张江国家自主创新示范区专项发展资金!

旺链科技

区块链 数字经济 产业区块链

有了六顶思考帽,从此告别无效争吵

Ian哥

项目管理 28天写作 项目管理工具 六顶思考帽

Flutter开发:TextField常用属性的使用

三掌柜

28天写作 12月日更

大厂算法面试之leetcode精讲23.并查集

全栈潇晨

算法 LeetCode

react源码解析17.context

buchila11

React React Hooks

react源码解析18事件系统

buchila11

React React Hooks

Git进阶(十一):Git 常用操作汇总

No Silver Bullet

git 12月日更

MySQL 连接数过多的处理方法合集 - ERROR 1040 Too many connections - 卡拉云

蒋川

MySQL MySQL 数据库

全网最全-混合精度训练原理

科技热闻

Flutter 动画【Flutter专题16】

坚果

flutter 28天写作 签约计划第二季 12月日更

大厂算法面试之leetcode精讲24.其他类型题

全栈潇晨

算法 LeetCode

【LeetCode】截断句子Java题解

Albert

算法 LeetCode 12月日更

聊聊 Kafka: 在 Linux 环境上搭建 Kafka

老周聊架构

签约计划第二季 2月月更

Prometheus Exporter (十九)Collectd Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 Collectd

Go语言学习查缺补漏ing Day4

恒生LIGHT云社区

编程语言 Go 语言

网络协议之:基于UDP的高速数据传输协议UDT

程序那些事

TCP 网络协议 udp 程序那些事 12月日更

Linux云计算架构师:Linux全套实战学习资料

侠盗安全

Linux linux运维 运维工程师 云计算架构师 linux电子书

模块一学习总结

whoami

「架构实战营」

从微服务架构的现状和未来看学习路径

博文视点Broadview

拖延

Nydia

模块1作业

miliving

使用javap深入理解Java整型常量和整型变量的区别

汪子熙

Java jdk 28天写作 12月日更 javap

学python,怎么能不学习scrapy呢,这篇博客带你学会它

梦想橡皮擦

12月日更

对话中国人寿:DevOps实践经验分享

龙智—DevSecOps解决方案

DevOps 中国人寿

利用 LookML 项目导入功能简化代码可复用性_容器_Google Cloud_InfoQ精选文章