修改和验证 LookML

使用 IDE

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

自动建议

在您输入时,IDE 会推荐与您输入的内容相关的敏感参数和值。例如,针对某个维度的 type 参数的建议将仅包含该参数的有效选项。此外,sql 参数中的字段必须标有 ${...},因此 IDE 在建议字段时就会添加这种语法。

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

临时错误检查

Android Studio 会在您输入时捕获语法错误。边线中的红色 X 表示语法错误,带有红色下划线。当您将鼠标悬停在红色 X 上时,系统就会显示问题的简短说明。例如,如果您错误地输入 avrage(而不是 average)作为测量的 type 参数的值,IDE 会显示错误 Invalid value for "type":avrage

仍需完成 LookML 验证器,才能执行完整的模型验证。有些错误(例如由于缺少联接而导致字段引用无效)需要您对模型进行全面检查,因此仅在运行 LookML 验证器时才会显示。

“快捷帮助”面板

选择快速帮助图标,打开快速帮助面板,其中包含代码中当前位置的说明和选项。在边栏中选择一个参数名称,打开该参数的 Looker 文档页面。

自动格式设置

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

折叠款

边线中会出现一个小箭头,位于文件内每个顶级 LookML 参数的开头旁边。选择此箭头可折叠或展开 LookML 的该部分,以便您可以仅关注特定部分。

LookML 文件的 See file actions 菜单还提供了 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):

如需了解详情,请参阅访问 LookML 项目文件文档页面。

查找并替换项目中的文本

Looker IDE 提供了查找和替换函数,因此您可以在所有项目中搜索文本,并使用批量操作替换所有实例或选定实例。

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

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

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

  1. 替换为字段中输入替换文字。(可选)如果您想要删除查找字段中的文字(而非替换),请将替换为字段留空。

  2. 选择选择并替换即可预览项目中文本的替换方式。

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

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

创建和测试新字段

作为修改 LookML 的示例,我们将添加多个字段,然后对其进行测试。

创建维度

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

新维度的 LookML 如下所示:

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

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

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

创建测量

接下来,我们将向 user 视图添加一项旨在衡量用户平均年龄的新衡量指标。此衡量结果为 type: average,并会汇总 age 列。

这项新测量的 LookML 如下所示:

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

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

测试“探索”中的字段

您可以查询新维度,并通过查询来衡量这些新维度。保存您所做的更改后,这些字段将显示在“探索”的字段选择器中。您可以使用视图文件名旁边的查看文件操作下拉菜单轻松访问当前视图的“探索”。查看文件操作下拉菜单会列出基于相应视图的所有探索,包括相应视图已加入的探索。例如,要访问名为 users 的“探索”视图,您可以从查看文件操作下拉菜单中选择探索用户选项。

在“用户探索”中,您可以选择新字段以将其添加到查询中。例如,您可以创建一个包含这两个新字段的查询,这两个查询分别显示了来自加利福尼亚州或纽约的用户的平均年龄,以及来自非加利福尼亚州用户的平均年龄:

“用户探索”的示例,数据来源于“加利福尼亚州用户”或“纽约用户”(是/否),并且“用户平均年龄”字段为选中状态。

验证您的 LookML

如果您对更新感到满意,就可以保存更改。Android Studio 会在单个文件中提醒您所有未解析的语法错误。

接下来,使用 LookML 验证器执行完整的模型验证。有些错误(例如由于缺少联接而导致字段引用无效)需要您对模型进行全面检查,因此仅在运行 LookML 验证器时才会显示。请务必先验证您的 LookML 更改,然后再将其发布到生产环境。虽然验证无法发现所有问题(例如数据库权限问题),但它可以防止出现大多数错误。

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

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

正在运行验证

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

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

如果您进行了其他更改并保存,Project Health 面板中的验证器按钮将再次可用。

验证消息

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

未找到 LookML 错误

如果验证工具未发现任何问题,Looker 会显示一个绿色对勾标记,并随附内容为 No LookML errors found

LookML 错误

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

包含文本 ML 错误 (9) 的验证消息示例。

在扩展的问题列表中,您会看到验证未通过的原因。很多时候,如果您点击错误,会直接转到问题代码行。您会在该行旁边看到红色的“X”。在某些情况下,将鼠标悬停在鼠标指针上可以更详细地了解错误信息:

示例:悬停在没有值的类型参数定义上出现的错误,错误文本指出您必须提供类型值。

聊天团队提示:我们最常问的验证错误是“未知或无法访问的字段”。访问错误:未知或无法访问的字段,了解原因以及应对措施。

LookML 警告

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

包含文本 ML 警告 (3) 的验证消息示例。

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

警告文本示例,其中指出“探索”必须与视图名称匹配,或者“探索”必须具有 from 或 view_name 属性。

部署更改

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