使用 IDE
本页面介绍了一些可以帮助您编写 LookML 的 Looker IDE 功能。
您可以通过 Looker 开发菜单访问 Looker IDE(集成开发环境)。如需了解详情和其他选项,请参阅访问项目文件。
自动建议
在您输入时,IDE 会根据您正在输入的内容的上下文提供建议的可能参数和值。例如,针对维度 type
参数的建议将仅包含该参数的有效选项。此外,sql
参数中的字段必须用 ${...}
进行标记,因此 IDE 会在建议字段时添加该语法。
自动建议功能会自动显示在可展示的地方。若要将其关闭,请按键盘上的 Esc 键。按 Ctrl+空格键 (Windows) 或 Control-Space (Mac) 即可随时进行查看。
临时错误检查
IDE 会在您输入内容时捕获语法错误。边线中的红色 X 表示存在语法错误,标有红色下划线。将鼠标悬停在红色 X 上时,将会显示问题的简短说明。例如,如果您错误地输入 avrage
(而不是 average
)作为测量的 type
参数的值,IDE 会显示错误 Invalid value for "type":avrage
。
执行完整的模型验证仍然需要使用 LookML 验证器。某些错误(例如由于缺少联接导致字段引用无效)需要全面了解模型,因此仅在 LookML 验证器运行时才会显示。
“快捷帮助”面板
选择快捷帮助图标即可打开快捷帮助面板,其中提供了针对代码中当前位置的说明和选项。在边栏中选择一个参数名称,打开该参数的 Looker 文档页面。
自动设置格式
在开发模式下,您可以使用格式文件键盘快捷键自动缩进 LookML 文件。缩进指示了参数和子参数的层次结构,使 LookML 更易于阅读和理解。
可折叠
文件中每个顶级 LookML 参数开头旁边的间距中会显示一个小箭头。选择此箭头可折叠或展开 LookML 的相应部分,以便您专注于特定部分。
LookML 文件的查看文件操作菜单还提供了 Fold LookML 和 Unfold LookML 选项,用于将所有 LookML 部分展开或收起至当前文件中的顶级参数。
您还可以使用键盘快捷键折叠和展开 LookML。
标记添加、更改和删除操作
在 LookML IDE 中,当您处于开发模式且有未提交的更改时,系统会始终显示多个指示器。
- 系统会在文件名称窗口左侧显示一个蓝点,表示相应文件是新建的、已更改或重命名的。
- 当您打开新文件或经过更改的文件时,文件中的行号会以绿色突出显示,以显示新增行或已更改的行,而水平红线表示已移除的行。
添加评论
您可以向 LookML 添加注释,使其更具可读性。如需添加一条评论,请使用 #
字符:
dimension: name {
sql: ${TABLE}.name ;; # This is the customer's full name
}
您可以使用键盘快捷键注释掉整个代码块,具体操作步骤如下:
- 选择要注释掉的行。
- 按 Command + / (Mac) 或 Ctrl + / (Windows)。
IDE 会将 #
字符添加到您选择的每一行。
注释掉 SQL 块
如果要注释掉完全位于 SQL 代码块中的行,请手动添加 SQL 注释表示法。
使用 SQL 注释块时,注释掉的部分仍会解释为 LookML 代码。因此,您会在 LookML 生成的 SQL 中看到注释,但这些注释不会影响查询结果。
跳转到对象或文件
在 Looker IDE 中,您可以使用跳转到对象或文件功能进行快速搜索,以直接导航到 LookML 对象和项目文件。在文件浏览器或对象浏览器中点击跳转到对象或文件图标,或者使用键盘快捷键 Command-J (Mac) 或 Ctrl+J (Windows)。
如需了解详情,请参阅访问 LookML 项目文件文档页面。
查找和替换项目中的文本
Looker IDE 具有查找和替换功能,您可以使用该功能在所有项目文件中搜索文本,然后在批量操作中替换所有实例或所选实例。
如需使用 Looker IDE 的查找功能,请按以下步骤操作:
- 进入 IDE 中的搜索面板。
- 在查找字段中输入一个字词。
- 您也可以选择区分大小写,仅搜索与您在查找字段中输入的大小写匹配的实例,或者选择正则表达式以执行正则表达式搜索。
- 选择查找。
- (可选)您可以选择文件的名称,以在 IDE 中打开该文件。
如果您处于开发模式,您还会看到替换为字段。如需替换项目中的文本,请按以下步骤操作:
在替换为字段中输入替换文本。(可选)如果您想删除查找字段中的文本,而不是将其替换,可以将替换为字段留空。
选择选择并替换,预览文字在您的项目中将如何替换。
结果会显示项目中的所有实例,这些实例会突出显示以进行替换。您可以使用以下选项自定义要替换的实例:
- 使用结果摘要旁边的复选框可选择或取消选择整个项目中的所有实例。
- 通过单个实例旁边的复选框可选择或取消选择该实例。
选择替换所选内容按钮,将替换内容应用到您选择的实例。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 按钮。
测试“探索”中的字段
您可以通过查询来测试新维度并进行衡量。保存更改后,这些字段将显示在“探索”中的字段选择器中。您可以使用视图文件名旁边的查看文件操作下拉菜单,轻松访问当前视图的“探索”。查看文件操作下拉菜单会列出基于该视图的所有探索,包括该视图已加入的探索。例如,如需访问名为 users
的视图的“探索”,您可以从查看文件操作下拉菜单中选择探索用户选项。
在“用户探索”中,您可以选择新字段以将其添加到查询中。例如,您可以使用这两个新字段创建查询,这两个字段分别显示来自加利福尼亚州或纽约的用户的平均年龄,以及非纽约用户的平均年龄:
验证 LookML
如果您对更新感到满意,就可以保存所做的更改。IDE 会在单个文件中提醒您注意任何未解决的语法错误。
接下来,使用 LookML 验证器执行完整的模型验证。某些错误(例如由于缺少联接导致字段引用无效)需要全面了解模型,因此仅在 LookML 验证器运行时才会显示。在将 LookML 更改发布到生产环境之前,请务必对其进行验证。虽然验证无法捕获所有问题(例如数据库权限问题),但可以防止大多数错误。
LookML 验证工具仅扫描自上次 LookML 验证后更新的 LookML 文件或受更新影响的文件:
- 如果模型级设置发生变化,系统会再次验证所有内容。
- 如果视图发生变化,系统只会再次验证使用该视图的探索。
- 如果某个探索发生变化,只有该探索会再次进行验证。
正在运行验证
如需运行 LookML 验证器,请选择 Looker IDE 右上角的验证 LookML 按钮;或选择 IDE 顶部的项目运行状况图标以打开 Project Health 面板,然后点击验证 LookML 图标。
运行 LookML 验证器后,您可能会看到应解决的错误和其他警告的列表。您可以选择任意箭头以展开错误或警告列表。
如果您进行其他更改并保存,Project Health 面板中的验证程序按钮将再次可用。
验证消息
在 LookML 上运行验证后,Looker 会显示验证消息。
未找到任何 LookML 错误
如果验证工具未发现任何问题,Looker 会显示一个绿色对勾标记,以及 No LookML errors found(未发现任何 LookML 错误)文字。
LookML 错误
LookML 错误是可能会阻止查询运行的问题。括号中的数字是所发现错误的数量(在下面的示例中为 9 个):
在展开的问题列表中,您会看到验证未通过的原因。很多时候,如果您点击错误,会直接跳转到存在问题的代码行。您会在该行旁边看到一个红色的“X”。在某些情况下,将鼠标悬停在该图标上可获得更详细的错误信息:
Chat 团队提示:最常被问及的验证错误是“未知或无法访问的字段”。请访问错误:未知或无法访问的字段最佳做法页面,了解原因以及处理方法。
LookML 警告
LookML 警告可能不会阻止查询运行,但可能仍会导致用户功能受损或出乎意料。与错误一样,括号中的数字是发现的警告数(以下示例中的三条警告):
与 LookML 错误一样,您可以展开警告并跳转到问题代码,具体方法是在 Project Health 面板中选择警告,然后将鼠标悬停在红色 X 图标上以查看更多信息:
部署更改
在验证您的更改可以正常运行后,您可以使用 Looker 的 Git 集成提交更改并将其部署到生产环境。