自定义 Looker Marketplace 版块

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

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

关于从 Looker Marketplace 安装和管理 Looker Blocks 的要求

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

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

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

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

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

访问 Marketplace 块的 LookML

基于使用优化功能的项目的块从 Marketplace 安装,作为单个可修改的配置项目安装,可远程导入 CORE 项目,其中包含所有 LookML 代码和常量参数化。

从 Marketplace 安装某个屏蔽块后,您可以通过点击项目列表中的项目名称,从开发菜单访问该屏蔽项目。“市场”优化版块的名称通常会以 marketplace_ 开头,后跟房源 ID。

虽然您无法直接修改块的只读 CORE 项目,但在自定义块的 CONFIG 文件时,可能需要将块的只读 CORE 文件中定义的 LookML 用作参考。如需查看该块的 CORE 文件,请在 IDE 中转到该块的项目文件,然后在 IDE 文件浏览器中展开 imported_projects 目录

块文件结构

当您安装专为优化而构建的内容块时,以下文件会作为屏蔽项目的“CONFIG”部分的一部分自动创建:

文件名 访问权限 函数
<model_name>.model.lkml 对所有用户来说都是只读的 与块安装关联的 Virtual 模型文件;用于处理从块的 CORE 项目导入的任何模型。卸载或更新块时,系统会删除关联的模型文件,从而防止多个块安装之间发生模型冲突。
manifest.lkml 拥有 develop 权限的用户可修改 描述项目及其外部依赖项。包含用于安装块的 Marketplace 产品详情 ID,并通过 marketplace 关键字协助远程导入块的 CORE 项目文件。
marketplace_lock.lkml 对所有用户来说都是只读的 包含对清单文件中用于远程导入 CORE 项目的 marketplace_ref 关键字的引用。提供与安装关联的具体列表、版本和型号信息。包含安装期间配置的常量的相关信息(可使用 Marketplace 界面中的管理选项进行更新)。
refinements.lkml 拥有 develop 权限的用户可修改 允许开发者优化在导入的 CORE 项目文件中定义的视图和探索。

自定义市场区块

启用开发模式,以自定义代码块的可修改文件。

如果您具有 develop 权限,则可以在代码块的 CONFIG 项目的 refinements.lkml 文件中自定义 LookML。您可以优化已在街区的 CORE 项目中定义的视图和探索,甚至可以添加尚未在 CORE 项目中定义的新视图和探索。通过其他 LookML 项目中的 LookML 优化实现的任何可能都可以在块的 refinements.lkml 文件中实现。优化和原始 LookML 的组合的行为就像对象的原始 LookML 一样。

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

您可随时修改这些文件以获得所需的自定义设置。您还可以在 CONFIG 项目中创建新文件,只需确保 include refinements.lkml 文件中的所有新文件即可。

自定义优化文件

如果您具有 develop 权限,可以将自定义 LookML 添加到 CONFIG 项目中,以混合使用其他数据或更改块的核心分析模型。您可以创建新视图并将其合并到现有探索、定义新字段或重新定义现有字段,或根据需要应用标签,以便为您要提供的分析创建模型。如果您在 CONFIG 项目中创建了新文件,则必须在优化文件中 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 的“探索”应用标签,使其在界面中显示为简化飞机

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

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

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

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

自定义可修改的清单文件

在使用优化的块中,CORE 项目和 CONFIG 项目都有清单文件;但是,只有 CONFIG 项目的清单文件是可修改的。

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

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

更新常量的值

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

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

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

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

保留使用扩展的 Marketplace 屏蔽设置

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

Looker 建议您在实例中包含任何 Marketplace 区块时安装基于优化的版本,在这些块可用时替换这些块,将构建的块替换成扩展。虽然此替换过程很简单 - 您可以从 Looker Marketplace 屏蔽列表中安装新(优化)块,并在 Looker Marketplace 的管理页面上卸载原始(扩展)块,但它不会保留对通过扩展构建的块所做的任何自定义设置。此外,Looker 也不会将基于这些内容的任何 Looker 内容或功能(信息中心、探索、预定的内容传送、提醒)从原始区块转移到新区块。

