写点什么

利用 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:561487

评论

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

Kyligence CTO|消除技术门槛,人人可用的敏捷数据工具

Kyligence

数据分析 指标平台

iOS MachineLearning 系列(2)—— 静态图像分析之矩形识别

珲少

华为云网站安全解决方案:守护企业数字化转型之路,提升业务效率与安全

YG科技

数据库、

灵活应用Nginx Map:实战经验与实用方法

小毛驴的烂笔头

nginx linux运维 Nginx实践

一文读懂 Spring Bean 的生命周期

老周聊架构

三周年连更

灵活应用Nginx Rewrite:实战经验与实用方法

小毛驴的烂笔头

nginx linux运维

动态资源技术JSP|Java与Html的美好相遇

浅羽技术

Java html 服务端 jsp 三周年连更

一文详解 PoseiSwap,Nautilus Chain 上的首个 DEX

股市老人

FastAPI 快速开发 Web API 项目: 模板和 Jinja 介绍

宇宙之一粟

Python FastApi 三周年连更 Jinja2

一文掌握 Go fmt 标准库常用方法的使用

陈明勇

Go golang 三周年连更 输入输出 fmt

华为云网站安全解决方案:全面保障企业网络安全,助力业务稳定高效运行

YG科技

SAP Emarsys 和 SAP Spartacus 的集成

汪子熙

SAP Spartacus 思爱普 三周年连更 Emarsys

回顾2022:Web性能方面有哪些新功能

南城FE

性能优化 前端

接口测试利器:AREX

AREX 中文社区

测试 自动化测试 接口测试 回归测试

HTTP事务的时延

阿泽🧸

三周年连更 HTTP时延

华为云:网络安全愈发重要,企业该如何保障自身业务安全?

YG科技

Django笔记十之values_list指定字段取值及distinct去重处理

Hunter熊

Python django distinct values

项目讲解之常见安全漏洞

越长大越悲伤

Java Web 安全

Vue3 使用 Teleport 封装 一个 Dialog

程序员海军

Vue Vue 3 三周年连更

Go语言并发编程利器(一):如何正确使用Channel

Jack

基于TCP协议的Socket通信

芯动大师

TCP协议 Socket请求 三周年连更

2023-04-18:ffmpeg中的hw_decode.c的功能是通过使用显卡硬件加速器(如 NVIDIA CUDA、Intel Quick Sync Video 等)对视频进行解码,从而提高解码效

福大大架构师每日一题

golang 音视频 ffmpeg 福大大

字节跳动副总裁杨震原:好的AI基础设施,如何激发工程师创造力?

字节跳动技术范儿

机器学习 字节跳动 算法 模型训练 算法工程师

文心一言 VS chatgpt (11)-- 算法导论2.3 7题 3.1 4~5题

福大大架构师每日一题

福大大 ChatGPT 文心一言

IT分享丨我是如何利用华为云网站安全解决方案帮助中小型企业实现IT安全

YG科技

IPv6域名软件

穿过生命散发芬芳

ipv6 三周年连更

【Java技术指南】「Unirest编程专题」一起认识一下一个“灰常”优秀的Http工具,让Http开发变得如此简单

洛神灬殇

Java HTTP 4月日更 Unirest

跨系统数据一致性问题解决方案汇总

架构精进之路

系统架构 数据一致性 三周年连更

华为云网站安全解决方案:守护您的网站,让安全无忧

YG科技

中小企业如何保障网络安全?用了这么多项目华为云其实还不错!

YG科技

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