tencent cloud

数据湖计算

文档数据湖计算实践教程Power BI 报表从 Snowflake 迁移到 DLC 指南

Power BI 报表从 Snowflake 迁移到 DLC 指南

下载
聚焦模式
字号
最后更新时间: 2026-09-08 16:45:18
本文档描述了将 Power BI 报表与数据集从 Snowflake 数据源迁移到 DLC 数据源的完整流程,涵盖:迁移前准备、分步操作、脚本替换、迁移后验证、网关配置以及故障排查。

迁移前准备

文件备份

保留连接 Snowflake 的原始 .pbix 文件作为备份。若迁移过程中出现配置错误,可用它进行回滚。

准备可用的 DLC SQL 脚本

开发并验证一条能在 DLC 环境中正常运行的 SQL 查询。
参考示例:
select day, region,
sum(ms_all_xl) ms_all_xl,
sum(ms_all_tsel) ms_all_tsel,
sum(ms_all_isat) ms_all_isat
from PRD_BCA.AURORA_FB_REGION_W_V2
where month = 202407
group by day, region

准备 DLC 连接字符串模板

提前获取正式的 DLC 连接字符串、DSN 名称和网关信息。务必使用正式生产数据源,不要使用测试节点或测试账号。
标准 DLC ODBC 连接模板:


1 = Value.NativeQuery(DLC.Catalogs("193.112.237.177", "10009", "testcaryzguo",
"default-rg-flicozfwoi", "qcs::cam::uin/100018379117:roleName/dlc_conn_2",
"dlc_conn_2", [Catalog="DataLakeCatalog", Database=null,
Implementation="1.0"]){[Name="DataLakeCatalog",Kind="Database"]}[Data],
"select `category_id`, `category_name`, `parent_category_id`, `level`, `create_time`
from `DataLakeCatalog`.`a`.`categories` limit 1000", null, [EnableFolding=true])


权限与环境检查

1. 确认你的账号对 DLC 数据库和数据表拥有查询访问权限。
2. 核实对 Power BI 网关(Gateway)和 DLC ODBC 连接器的访问权限。
3. 检查网络策略、私有链接(private link)以及网关服务器到 DLC 环境的连通性。

分步迁移操作

Step 1:打开查询编辑器

1. 打开目标 Power BI 报表,选中连接到 DLC 的数据集。
2. 右键该数据集,选择 转换数据,打开 Power Query 编辑器。


Step 2:通过高级编辑器替换数据源(核心步骤)

1. 进入 Home(主页) 标签页,点击 Advanced Editor(高级编辑器)
2. 开启 Word Wrap(自动换行) 和行号,便于查看。
3. 完全删除原有的 Snowflake Source 代码,然后粘贴准备好的 DLC ODBC 连接字符串。
4. 保持 Lower 列转换步骤不变。若未检测到语法错误,点击 Done(完成)


Step 3:替换为正式业务 SQL

1. 在 Applied Steps(应用的步骤) 下点击 Source 步骤,打开 DLC ODBC 连接窗口。
2. 窗口会加载预配置的 DSN 设置。删除其中默认的测试 SQL 语句。
3. 粘贴已验证的 DLC 业务 SQL 查询,点击 OK(确定)。


Step 4:保存本地查询配置

在查询编辑器顶部点击 Close & Apply(关闭并应用),完成本地数据源从 Snowflake 到 DLC 的切换。等待数据刷新完成。

Step 5:将报表重新发布到 Power BI Service

1. 在本地报表中全面测试所有可视化组件、筛选器、度量值和计算列。
2. 点击 Publish(发布),选择原工作区,以同名覆盖云端已有报表。
3. 发布完成后,进入 Power BI Service 设置,确认语义模型(Semantic Model)和网关数据源已更新为 DLC。

Power Query 代码对比:Snowflake vs DLC

原始 Snowflake 代码

let
Source = Value.NativeQuery(Snowflake.Databases("zm67644.ap-southeast-3.aws.privatelink.snowflakecomputing.com","PROD_WH")
{[Name="PROD"]}[Data],
"select `category_id`, `category_name`, `parent_category_id`, `level`, `create_time` from `DataLakeCatalog`.`a`.`categories` limit 1000"
, null, [EnableFolding=true]),
Lower = Table.TransformColumnNames(Source,Text.Lower)
in
Lower

迁移后的 DLC 代码

let
Source = Value.NativeQuery(DLC.Catalogs("193.112.237.177", "10009",
"testcaryzguo", "default-rg-flicozfwoi",
"qcs::cam::uin/100018379117:roleName/dlc_conn_2", "dlc_conn_2",
[Catalog="DataLakeCatalog", Database=null,
Implementation="1.0"]){[Name="DataLakeCatalog",Kind="Database"]}[Data],
"select `category_id`, `category_name`, `parent_category_id`, `level`, `create_time`
from `DataLakeCatalog`.`a`.`categories` limit 1000", null, [EnableFolding=true])
in
Source


迁移后验证

报表发布后需完成以下全部检查,确保业务正常运行:
1. 数据模型关系:与原 Snowflake 报表对比,验证所有表关系完整且有效。
2. 可视化组件:检查图表、分组、切片器和筛选器,确保无报错、无数据缺失。
3. 数据格式:验证日期、数值、文本字段的数据类型与显示格式,以及聚合逻辑。
4. 网关与连接状态:进入 Power BI Service 的语义模型设置,确认数据源为 DLC ODBC。
检查网关运行状态和数据源映射。

网关故障排查

1. 确认 DLC 的私有链接和服务器白名单设置。
2. 核实 DSN 名称和连接参数与生产环境一致。
3. 检查网关连接器和 DLC 数据访问的账号权限。

常见错误及解决方案

错误 1:日期解析失败

报错信息
OLE DB or ODBC error: [DataFormat.Error] We couldn't parse the input provided as a Date value.
根本原因:查询或转换步骤中日期格式不兼容,或设置有误。
解决方案:
1. 检查 Power Query 中所有已应用的步骤,核对列名转换和数据类型转换。
2. 调整 DLC SQL 中的日期字段格式,使其符合 Power BI 的解析规则。
3. 刷新查询步骤并重新加载数据。

错误 2:ODBC 连接失败

报错信息
ODBC: Failed to connect to data source, DSN not found / Access denied
根本原因:DSN 配置错误、网络故障,或账号权限不足。
解决方案:
1. 在网关服务器上仔细核对 DLC ODBC 的 DSN 名称和参数。
2. 测试网关服务器到 DLC 数据库的网络连通性。
3. 申请 DLC 数据表和 Power BI 网关所需的相关权限。

重要注意事项

1. 迁移前务必备份原始 Snowflake .pbix 文件,以便回滚。
2. DLC SQL 语句末尾绝不能加分号。
3. DLC 仅使用正式生产环境的 DSN 和账号,不要使用测试环境配置。
4. 覆盖云端已有报表会替换所有原始设置——发布前请完成完整的本地测试。
5. 迁移后新旧报表都保留一段时间,便于问题追踪。
6. 如启用了增量刷新(incremental refresh)和聚合表(aggregation tables),需重新验证这些功能。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