本部分介绍了如何将任何自定义设置保留到使用扩展(使用扩展难以或费时地从头开始复制)构建的块中。

如要保留您的屏蔽设置,如果用户能够从 Marketplace 安装和管理软件包,则必须执行以下操作:

  1. 更新原始块的配置项目,以便为迁移做好准备
  2. 从 Looker Marketplace 中安装新版本的屏蔽设置
  3. 将自定义设置转移到新的 Marketplace 版块中
  4. 根据原始块重新创建 Looker 内容
  5. 卸载使用扩展编译的块的版本

更新自定义块以准备迁移

本部分介绍如何在通过扩展构建的块中更新关键项目文件,以便您可以将块的自定义设置复制到基于优化的新块中。基于使用扩展的项目创建的块从 Marketplace 安装为只读核心项目和可修改的配置项目。

  1. 通过以下某种方式,从 Develop 部分转到块的“CONFIG”项目:

    • 点击 Projects 选项,然后点击项目名称。
    • 在项目列表中,点击屏蔽的“配置”项目的名称。

    配置项目名称通常以 _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. 复制并保留此文件的内容,以供日后使用。

安装新的市场屏蔽

基于使用优化的项目创建的块作为单个可修改的 LookML 项目安装在 Marketplace 中,可远程导入包含所有 LookML 和常量参数化的项目。

  1. 选择 Looker 菜单栏上的商店图标,以前往 Looker Marketplace。
  2. 点击基于优化的新 Marketplace 屏蔽设置的列表。此块与使用扩展构建的现有块具有相同的名称。
  3. 点击安装以安装新代码块。安装此模块后,您将在 Looker Marketplace 的管理页面上看到两条相同的列表。

将自定义设置转移到新的 Marketplace 版块中

本部分介绍了如何将对原始(扩展)块所做的更新转移到新的(优化)块中。

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

    • 点击 Projects 选项,然后点击项目名称。
    • 在项目列表中点击屏蔽项目的名称。

    “市场”优化版块的名称通常会以 marketplace_ 开头,后跟房源 ID。

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

根据原始块重新创建 Looker 内容

采用基于优化的 Marketplace 屏蔽版本,最后一步是卸载该屏蔽版本基于扩展的原始版本。一些基于扩展的块包含预构建的 LookML 信息中心和探索。如果用户根据原始(扩展)块中定义的任何 LookML 信息中心创建了提醒定时发送,则这些提醒或时间表会在从 Looker Marketplace 中卸载后分别停用或失败。

您必须在新(优化)块的 LookML 信息中心内重新创建这些提醒或已安排的发送。对时间表提醒具有适当权限的 Looker 管理员和用户可使用“管理”部分中的提醒和时间表页面来搜索(扩展)区块的信息中心的名称,然后根据需要在(优化)区块的相应信息中心创建新的提醒或安排的交付。

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

卸载原始代码块

如需卸载使用 extensions 构建的块的版本,请运行以下命令:

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

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

  3. 管理页面上,点击垃圾桶图标以卸载原始(扩展)屏蔽。您可以通过查看版本号,区分扩展屏蔽列表与优化屏蔽列表。扩展块将是优化块后面的一个主要版本。例如,Extend 代码块可能是版本 1.0.4,而优化代码块可能是版本 2.0.0

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

排查屏蔽问题

如果“市场块”显示错误,则您的架构可能与块的结构不匹配。

此外,您可能还需要检查在安装块期间提供的表示该块的连接、数据库或架构的constants是否已正确定义。为此,您可以执行以下操作:

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

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

  3. 管理页面上,点击被屏蔽的齿轮图标,即可查看其配置设置。

  4. Update Configuration 窗口中,确认该代码块已正确配置。完成更改后,点击更新以保存更新,并关闭屏蔽配置窗口。