修改和验证 LookML

使用 IDE

Looker 的集成式开发环境 (IDE) 具有多项功能,可帮助您编写 LookML。

自动建议

在您输入时,Android Studio 会建议对您正在输入的内容情境敏感的参数和值。例如,针对某个维度的 type 参数提供的建议将仅包含该参数的有效选项。此外,sql 参数中的字段必须标记 ${...},因此 Android Studio 会在建议字段时添加该语法。

自动建议功能会自动显示在系统可以显示的位置。要关闭该键盘,请按键盘上的 Esc 键。按 Ctrl+空格键 (Windows) 或 Ctrl+空格键 (Mac) 可随时查看。

临时错误检查

IDE 会在您输入时捕获语法错误。边线中的红色 X 表示语法错误,并以红色下划线标示。当您将鼠标悬停在红色 X 上时,系统会显示问题的简短说明。

如需执行完整的模型验证,仍需使用 LookML 验证器。某些错误(例如,因缺少联接导致无效字段引用)需要对模型进行整体了解,因此只有在 LookML 验证器运行时才会显示。

快捷帮助面板

点击信息图标即可打开快速帮助面板,其中提供了代码中当前位置的说明和选项。点击边栏中的参数名称,打开该参数的 Looker 文档页面。

您还可以使用元数据面板查看 Looker IDE 元数据面板中对象的上下文相关信息。如需了解详情,请参阅 LookML 对象的元数据文档页面。

自动设置格式

在“开发模式”下,您可以使用文件格式键盘快捷键自动缩进 LookML 文件。缩进表示参数和子参数的层次结构,使 LookML 更易于阅读和理解。

折叠

每个顶级 LookML 参数开头旁边的间距区域中会显示一个小箭头。点击此箭头可折叠或展开 LookML 的相应部分,以便您可以仅关注特定部分。

文件菜单还提供 Fold LookMLUnfold LookML 选项,可将所有 LookML 部分展开或收起到当前文件中的顶级参数:

您还可以使用键盘快捷键来折叠和展开 LookML。

标记添加、更改和删除

在 LookML IDE 中,处于开发模式并且有未提交的更改时,系统始终会显示多个指示标志。

  • 文件名称会在窗口左侧显示一个蓝点,表示文件是新的、更改或重命名的。
  • 当您打开新文件或更改后的文件时,文件中的行号会以绿色突出显示,以显示新行或更改的行,水平红线表示已移除的行。

添加评论

您可以向 LookML 添加评论,使其更易于阅读。如需添加单个注释,请使用 # 字符:

dimension: name {
  sql: ${TABLE}.name ;; # This is the customer's full name
}

您可以使用键盘快捷键注释掉整个代码块:

  1. 选择要注释掉的行。
  2. 在 Mac 上按 ⌘ + /;在 Windows 计算机上,按 ctrl + /

IDE 会将 # 字符添加到您选择的每个行中。

注释掉 SQL 块

如果要注释掉完全位于 SQL 代码块内的行,请手动添加 SQL 注释表示法。

使用 SQL 注释块时,被注释掉的部分仍会解读为 LookML 代码。因此,您会在 LookML 生成的 SQL 中看到注释,但注释不会影响查询结果。

跳转到对象或文件

在 Looker IDE 中,您可以使用跳转到对象或文件功能进行快速搜索,直接导航到 LookML 对象和项目文件。在文件浏览器对象浏览器中点击跳转到对象或文件图标,或者使用键盘快捷键 Command-J (Mac) 或 Ctrl+J (Windows):

如需了解详情,请参阅访问和修改项目信息文档页面。

查找和替换项目中的文本

Looker IDE 具有查找和替换功能,因此您可以在所有项目中搜索文本,并用批量操作替换所有实例或选定实例。

Looker IDE 查找和替换工具非常适合用来查找大型 LookML 项目中的 LookML 元素以及替换说明和标签中的文本。如果要在项目中搜索并替换模型、探索和字段的名称,请改用内容验证器的查找和替换函数。更改模型、“探索”和字段的名称可能会破坏模型中的引用,而内容验证工具可以验证 LookML 引用并在做出这些类型的更改后修复 LookML 中的错误。

如需使用 Looker IDE 查找功能,请执行以下操作:

  1. 转到 IDE 中的搜索面板。
  2. 在“查找”字段中输入一个字词
  3. (可选)您可以选择区分大小写,以仅搜索与您在查找字段中输入的大小写匹配的实例,或选择 RegEX 来执行正则表达式搜索。
  4. 点击查找
  5. (可选)您可以点击文件名以在 IDE 中打开该文件。

如果当前处于开发模式,您还会看到替换为字段。如需替换项目中的文本,请执行以下操作:

  1. 替换为字段中输入替换文字。(可选)如果您想删除 Find(查找)字段中的文字,而不是替换其中的文本,则可以将 Replace with(替换为)字段留空。

  2. 点击选择并替换以预览文本在项目中的替换效果。

  3. 结果会显示您项目中用于替换的所有实例。您可以使用以下选项自定义要替换的实例:

    • 使用结果摘要旁边的复选框来选择或取消选择整个项目中的所有实例。
    • 使用单个实例旁边的复选框来选择或取消选择相应实例。
  4. 点击替换所选内容按钮,将替换内容应用到您选择的实例。IDE 将显示所做的更改:

