自定义 Looker Marketplace 屏蔽设置

Looker BlocksTM 是为常见分析模式和数据源预先构建的数据模型。本页介绍了开发者如何自定义从 Looker Marketplace 安装的 Looker Blocks。Looker Marketplace 是一个中心位置,您可以在其中查找、部署和管理各种类型的 Looker 内容,例如应用、可视化图表和插件。

如需详细了解所有可用的 Looker 分块(包括目前 Looker Marketplace 中尚未提供的分块)以及备用分块自定义方法,请参阅 Looker 分块文档页面。

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

您必须先启用以下功能,然后才能在 Looker Marketplace 中安装和使用某些屏蔽设置:

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

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

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

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

访问 Marketplace 块的 LookML

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

从 Marketplace 中安装某个屏蔽设置后,您就可以在开发菜单中访问其项目,只需点击项目列表中的项目的名称即可。购物平台优化块的名称通常后跟 marketplace_ 前缀,后跟房源 ID。

虽然您无法直接修改代码块的只读 CORE 项目,但自定义代码块的 CONFIG 文件时,您可能需要使用该代码块的只读 CORE 文件中定义的 LookML。您可以查看 IDE 的 CORE 文件,只需在 IDE 中导航到该块的项目文件,然后在 IDE 文件浏览器中展开 imported_projects 目录即可。

屏蔽文件结构

当您安装为优化而构建的块时,这些文件会自动作为块项目的 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 项目中创建新文件,只需确保 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 项目的清单文件可以修改。

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

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

更新常量的值

该块的常量在导入的 CORE 项目的清单文件中定义。若要覆盖常量的值(如有允许),则必须在 Marketplace 界面中进行配置或执行相应屏蔽操作。如需更新屏蔽设置,用户必须拥有 developmanage_modelsdeploy 权限。

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

  1. 在 Looker Marketplace 中,导航到要更新的屏蔽块。
  2. 点击管理按钮。
  3. 在您要更新的代码块的名称旁边,点击齿轮图标。这会打开块配置窗口。
  4. 根据需要更改常量值。
  5. 点击 Update(关闭)以关闭屏蔽配置窗口,并根据您的更改更新屏蔽设置。

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

保留使用扩展功能的 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. 卸载通过扩展构建的块版本

更新自定义组成要素,为迁移做好准备

本部分介绍了如何更新通过扩展构建的块中的关键项目文件,以便您可以将该块的自定义设置复制到基于优化块的新版本中。基于基于扩展程序的项目的项目从 Marketplace 安装为只读 CORE 项目和可修改的 CONFIG 项目。

  1. 通过以下任一方式从开发部分导航到该代码块的 CONFIG 项目:

    • 点击项目选项,然后点击项目名称。
    • 在项目列表中点击该代码块的 CONFIG 项目的名称。

    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. 点击新的、基于优化的市场屏蔽列表。此块与使用扩展构建的现有块同名。
  3. 点击 Install 安装新代码块。安装此屏蔽设置后,您会在 Looker Marketplace 的管理页面上看到两个完全相同的商家信息。

将自定义设置转移到新的 Marketplace 屏蔽设置

本部分介绍了如何将针对原始(扩展)代码块的更新传输到新的(优化)代码块。

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

    • 点击项目选项,然后点击项目名称。
    • 在项目列表中点击该代码块的项目。

    购物平台优化块的名称通常后跟 marketplace_ 前缀,后跟房源 ID。

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

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

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

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

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

卸载原始代码块

如需卸载使用扩展项构建的块版本,请执行以下操作:

  1. 选择 Looker 菜单栏中的商店图标,以转到 Looker Marketplace。

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

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

一旦卸载该块,Looker 实例中左侧导航栏中的原始(扩展)块就会消失,其“探索”部分也会从探索部分消失,它的 LookML 信息中心也会从 LookML 信息中心文件夹中消失,而且基于该块的 LookML 信息中心的所有提醒或已排定的交付将分别停用或失败。

排查屏蔽问题

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

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

  1. 选择 Looker 菜单栏中的商店图标,以转到 Looker Marketplace。

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

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

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