Looker Block 是针对常见分析模式和数据源预构建的数据模型。本页介绍了开发者如何自定义从 Looker Marketplace 安装的 Looker 模块。Looker Marketplace 是可用于查找、部署和管理多种类型的 Looker 内容(例如应用、可视化图表和插件)的中心位置。
如需详细了解所有可用的 Looker 块以及其他块自定义方法,请参阅 Looker 块文档页面。
从 Looker Marketplace 安装和管理 Looker 块的要求
在安装和使用 Looker Marketplace 中的某些块之前,请注意以下要求:
- 如果您要通过 Looker Marketplace 安装块,Looker 管理员必须启用 Marketplace 功能。
- 用户必须拥有
develop
、manage_models
和deploy
权限,才能安装和管理市场中的软件包。 如果特定块包含
local_dependency
参数,则该块会使用本地项目导入流程。如需详细了解如何导入项目,请参阅从其他项目导入文件文档页面。以下代码块包含local_dependency
参数:- 数字营销分析
- 销售分析
- 网站分析
如需了解如何从 Looker Marketplace 安装和管理 Looker 模块,请参阅 Looker Marketplace 文档页面。
访问 Marketplace Block 的 LookML
基于使用细化的项目的块从 Marketplace 安装为单个可修改的 CONFIG 项目,该项目远程导入包含所有 LookML 代码和常量形参化的 CORE 项目。
从 Marketplace 安装模块后,您可以通过点击项目列表中的项目名称,从开发菜单中访问该模块的项目。Marketplace 优化功能块的名称通常以 marketplace_ 为前缀,后跟商品详情 ID。
虽然您无法直接修改只读 CORE 项目的模块,但您可能希望在自定义模块的 CONFIG 文件时,将模块的只读 CORE 文件中定义的 LookML 用作参考。您可以在 IDE 中前往模块的项目文件,然后在 IDE 文件浏览器中展开 imported_projects
目录,查看模块的 CORE 文件。
块文件结构
当您安装为细化功能而构建的模块时,这些文件会在模块项目的 CONFIG 部分自动创建:
文件名 | 访问 | 函数 |
---|---|---|
<model_name>.model.lkml |
对所有用户而言是只读的 | 与块安装相关联的虚拟模型文件;用于处理从块的 CORE 项目导入任何模型。当某个模块被卸载或更新时,系统会删除关联的模型文件,从而防止多个模块安装之间出现模型冲突。 |
manifest.lkml |
可供具有 develop 权限的用户修改 |
描述项目及其外部依赖项。包含块安装的 Marketplace 商品详情 ID,并通过 marketplace 关键字促进块的 CORE 项目文件的远程导入。 |
marketplace_lock.lkml |
对所有用户而言是只读的 | 包含对清单文件中处理远程导入 CORE 项目的 marketplace_ref 关键字的引用。提供与安装相关联的具体商品详情、版本和型号信息。包含有关在安装期间配置的常量的信息(这些常量可以使用 Marketplace 界面中的管理选项进行更新)。 |
refinements.lkml |
可供具有 develop 权限的用户修改 |
允许开发者优化导入的 CORE 项目文件中定义的视图和探索。 |
自定义 Marketplace 代码块
启用开发者模式,以便对块的可修改文件进行自定义。
如果您拥有 develop
权限,则可以在块的 CONFIG 项目的 refinements.lkml
文件中自定义 LookML。您可以优化模块的 CORE 项目中已定义的视图和探索,甚至可以添加 CORE 项目中尚未定义的新视图和探索。其他 LookML 项目中通过 LookML 细化实现的所有功能都可以在模块的 refinements.lkml
文件中实现。优化和原始 LookML 的组合行为与对象的原始 LookML 相同。
您还可以更改 CONFIG 项目的 manifest.lkml
文件,以指定需要为相应块捕获的任何依赖项。
您不仅限于修改这些文件来获得所需的自定义设置。您还可以在 CONFIG 项目中创建新文件,但请务必在 refinements.lkml
文件中include
所有新文件。
自定义细化文件
如果您拥有 develop
权限,则可以向 CONFIG 项目添加自定义 LookML,以混入其他数据或更改块的核心分析模型。您可以创建新视图并将其与现有探索相关联,定义新字段或重新定义现有字段,也可以根据需要应用标签,从而为要提供的分析创建模型。如果您在 CONFIG 项目中创建了新文件,则必须在优化文件中include
这些文件。
例如,假设您已安装某个块,并且其 refinements.lkml
文件包含以下 LookML:
include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"
其中,listing_id
是 manifest.lkml
文件中 listing
参数的值。
您可以使用细化功能向名为 flights
的视图添加新维度:
include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"
view: +flights {
dimension: air_carrier {
type: string
sql: ${TABLE}.air_carrier ;;
}
}
或者,您也可以为名为 aircraft
的探索应用标签,使其在界面中显示为 Aircraft Simplified:
include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"
explore: +aircraft {
label: "Aircraft Simplified"
}
refinements.lkml
文件会自动包含在块的“虚拟”模型文件中,该文件实际上是从 CORE 项目导入模型。
如需详细了解此高级主题,请参阅 LookML 细化文档。
自定义可修改的清单文件
在使用细化的块中,核心项目和配置项目都有清单文件;不过,只有配置项目的清单文件可供修改。
您可以修改 CONFIG manifest.lkml
文件,以将项目参数添加到 CORE 项目的清单文件中已有的参数中。例如,您可以添加 local_dependency
以联接您的模块与同一 Looker 实例上的另一个模块。
更新常量的值
块的常量在导入的 CORE 项目的清单文件中定义。如果允许替换常量的值,则必须在 Marketplace 界面中进行配置或通过更新块来完成。如需更新块,用户必须拥有 develop
、manage_models
和 deploy
权限。
如需通过更新块来替换常量的值,请按以下步骤操作:
- 在 Looker Marketplace 中,找到要更新的模块。
- 点击管理按钮。
- 点击要更新的板块名称旁边的齿轮图标。系统随即会打开块配置窗口。
- 根据需要更改常量值。
- 点击更新以关闭板块配置窗口,并使用您的更改更新板块。
您所做的更改会反映在已安装项目中的只读 marketplace_lock.lkml
文件中。
保留使用 extends 的 G Suite 应用商店块中的自定义设置
Looker Marketplace 中提供的一些块由使用 LookML extends 的项目组成。Looker 会将 Looker 21.8 或更高版本上的所有 Marketplace Block 转换为使用 LookML 细化的项目结构,并移除对基于 extends 的 Block 的支持。
Looker 建议您在基于细化的任何 Marketplace 模块可供使用时,立即安装这些模块,以替换使用 extends 构建的模块。虽然此替换过程很简单,您可以从 Looker Marketplace 块列表中安装新的(改进版)块,并在 Looker Marketplace 的管理页面上卸载原始的(扩展版)块,但它不会保留可能对使用 extends 构建的块所做的任何自定义设置。Looker 也不会将基于该内容的任何 Looker 内容或功能(例如信息中心、探索、预定的内容交付、提醒)从原始块转移到新块。
本部分介绍如何保留对使用 extends 的项目构建的块所做的任何自定义设置,否则从头开始复制这些设置会很困难或很耗时。
如需保留代码块的自定义设置,有权安装和管理 Marketplace 中的软件包的用户必须执行以下步骤:
- 更新原始块的 CONFIG 项目以准备迁移
- 从 Looker Marketplace 安装新版块
- 将自定义设置转移到新的 Marketplace Block
- 基于原始块重新创建 Looker 内容
- 卸载使用 extends 构建的 block 版本
更新自定义代码块以准备迁移
本部分介绍了如何更新使用 extends 构建的块中的关键项目文件,以便您可以将块的自定义设置复制到基于细化的新版块中。基于使用 extends 的项目创建的块从 Marketplace 安装时会作为只读的 CORE 项目和可修改的 CONFIG 项目。
通过以下任一方式,从开发部分前往相应块的 CONFIG 项目:
- 点击项目选项,然后点击项目名称。
- 在项目列表中,点击相应块的 CONFIG 项目的名称。
CONFIG 项目名称通常以 _config 结尾,而 CORE 项目的名称通常没有后缀。
打开项目的模型文件,该文件可能如下所示:
explore: ga_sessions_config {
extends: [ga_sessions_core]
extension: required
join: user_sales_data {
sql_on: ${user_sales_data.full_visitor_id} = ${ga_sessions.full_visitor_id} ;;
}
join: sales__by__category {
sql: LEFT JOIN UNNEST(${user_sales_data.sales_by_category}) as sales__by__category;;
}
}
explore: future_input_config {
extends: [future_input_core]
extension: required
join: future_purchase_prediction {
type: left_outer
sql_on: ${future_input.full_visitor_id} = ${future_purchase_prediction.full_visitor_id} ;;
relationship: one_to_one
}
}
在开发模式下,执行以下步骤:
- 删除整个
extends
和extension
行。 - 从
explore
名称中删除_config
。 - 将
+
附加到explore
名称的前面。
之前的模型文件示例如下所示:
- 删除整个
explore: +ga_sessions {
join: user_sales_data {
sql_on: ${user_sales_data.full_visitor_id} = ${ga_sessions.full_visitor_id} ;;
}
join: sales__by__category {
sql: LEFT JOIN UNNEST(${user_sales_data.sales_by_category}) as sales__by__category;;
}
}
explore: +future_input {
join: future_purchase_prediction {
type: left_outer
sql_on: ${future_input.full_visitor_id} = ${future_purchase_prediction.full_visitor_id} ;;
relationship: one_to_one
}
}
- 复制并保留此文件的内容,以供后续步骤使用。
安装新的 Marketplace Block
基于使用细化的项目的块从 Marketplace 安装为单个可修改的 LookML 项目,该项目会远程导入包含所有 LookML 和常量形参化的项目。
- 选择 Looker 菜单栏上的商店图标,前往 Looker Marketplace。
- 点击基于优化调整的新 Marketplace Block 的商品详情。此块与使用 extends 构建的现有块同名。
- 点击安装以安装新代码块。安装此块后,您会在 Looker Marketplace 的管理页面上看到两个相同的商品详情。
将自定义设置转移到新的 Marketplace Block
本部分介绍如何将您对原始(扩展)块所做的更新转移到新的(细化)块中。
在开发部分中,通过以下任一方式打开新模块的项目:
- 点击项目选项,然后点击项目名称。
- 在项目列表中,点击相应功能块的项目名称。
Marketplace 优化功能块的名称通常以 marketplace_ 为前缀,后跟商品详情 ID。
在
refinements.lkml
文件中,粘贴原始(扩展)块的模型文件中的更新后的内容。请务必保留优化文件中已有的所有include
语句。
基于原始块重新创建 Looker 内容
采用基于细化的 Marketplace Block 的最后一步是卸载基于扩展的原始 Block。某些基于 extend 的块包含预构建的 LookML 信息中心和探索。如果用户基于原始(扩展)块中定义的任何 LookML 信息中心创建了提醒或预定交付,那么一旦从 Looker Marketplace 中卸载该块,这些提醒或预定交付就会被停用或失败。
您必须在新(优化)块的 LookML 信息中心内重新创建这些提醒或预定交付。Looker 管理员和对时间表和提醒拥有相应权限的用户可以使用管理部分中的提醒和时间表页面搜索(扩展)块的信息中心的名称,然后在(细化)块的相应信息中心内根据需要创建新的提醒或安排的传送。
您还必须根据需要修改引用原始(扩展)块的探索或 LookML 信息中心的任何其他 Looker 内容,以指向新的(优化)块。
卸载原始块
如需卸载使用 extends 构建的块版本,请按以下步骤操作:
选择 Looker 菜单栏上的商店图标,前往 Looker Marketplace。
在 Looker Marketplace 中,选择左侧导航栏中的管理,打开管理页面。
在管理页面上,点击回收站图标以卸载原始(扩展)块。您可以通过查看版本号来区分扩展模块列表和细化模块列表。extends 块将比 refinements 块落后一个主要版本。例如,extends 块可能是版本
1.0.4
,而 refinements 块可能是版本2.0.0
。
排查屏蔽问题
如果 Marketplace 块显示错误,则可能是您的架构与该块的结构不匹配。
您可能还需要检查在块安装期间提供的表示块的连接、数据库或架构的常量是否已正确定义。请按以下步骤进行此操作:
选择 Looker 菜单栏上的商店图标,前往 Looker Marketplace。
在 Looker Marketplace 中,选择主导航面板中的管理,打开管理页面。
在管理页面上,点击相应块的齿轮图标以查看其配置设置。
在更新配置窗口中,确认相应块已正确配置。在进行任何更改后,点击更新以保存更新并关闭块配置窗口。