创建和测试新字段

例如,修改 LookML 时,我们会添加几个字段,然后对其进行测试。

创建维度

首先,我们将向 users 视图添加一个新维度,该维度可确定用户是来自加利福尼亚州还是纽约。此维度将为 type: yesno,这意味着如果用户来自加利福尼亚州或纽约,它会返回 Yes,否则返回 No

新维度的 LookML 如下所示:

dimension: from_ca_or_ny {
  type: yesno
  sql: ${TABLE}.state = "California" OR ${TABLE}.state = "New York" ;;
}

将此维度添加到 user 视图文件中,然后点击该文件中的 Save Changes(保存更改)按钮。

请查看替换运算符,详细了解 ${TABLE}.state

创建测量结果

接下来,我们将为 user 视图添加一个新指标,用于计算用户平均年龄。此指标为 type: average,并会基于 age 列进行汇总。

这项新措施的 LookML 如下所示:

measure: average_age {
  type: average
  sql: ${TABLE}.age ;;
}

将此测量结果添加到 user 视图文件中,然后点击该文件中的 Save Changes(保存更改)按钮。

测试“探索”中的字段

您可以对新维度进行测试,并通过查询这些维度来进行衡量。保存更改后,这些字段将显示在“探索”中的字段选择器中。访问当前视图的“探索”的一种简单方法是使用视图文件名旁边的下拉菜单:

在“用户探索”中,您可以选择新字段以将其添加到查询中。例如,您可以创建一个查询,通过这两个新字段来分别查看来自加利福尼亚或纽约的用户和不来自纽约的用户的平均年龄:

您必须处于开发模式才能访问这些新字段,直到您提交更改并将其推送到生产环境。

验证您的 LookML

如果您对更新感到满意,可以保存所做的更改。IDE 会提醒您单个文件中任何未解决的语法错误。

接下来,使用 LookML 验证器执行完整的模型验证。某些错误(例如,因缺少联接导致无效字段引用)需要对模型进行整体了解,因此只有在 LookML 验证器运行时才会显示。请务必先验证您的 LookML 更改,然后再将其发布到生产环境。虽然验证不会捕获所有问题(例如数据库权限问题),但它会防止大多数错误。

请不要将 LookML 验证器与内容验证器混淆,后者会检查您所做的更改是否会导致任何保存的样式失效。

LookML 验证器仅扫描自上次 LookML 验证以来已更新的 LookML 文件,或受更新影响的文件:

  • 如果模型级设置发生更改,系统会再次验证所有内容。
  • 如果视图发生更改,系统只会重新验证使用它的“探索”功能。
  • 如果“探索”功能发生更改,系统只会再次验证“探索”。

Chat 团队提示:如果您发现 LookML 验证需要很长时间才能完成,首先要检查的是模型文件中的 include 参数。如果您添加了所有视图文件 (include: "*.view"),LookML 验证器必须检查所有这些文件,这可能会影响性能。在这种情况下,请更新模型文件的 include 参数,使其仅包含所需的视图文件。

正在运行验证

如需运行 LookML 验证程序,请选择 Looker IDE 右上角的 Validate LookML 按钮;或者选择 IDE 顶部的 Project Health 图标,以打开 Project Health 面板,然后选择 Validate LookML 按钮:

运行 LookML 验证器后,您可能会看到错误以及应该解决的其他警告的列表。您可以选择任意箭头来展开错误或警告列表:

如果您进行了更改并保存,项目健康状况面板中的验证工具按钮将再次可用。

验证消息

在 LookML 上运行验证后,Looker 会显示验证消息。

启用宽容性本地化后,LookML 信息中心会在边栏中显示信息性消息,而不是警告。

未找到任何 LookML 错误

如果验证工具未发现任何问题,Looker 会显示绿色对勾标记以及内容为未找到 LookML 错误

LookML 错误

LookML 错误是可能导致查询无法运行的问题。括号中的数字是找到的错误数量(以下示例中的 9 个):

在展开的问题列表中,您会看到验证未通过的原因。很多时候,如果您点击错误,它会直接进入问题行。这时,您会在该行旁边看到红色的“X”符号。在某些情况下,将鼠标悬停在该图标上会提供更详细的错误信息:

聊天团队提示:我们最常收到的验证错误是“未知或无法访问的字段”。如需了解原因以及应对措施,请参阅这篇帮助中心文章

LookML 警告

LookML 警告可能不会阻止查询运行,但仍可能导致用户无法使用或意外运行功能。与错误一样,括号中的数字是发现的警告数量(以下示例中的三个警告):

与 LookML 错误一样,您可以展开警告并跳转到问题代码,方法是在 Project Health 面板中选择相应警告,然后将光标悬停在红色的 X 图标上以查看详细信息:

部署更改

在确认您的更改能够正常运行后,您可以使用 Looker 的 Git 集成来提交更改并将其部署到生产环境中

如果您更改了在外观或信息中心内用作过滤条件的字段名称,请务必查看预设外观和信息中心的过滤条件部分,并根据需要更新过滤条件以反映您所做的更改。如果定时内容传送包含不再起作用的过滤条件(例如,如果引用字段发生变化),则预定传送可能会公开未经过滤的数据。