自定义 Looker Marketplace 屏蔽设置

Looker Blocks™ 是适用于常见分析模式和数据源的预构建数据模型。本页面介绍了开发者如何自定义从 Looker Marketplace 安装的 Looker Blocks。Looker Marketplace 是查找、部署和管理多种类型的 Looker 内容(例如应用、可视化图表和插件)的中心位置。

如需详细了解所有可用的 Looker 块(包括目前无法从 Looker Marketplace 获取的块),以及其他块自定义方法,请参阅 Looker 块文档页面。

从 Looker Marketplace 安装和管理 Looker 块的要求

您的 Looker 管理员必须先启用以下功能,您才能安装和使用 Looker Marketplace 中的部分功能:

  • 如果您要通过 Looker Marketplace 安装块,则您的 Looker 管理员必须启用 Marketplace 功能。
  • 如果该块包含 local_dependency 参数,您的 Looker 管理员还必须启用本地项目导入 实验室功能。以下代码块包含 local_dependency 参数:

    • 数字营销分析
    • 销售分析
    • 网站分析

用户必须拥有 developmanage_modelsdeploy 权限,才能安装和管理 Marketplace 中的软件包。

如需了解如何从 Looker Marketplace 安装管理 Looker 块,请参阅 Looker Marketplace 文档页面。

访问 Marketplace 块的 LookML

基于使用精炼项的项目的块会从 Marketplace 安装为单个可修改的 CONFIG 项目,该项目会远程导入 CORE 项目,其中包含所有 LookML 代码和常量参数化。

从 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 项目文件中定义的视图和探索。

自定义购物平台版块

启用开发模式,对区块的可编辑文件进行自定义。

如果您具有 develop 权限,则可以在代码块配置项目的 refinements.lkml 文件中自定义 LookML。您可以优化块的 CORE 项目中定义的视图和探索,甚至可以添加尚未在 CORE 项目中定义的新视图和探索。在其他 LookML 项目中,通过 LookML 优化所实现的任何操作都可以在该块的 refinements.lkml 文件中实现。优化和原始 LookML 的组合在行为上类似于对象的原始 LookML。

您还可以更改配置项目的 manifest.lkml 文件,以指定需要为该块捕获的任何依赖项。

您并非只能修改这些文件以达到您想要的自定义设置。您还可以在 CONFIG 项目中创建新文件,只需确保在 refinements.lkml 文件中include 所有新文件即可。

自定义“优化”文件

如果您拥有 develop 权限,则可以向 CONFIG 项目添加自定义 LookML,以混合使用其他数据或更改版块的核心分析模型。您可以创建新视图,并将其与现有探索联接,定义新字段或重新定义现有字段,或者根据需要应用标签,为您要提供的分析创建模型。如果您在配置项目中创建了新文件,则必须在优化文件中 include 它们。

例如,假设您安装了一个块,并且其 refinements.lkml 文件包含:

include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"

其中 listing_idmanifest.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 精简

include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"

explore: +aircraft {
  label: "Aircraft Simplified"
}

refinements.lkml 文件会自动包含在块的“virtual”中,模型文件,实际上是从 CORE 项目导入模型。

如需详细了解此高级主题,请参阅 LookML 优化文档。

自定义可修改的清单文件

在使用优化的块中,CORE 和 CONFIG 项目都有清单文件;不过,只能修改配置项目的清单文件。

您可以修改 CONFIG manifest.lkml 文件,将项目参数添加到 CORE 项目的清单文件中已有的参数中。例如,您可以添加 local_dependency,将您的块与同一 Looker 实例上的另一个块联接

Looker 管理员必须先启用本地项目导入 实验室功能,然后您才可以在包含 local_dependency 参数的块上使用或构建项目。

更新常量的值

代码块的常量在导入的 CORE 项目的清单文件中定义。如果允许,替换常量的值必须在 Marketplace 界面中配置期间或通过更新代码块来完成。如需更新屏蔽对象,用户必须拥有 developmanage_modelsdeploy 权限。

如需通过更新块来替换常量的值,请执行以下操作:

  1. 在 Looker Marketplace 中,前往要更新的块。
  2. 点击管理按钮。
  3. 点击要更新的版块名称旁边的齿轮图标。这会打开屏蔽设置窗口。
  4. 根据需要更改常量值。
  5. 点击 Update 以关闭块配置窗口,并使用您所做的更改更新该块。

您所做的更改会反映在已安装项目的只读 marketplace_lock.lkml 文件中。

保留使用 extends 的 Marketplace 版块中的自定义设置

Looker Marketplace 中提供的一些组成块由使用 LookML 扩展的项目组成。Looker 正在将 Looker 21.8 或更高版本上实例的所有 Marketplace 分块转换为采用 LookML 优化的项目结构,并将不再支持基于扩展的区块。

Looker 建议您在 Marketplace 中的任何组成块推出基于精细调整的版本后,将其安装到您的实例中,以替换使用扩展构建的组成块。虽然此替换过程很简单,您可以在 Looker Marketplace 中的屏蔽规则列表中安装新(优化)块,然后在 Looker Marketplace 的管理页面上卸载原始(扩展)块,但不会保留可能对使用扩展功能的块进行的任何自定义设置。Looker 也不会将任何基于这些内容的 Looker 内容或功能(信息中心、探索、安排的内容传送、提醒)从原始块转移到新块。

