Looker 块是针对常见分析模式和数据源的预构建数据模型。本页介绍了开发者如何自定义从 Looker Marketplace 安装的 Looker 块。Looker Marketplace 是可用于查找、部署和管理多种类型的 Looker 内容(例如应用、可视化图表和插件)的中心位置。
如需详细了解所有 可用的 Looker 块 以及其他块自定义方法,请参阅 Looker 块 文档页面。
从 Looker Marketplace 安装和管理 Looker 块的要求
在从 Looker Marketplace 安装和使用某些块之前,请注意以下要求:
- 如果您通过 Looker Marketplace 安装块,则 Looker 管理员必须启用 Marketplace 功能。
- 用户必须拥有
develop、manage_models和deploy权限,才能从 Marketplace 安装和管理软件包。 如果特定块包含
local_dependency参数,则该块会使用本地项目导入流程。如需详细了解如何导入项目,请参阅从其他项目导入文件文档页面。以下块包含local_dependency参数:- 数字营销分析
- 销售分析
- 网站分析
如需了解如何从 Looker Marketplace 安装和管理 Looker 块,请参阅 Looker Marketplace 文档页面。
访问 Marketplace 块的 LookML
基于使用细化的项目的块从 Marketplace 安装为单个可修改的 CONFIG 项目,该项目远程导入 CORE 项目,其中包含所有 LookML 代码和常量参数化。
从 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 |
对所有用户都是只读的 | 包含对清单文件中 marketplace_ref 关键字的引用,该文件处理 CORE 项目的远程导入。提供与安装关联的特定商品详情、版本和模型信息。包含有关在 安装 期间配置的常量的信息(可以使用 Marketplace 界面中的 管理 选项更新这些常量)。 |
refinements.lkml |
对于拥有 develop 权限的用户是可修改的 |
让开发者能够细化导入的 CORE 项目文件中定义的视图和探索。 |
自定义 Marketplace 块
启用 开发模式,以对块的可修改文件进行自定义。
如果您拥有 develop 权限,则可以自定义块的 CONFIG 项目的 refinements.lkml 文件中的 LookML。您可以细化块的 CORE 项目中已定义的视图和探索,甚至可以添加 CORE 项目中尚未定义的新视图和探索。在其他 LookML 项目中使用 LookML 细化可以实现的任何操作,都可以在块的 refinements.lkml 文件中实现。细化和原始 LookML 的组合行为就像是对象的原始 LookML。
您还可以更改 CONFIG 项目的 manifest.lkml 文件,以指定需要为该块捕获的任何依赖项。
您不仅限于修改这些文件以实现所需的自定义。您还可以在 CONFIG 项目中创建新文件,只需确保在 include 任何新文件即可。refinements.lkml
自定义细化文件
如果您拥有 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 细化文档。
自定义可修改的清单文件
在使用细化的块中,CORE 和 CONFIG 项目都有清单文件;不过,只有 CONFIG 项目的清单文件是可修改的。
您可以修改 CONFIG manifest.lkml 文件,以向 CORE 项目的清单文件中已显示的项目参数添加项目参数。例如,您可以添加 local_dependency,以将您的块与同一 Looker 实例上的另一个块联接。
更新常量的相应值
块的 常量 在导入的 CORE 项目的清单文件中定义。如允许,必须在配置期间通过 Marketplace 界面during configuration或通过更新块来替换常量的值。如需更新块,用户必须拥有 develop、manage_models 和 deploy 权限。
如需通过更新块来替换常量的值,请按以下步骤操作:
- 在 Looker Marketplace 中,找到要更新的块。
- 点击管理 按钮。
- 在要更新的块的名称旁边,点击齿轮图标。系统随即会打开块配置窗口。
- 根据需要更改常量值。
- 点击更新 ,关闭块配置窗口并使用您的更改更新块。
您所做的更改会反映在已安装项目中的只读 marketplace_lock.lkml 文件中。
保留使用 extends 的 Marketplace 块中的自定义
Looker Marketplace 中提供的一些块由使用 LookML extends 的项目组成。Looker 会将 Looker 21.8 或更高版本实例上的所有 Marketplace 块转换为使用 LookML 细化的项目结构,并将移除对基于 extends 的块的支持。
Looker 建议您在实例上安装任何 Marketplace 块的基于细化的版本,因为这些块会取代使用 extends 构建的块。虽然此替换过程很简单(您可以从 Looker Marketplace 块商品详情中安装新的(细化)块,并在 Looker Marketplace 的管理 页面中卸载原始(extends)块),但它不会保留对使用 extends 构建的块所做的任何自定义。Looker 也不会将任何基于该内容的 Looker 内容或函数(信息中心、探索、计划的内容传送、提醒)从原始块转移到新块。
本部分介绍了如何保留对使用 extends 的项目构建的块所做的任何自定义,否则从头开始复制这些自定义会很困难或很耗时。
如需保留块的自定义,能够从 Marketplace 安装和管理软件包的用户必须执行以下步骤:
- 更新原始块的 CONFIG 项目,为迁移做准备
- 从 Looker Marketplace 安装新版本的块
- 将自定义转移到新的 Marketplace 块
- 根据原始块重新创建 Looker 内容
- 卸载使用 extends 构建的块的版本
更新自定义块,为迁移做准备
本部分介绍了如何更新使用 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 块
基于使用细化的项目的块从 Marketplace 安装为单个可修改的 LookML 项目,该项目远程导入包含所有 LookML 和常量参数化的项目。
- 选择 Looker 菜单栏上的商店图标,以浏览到 Looker Marketplace。
- 点击基于细化的新 Marketplace 块的商品详情。此块与使用 extends 构建的现有块同名。
- 点击安装 以安装新块。安装此块后,您会在 Looker Marketplace 的管理 页面上看到两个相同的商品详情。
将自定义转移到新的 Marketplace 块
本部分介绍了如何将对原始(extends)块所做的更新转移到新的(细化)块中。
从开发 部分,通过以下方式之一打开新块的项目:
- 点击项目 选项,然后点击项目的名称。
- 在项目列表中,点击块的项目的名称。
Marketplace 细化块的名称通常以 marketplace_ 开头,后跟商品详情 ID。
在
refinements.lkml文件中,粘贴原始(extends)块的模型文件中 更新的内容。请务必保留细化文件中已有的任何include语句。
根据原始块重新创建 Looker 内容
采用 Marketplace 组成块的基于优化的版本的最后一步是卸载原始的基于 extends 的组成块版本。一些基于 extends 的块包含预构建的 LookML 信息中心和探索。如果用户创建了基于原始(extends)块中定义的任何 LookML 信息中心的 提醒 或 计划的传送,则在从 Looker Marketplace 卸载该块后,这些提醒或计划将分别被停用或失败。
您必须在新(细化)块的 LookML 信息中心上重新创建这些提醒或计划的传送。Looker 管理员和拥有相应计划和提醒权限的用户可以使用管理员部分中的提醒和计划页面搜索(extends)块的信息中心的名称,然后根据需要在(细化)块的相应信息中心上创建新提醒或计划的传送。
您还必须根据需要修改引用原始(extends)块的探索或 LookML 信息中心的任何其他 Looker 内容,以指向新的(细化)块。
卸载原始块
如需卸载使用 extends 构建的块的版本,请按以下步骤操作:
选择 Looker 菜单栏上的商店图标,以浏览到 Looker Marketplace。
在 Looker Marketplace 中,选择左侧导航栏中的管理 ,打开管理 页面。
在管理 页面上,点击垃圾桶图标以卸载原始(extends)块。您可以通过查看版本号来区分 extends 组成块列表和细化组成块列表。extends 块将比细化块低一个主要版本。例如,extends 块可能是版本
1.0.4,而细化块可能是版本2.0.0。
排查块问题
如果 Marketplace 块显示错误,则可能是您的架构与块的结构不匹配。
您可能还需要检查在块安装期间提供的 常量(表示块的连接、数据库或架构)是否已正确定义。为此,请按以下步骤操作:
选择 Looker 菜单栏上的商店图标,以浏览到 Looker Marketplace。
在 Looker Marketplace 中,选择主导航面板中的管理 ,打开管理 页面。
在管理 页面上,点击块的齿轮图标以查看其配置设置。
在更新配置 窗口中,确认块配置正确。在进行任何更改后,点击更新 以保存更新并关闭块配置窗口。