在构建基于 ODBC 的连接器时,最好偶尔测试和排除连接器问题。 本部分介绍如何设置和使用一些测试和故障排除工具。
在 Power BI Desktop 中使用跟踪工具
测试基于 ODBC 的连接器并排除故障的基本工具之一,是在 Power BI Desktop 中使用跟踪功能来确定错误发生的原因。
若要在 Power BI Desktop 中启用跟踪,请执行以下操作:
- 转到“文件”>“选项和设置”>“选项”。
- 选择“诊断”选项卡。
- 选择“启用跟踪”选项。
- 选择“打开跟踪文件夹”链接(应为
%LOCALAPPDATA%/Microsoft/Power BI Desktop/Traces
)。 - 删除现有跟踪文件。
- 进行测试。
- 关闭 Power BI Desktop,确保所有日志文件都刷新到磁盘。
以下是在 Power BI Desktop 中进行初始测试的步骤:
- 关闭 Power BI Desktop。
- 清除跟踪目录。
- 打开 Power BI Desktop 并启用跟踪。
- 连接到数据源,然后选择“直接查询”模式。
- 在导航器中选择一个表,然后选择“编辑”。
- 以各种方式操作查询,包括:
- 获取前 N 行(例如 10)。
- 为不同的数据类型(int、string、bool 等)设置相等筛选器。
- 设置其他范围筛选器(大于、小于)。
- 依据 NULL / NOT NULL 筛选。
- 选择列的子集。
- 依据不同的列组合聚合/分组。
- 添加一列由其他列计算得出的结果 ([C] = [A] + [B])。
- 按一列或多列排序。
- 无法折叠的表达式将导致出现警告栏。 记下失败,删除步骤,然后进入下一个测试用例。 有关故障原因的详细信息应发布到跟踪日志中。
- 关闭 Power BI Desktop。
- 将跟踪文件复制到新目录。
- 用文本编辑器打开跟踪文件。
- 在跟踪文件中的搜索
OdbcQuery/FoldingWarning
条目。 这些条目应包含详细信息,说明查询引擎为何认为此操作无法进行查询折叠。
完成简单的查询后,就可以尝试使用 DirectQuery 方案(例如,在报表视图中生成报表)。 DirectQuery 模式下生成的查询更为复杂(即使用子选择、COALESCE 语句和聚合)。
DirectQuery 模式下的字符串串联
M 引擎在其查询折叠逻辑中执行基本类型大小限制验证。 如果在尝试连接两个可能溢出基础数据库类型最大大小的字符串时收到折叠错误:
- 请确保在发生字符串串联溢出时,数据库可以支持向上转换为 CLOB 类型。
- 将
Odbc.DataSource
的 TolerateConcatOverflow 选项设置为true
。
注意
Power Query/ODBC 扩展当前不支持 DAX CONCATENATE 函数。
扩展作者应通过添加计算列 ([stringCol1] & [stringCol2]
) 确保字符串串联通过查询编辑器工作。
如果将来增加了折叠 CONCATENATE 操作的功能,应能与现有扩展无缝配合。