本部分介绍如何保留对通过项目构建且难以从头开始复制的扩展块的任何自定义设置。

为了保留您的屏蔽设置,如果用户要安装和管理 Marketplace 中的软件包,必须满足以下要求:

  1. 更新原始分块的 CONFIG 项目以准备进行迁移
  2. 从 Looker Marketplace 安装新版代码块
  3. 将自定义设置转移到新的 Marketplace 屏蔽设置
  4. 在原始块的基础上重新创建 Looker 内容
  5. 卸载使用扩展构建的块版本

更新自定义块以准备迁移

本部分介绍了如何更新使用“extends”构建的块中的关键项目文件,以便将块的自定义内容复制到基于“refinement”的新版块。基于使用扩展功能的项目的块将从 Marketplace 安装为只读 CORE 项目和可修改的 CONFIG 项目。

  1. 通过以下任一方式从 Develop 部分导航到块的 CONFIG 项目:

    • 点击 Projects(项目)选项,然后点击项目名称。
    • 在项目列表中,点击该块的配置项目的名称。

    CONFIG 项目名称通常以 _config 结尾,而 CORE 项目的名称通常没有后缀。

  2. 打开项目的模型文件,该文件可能如下所示:


    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
      }
    }

  1. 开发模式下:

    1. 删除整个 extendsextension 行。
    2. explore 名称中删除 _config
    3. + 附加到 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
      }
    }

  1. 复制并保留此文件的内容,以备后续步骤使用。

安装新的 Marketplace 版块

基于使用精炼项的项目的块会从 Marketplace 安装为单个可修改的 LookML 项目,该项目会远程导入包含所有 LookML 和常量参数化的项目。

  1. 选择 Looker 菜单栏上的商店图标,前往 Looker Marketplace。
  2. 点击新列表,查看基于优化的新市场屏蔽设置。此代码块的名称与使用 extends 构建的现有代码块相同。
  3. 点击 Install 以安装新块。安装此块后,您会在 Looker Marketplace 的管理页面上看到两个完全相同的商家信息。

将自定义设置转移到新的“市场屏蔽设置”中

本部分介绍了如何将您对原始“extends”块所做的更新转移到新的“refinements”块。

  1. 开发部分中,通过以下某种方式打开新代码块的项目:

    • 点击项目选项,然后点击项目名称。
    • 在项目列表中,点击相应分块的项目名称。

    购物平台精细化参数块的名称通常以 marketplace_ 开头,后跟商品详情 ID。

  2. refinements.lkml 文件中,粘贴原始(扩展)块的模型文件的更新内容。请务必保留优化文件中已有的所有 include 语句。

根据原始屏蔽内容重新创建 Looker 内容

采用基于优化项的 Marketplace 版块的最后一步是卸载基于扩展的版块的原始版本。一些基于 Extensions 的功能块包含预构建的 LookML 信息中心和探索。如果用户基于原始(扩展)块中定义的任何 LookML 信息中心创建了提醒安排的传送,那么一旦该块从 Looker Marketplace 中卸载,这些提醒或时间表将分别被停用或失败。

您必须在新(优化)版块的 LookML 信息中心内重新创建这些提醒或定期提交。Looker 管理员和具有时间表提醒相应权限的用户可以使用提醒和时间安排页面,搜索(扩展)块的信息中心名称,然后根据需要在(优化)块的相应信息中心创建新提醒或安排的递送。

您还必须根据需要修改引用原始(扩展)块的“探索”或 LookML 信息中心的任何其他 Looker 内容,使其指向新(优化)块。

卸载原始屏蔽程序

如需卸载使用扩展构建的块版本,请使用以下代码:

  1. 选择 Looker 菜单栏上的商店图标,前往 Looker Marketplace。

  2. 在 Looker Marketplace 中,选择左侧导航栏中的管理,以打开管理页面。

  3. 管理页面上,点击垃圾箱图标以卸载原来的(扩展)块。您可以通过查看版本号来区分扩展块列表和优化块列表。extends 块将比 refinements 块低一个主要版本。例如,extends 块可能是版本 1.0.4,而 refinements 块可能是版本 2.0.0

卸载该区块后,原始(扩展)区块列表将从 Looker 实例的左侧导航栏中消失,其“探索”将从探索部分消失,其 LookML 信息中心将从 LookML 信息中心文件夹中消失,基于此区块的 LookML 信息中心的所有提醒或已安排传送内容都将分别被停用或失败。

排查屏蔽问题

如果购物平台块显示错误,则可能是因为您的架构与该块的结构不匹配。

您可能还需要检查在安装块时提供的常量(表示块的连接、数据库或架构)是否已正确定义。为此,您可以:

  1. 选择 Looker 菜单栏上的商店图标,前往 Looker Marketplace。

  2. 在 Looker Marketplace 中,选择左侧导航栏中的管理,打开管理页面。

  3. 管理页面上,点击相应屏蔽程序的齿轮图标以查看其配置设置。

  4. 更新配置窗口中,确认块配置正确无误。进行任何更改后,点击更新以保存更新并关闭屏蔽设置窗口。