本地数据网关:设置和配置指南
本地数据网关是 Power BI 服务(云)和本地数据源之间的桥梁。如果没有它,位于公司防火墙后面的任何数据(SQL Server 数据库、PostgreSQL 实例、Oracle 系统、文件共享、ODBC 源)都无法在 Power BI 服务中刷新。从云到本地数据库的实时/DirectQuery 连接也需要网关。
尽管网关发挥着至关重要的作用,但它常常被视为是事后才想到的。组织将其安装在开发人员的笔记本电脑上,跳过高可用性配置,并想知道为什么计划的刷新每个周末都会失败。本指南涵盖了整个生命周期:架构决策、安装、集群、数据源配置、监控、性能调整以及最常见错误的故障排除。
要点
- 本地数据网关有两种模式:个人(单用户,不共享)和标准/企业(整个组织共享,支持集群)
- 企业网关应始终安装在具有可靠电源、网络和正常运行时间的专用服务器(绝不是开发人员工作站)上
- 具有两个或更多节点的网关集群可提供高可用性 --- 如果一个节点出现故障,另一个节点将继续处理刷新请求
- 所有通信都是从网关到 Azure 服务总线的出站 --- 无需打开入站防火墙端口
- 数据源凭据使用恢复密钥在网关计算机上本地加密 --- 丢失此密钥意味着重新配置所有数据源
- 网关日志是最有用的故障排除资源,位于用户本地应用程序数据下的 GatewayComponents 文件夹中
- 可以通过为关系源启用连接池、设置适当的超时值并确保网关计算机具有足够的 RAM 和 CPU 来提高性能
网关架构
网关如何工作
网关使用 TCP 端口 443 (HTTPS) 建立与 Azure 服务总线的出站连接。不需要在防火墙中打开入站端口。通信流程为:
- 用户在服务中打开 Power BI 报表,或计划刷新触发器
- Power BI 服务向 Azure 服务总线发送查询请求
- 网关(轮询Azure服务总线)接收请求
- 网关对本地数据源执行查询
- 网关对结果进行加密并通过Azure Service Bus发回
- Power BI 服务接收结果并呈现报表或完成刷新
这种架构意味着网关永远不会接收来自互联网的入站连接。它启动所有出站通信,从而显着简化了防火墙配置。
个人网关与标准(企业)网关
| 特色 | 个人网关 | 标准网关 |
|---|---|---|
| 用户 | 仅限单用户 | 跨组织共享 |
| 数据来源 | 用户自己的来源 | 集中管理源 |
| 聚类 | 不支持 | 最多 10 个节点 |
| 行政 | 用户自助服务 | 网关管理员角色 |
| 运行为 | Windows 应用程序 | Windows 服务 |
| 直接查询 | 不支持 | 支持 |
| 数据流 | 不支持 | 支持 |
| 实时连接 | 不支持 | 支持 |
| 虚拟网络 | 不支持 | 支持(高级) |
| 推荐 | 仅限个人原型制作 | 生产用途 |
对于任何生产部署,请使用标准(企业)网关。个人网关仅适合个人用户使用自己的数据源进行原型设计。
安装
先决条件
在安装网关之前,请确保目标计算机满足以下要求:
| 要求 | 最低 | 推荐 |
|---|---|---|
| 操作系统 | Windows 服务器 2016 | Windows Server 2022 |
| 中央处理器 | 4 核 | 8 核 |
| 内存 | 8GB | 16GB |
| 磁盘 | 50 GB 免费 | 100 GB 固态硬盘 |
| .NET 框架 | 4.8 | 4.8(最新累积更新) |
| 网络 | 1 Gbps | 1 Gbps,数据源延迟低 |
| TLS | 1.2 必需 | 1.2(1.0/1.1 禁用) |
重要: 不要将网关安装在与数据库相同的服务器上。网关在刷新操作期间会竞争 CPU 和 RAM,将其与数据库共置可能会降低网关和数据库的性能。
安装步骤
- 从微软官方下载页面下载最新的网关安装程序 2.运行安装程序并为企业模式选择“本地数据网关(推荐)” 3.接受许可条款并选择安装目录
- 使用您的组织帐户登录(该帐户必须与您的 Power BI 服务位于同一 Azure AD 租户中)
- 选择“在此计算机上注册新网关”
- 命名网关(使用描述性名称:例如,“PROD-GW-NY-01”表示生产网关,纽约,节点 1)
- 设置恢复密钥 --- 将其安全地存储在密码管理器或密钥保管库中。您将需要它来添加集群节点或恢复网关 8.完成安装
网关服务自动启动并默认在“NT SERVICE\PBIEgwService”帐户下运行。
更改服务帐户
默认情况下,网关作为本地服务帐户运行。要访问网络资源(文件共享、使用 Windows 身份验证加入域的数据库),您可能需要将服务帐户更改为域帐户:
1.打开Windows服务(services.msc) 2.找到“本地数据网关服务” 3. 右键单击,选择“属性”,然后选择“登录”选项卡 4. 选择“此帐户”并输入域凭据 5、重启服务
授予服务帐户以下内容:
- “作为服务登录”本地政策
- 读取需要查询的数据源
- 网络访问数据源服务器
高可用性网关集群
单个网关是单点故障。如果计算机出现故障,所有计划的刷新和 DirectQuery 连接都会失败。网关集群通过跨多个节点分发请求来解决这个问题。
创建集群
- 按照相同的安装步骤在第二台计算机上安装网关
- 在“注册新网关”步骤中,选择“添加到现有网关集群”
- 从下拉列表中选择现有网关名称
- 输入恢复密钥(与第一个节点使用的密钥相同) 5.完成安装
集群现在有两个节点。请求分布在健康的节点上。
负载均衡配置
默认情况下,网关集群随机分配请求。您可以配置负载平衡:
循环: 在所有节点上均匀分配请求。最适合具有相同硬件的集群。
加权路由: 将更多请求定向到更强大的节点。在 Power BI 管理门户中的网关设置下进行配置。
**仅故障转移:**所有请求都转到主节点。辅助节点仅在主节点不可用时激活。最适合具有备用服务器的成本意识型部署。
推荐的集群拓扑
对于生产部署,ECOSIRE 建议 至少两个网关节点:
| 组件 | 节点 1 | 节点 2 |
|---|---|---|
| 角色 | 小学 | 中学 |
| 地点 | 主数据中心 | 灾难恢复站点或同一 DC |
| 硬件 | 8 核,16 GB RAM | 8 核,16 GB RAM |
| 网络 | 1 Gbps,低延迟 | 1 Gbps,低延迟 |
| 维护窗口 | 周日凌晨 2 点至 4 点 | 周六凌晨 2 点至 4 点 |
错开维护时段,以便两个节点永远不会同时关闭。 Windows 更新、.NET 补丁和网关版本升级应一次应用于一个节点。
数据源配置
添加数据源
安装网关后,在 Power BI 服务中配置数据源:
- 转到“设置”(齿轮图标),然后转到“管理网关”
- 选择您的网关集群 3.点击“添加数据源” 4.选择数据源类型(SQL Server、PostgreSQL、Oracle、ODBC等)
- 输入连接详细信息(服务器名称、数据库名称)
- 选择身份验证方法(Windows、Basic、OAuth2)
- 输入凭据
- 测试连接
支持的数据源类型
标准网关支持80多种数据源类型。 Power BI 最常见的:
| 数据来源 | 验证方法 | 直接查询 | 笔记 |
|---|---|---|---|
| SQL Server | Windows、基本、OAuth | 是的 | 最常见的企业源码 |
| PostgreSQL | 基本 | 是的 | 被 Odoo 使用,许多开源应用程序 |
| 甲骨文 | Windows,基本 | 是的 | 网关上需要 Oracle 客户端 |
| MySQL | 基本 | 是的 | 社区连接器 |
| SAP HANA | 基本,SAML | 是的 | 需要 SAP HANA 客户端 |
| 文件(CSV/Excel) | 不适用 | 没有 | 文件必须位于网络共享上 |
| ODBC | 基本,Windows | 是的 | 适用于任何 ODBC 源的通用连接器 |
| 网络应用程序接口 | 匿名、基本、OAuth | 没有 | 对于 REST/OData 端点 |
凭证加密
数据源凭据使用恢复密钥进行加密并本地存储在网关计算机上。它们永远不会以明文形式发送到云端。添加集群节点时,将使用共享恢复密钥同步凭据。
重要提示: 如果您丢失了恢复密钥并且所有网关节点都出现故障,您必须:
- 使用新的恢复密钥安装新网关
- 重新配置所有数据源和凭据
- 将 Power BI 服务中的所有数据集重新映射到新网关
将恢复密钥存储在 Azure Key Vault 或组织的密码管理器中。
连接池
对于关系数据库(SQL Server、PostgreSQL、Oracle),启用连接池以在刷新操作中重用数据库连接:
在网关配置文件(Microsoft.PowerBI.EnterpriseGateway.exe.config)中:
<setting name="PoolConnections" serializeAs="String">
<value>True</value>
</setting>
<setting name="MinPoolSize" serializeAs="String">
<value>2</value>
</setting>
<setting name="MaxPoolSize" serializeAs="String">
<value>20</value>
</setting>
连接池减少了为每个查询建立新数据库连接的开销,尤其是在具有许多并发用户的 DirectQuery 工作负载期间。
定时刷新配置
设置计划刷新
将数据集发布到 Power BI 服务后:
- 进入数据集设置
- 在“网关连接”下,选择您的网关和配置的数据源
- 在“计划刷新”下,启用切换开关 4.设置刷新频率(每日、每周或特定次数) 5.配置时区 6.可选择设置失败通知
刷新频率限制
| 许可证 | 每天最大刷新次数 | 最小间隔 |
|---|---|---|
| Power BI 专业版 | 8 | 3小时 |
| Power BI Premium(按容量) | 48 | 48 30 分钟 |
| Power BI Premium 每用户 | 48 | 48 30 分钟 |
刷新窗口并令人震惊
不要同时安排所有数据集刷新。网关的CPU和内存有限,并发刷新会争夺资源。
最佳实践: 创建一个刷新计划,在可用窗口中交错数据集:
| 时间 | 数据集 | 优先 |
|---|---|---|
| 凌晨 1:00 | 财务 - GL 摘要 | 关键 |
| 凌晨 1:30 | 销售-管道 | 关键 |
| 凌晨 2:00 | 人力资源 - 员工人数 | 高 |
| 凌晨 2:30 | 库存-库存水平 | 高 |
| 凌晨 3:00 | 制造-OEE | 中等 |
| 凌晨 3:30 | 营销- 活动指标 | 中等 |
关键数据集首先刷新,确保即使稍后刷新遇到问题也能完成。
增量刷新和网关
增量刷新显着减少了通过网关处理的数据量。只获取新的和更改的行,而不是刷新整个数据集。这对于大型数据集尤其重要,因为完整刷新需要数小时并消耗过多的网关资源。
在 Power BI Desktop 中配置增量刷新(请参阅 RangeStart/RangeEnd 参数方法),然后发布到服务。网关自动处理参数化查询。
防火墙和代理配置
所需的出站连接
网关需要出站 HTTPS (TCP 443) 访问:
| 目的地 | 目的 |
|---|---|
| *.servicebus.windows.net | Azure 服务总线(查询中继) |
| *.frontend.clouddatahub.net | 网关注册和更新 |
| *.core.windows.net | Azure Blob 存储(数据传输) |
| 登录.microsoftonline.com | Azure AD 身份验证 |
| *.msftncsi.com | 网络连接检查 |
| 下载.microsoft.com | 网关更新 |
如果您的防火墙需要显式 IP 允许列表而不是通配符域,请使用 Microsoft 提供的 Azure IP 范围 JSON 文件(每周更新)来查找您所在区域的 Azure 服务总线的 IP 范围。
代理服务器配置
如果网关必须通过公司代理进行路由:
- 编辑
Microsoft.PowerBI.EnterpriseGateway.exe.config - 在
<system.net>部分添加代理配置:
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy proxyaddress="http://proxy.company.com:8080"
bypassonlocal="true" />
</defaultProxy>
</system.net>
3.重启网关服务
如果代理需要特定凭据(不是直通 Windows 身份验证),您可能需要使用代理 PAC 文件或配置代理以允许网关的服务帐户而无需额外身份验证。
TLS 配置
网关需要 TLS 1.2。如果您的环境仍启用 TLS 1.0 或 1.1,网关将默认使用 TLS 1.2。但是,如果数据源服务器仅支持 TLS 1.0,则连接将失败。
验证 Windows 注册表中是否启用了 TLS 1.2:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
Enabled = 1 (DWORD)
DisabledByDefault = 0 (DWORD)
监控和日志记录
网关日志
网关将详细日志写入:
C:\Users\<ServiceAccount>\AppData\Local\Microsoft\On-premises data gateway\
关键日志文件:
| 文件 | 内容 |
|---|---|
| GatewayInfo*.log | 一般网关操作、启动、关闭 |
| 网关错误*.log | 错误和异常 |
| 混搭*.log | Power Query (M) 引擎操作 |
| 报告*.log | 查询执行详细信息、性能计数器 |
启用附加日志记录
要进行故障排除,请启用详细日志记录:
- 打开网关配置应用程序
- 转到诊断 3.启用“附加日志记录”
- 重现问题
- 使用“导出日志”按钮导出日志(创建所有日志文件的 ZIP)
- 故障排除后禁用附加日志记录(它会生成大量日志量)
性能计数器
该网关在“本地数据网关”类别下公开 Windows 性能计数器:
| 专柜 | 描述 | 警报阈值 |
|---|---|---|
| 活跃连接 | 当前与数据源的开放连接 | > 50 |
| 每秒执行的查询数 | 查询吞吐量 | 基线 + 50% |
| 平均查询持续时间 | 执行查询的时间 | > 30 秒 |
| 队列长度 | 等待执行的挂起查询 | > 10 |
| 内存使用情况 | 网关进程内存消耗 | > 80% 可用 |
| CPU 使用率 | 网关进程CPU消耗 | > 70% 持续 |
设置 Windows 性能监视器或监视工具(Prometheus、Datadog、Azure Monitor)来跟踪这些计数器并针对阈值发出警报。
Power BI 管理门户监控
在 Power BI 管理门户中:
- 进入管理门户,然后进入网关管理
- 查看所有网关及其状态(在线/离线)和版本 3.查看数据源使用统计
- 监控刷新成功/失败率
配置网关离线事件和刷新失败的电子邮件通知。
性能调优
硬件调整大小
网关的性能主要受以下因素约束:
- CPU — 用于查询解析、数据压缩和加密
- RAM——用于保存中间查询结果
- 网络 — 用于将数据传输到 Azure 服务总线
尺寸指南:
| 场景 | 中央处理器 | 内存 | 网络 |
|---|---|---|---|
| 5 个数据集,每日刷新 | 4 核 | 8GB | 100 Mbps |
| 20 个数据集,每天两次 | 8 核 | 16GB | 1 Gbps |
| 50 多个数据集,DirectQuery | 16 核 | 32GB | 1 Gbps |
| 大量 DirectQuery,许多并发用户 | 16+ 核心 | 64GB | 10 Gbps |
混搭引擎设置
网关使用 Power Query (Mashup) 引擎进行数据转换。在网关应用程序中配置:
最大并发查询数: 默认为 CPU 核心数乘以 2。增加 I/O 密集型工作负载(等待慢速数据源)。减少 CPU 密集型工作负载(繁重的转换)。
每个查询的内存限制: 默认没有限制。设置限制(例如 2 GB)以防止单个失控查询消耗所有可用 RAM。
网络优化
将网关定位在靠近数据源的位置。 网关和数据源之间的网络延迟乘以每次刷新的查询数。网关与数据库位于同一数据中心,可最大限度地减少延迟。
请勿根据与 Azure 的邻近程度来定位网关。 Azure 服务总线连接是单个持久 TCP 连接。 Azure 延迟会影响初始连接设置,但不会影响查询吞吐量。
**使用有线连接。**切勿在 Wi-Fi 上运行生产网关。间歇性连接会导致刷新失败。
从源头进行查询优化
提高网关性能的最快方法是优化其执行的查询:
- 使用自定义 SQL 查询而不是导入整个表(减少数据量)
- 在 WHERE 子句和 JOIN 中使用的列上创建数据库索引
- 使用带有预连接和预聚合的视图来处理复杂的数据模型
- 在 Power Query 中启用查询折叠以将转换推送到数据库
- 实施增量刷新以减少每个刷新周期的数据量
常见错误故障排除
###“网关无法访问”
原因: 网关服务已停止、计算机已关闭或与 Azure 的网络连接被阻止。
分辨率:
1.检查网关Windows服务是否正在运行(services.msc) 2. 验证是否允许到 *.servicebus.windows.net 的出站 HTTPS 3. 检查代理设置是否位于公司代理后面 4. 验证网关计算机是否具有互联网连接 5. 检查网关版本是否过时(自动更新可能会失败)
###“无法连接到数据源”
原因: 凭据不正确、数据源的网络连接或驱动程序问题。
分辨率:
- 在网关配置应用程序中测试连接(诊断,然后测试连接)
- 验证数据源服务器是否可以从网关计算机访问(ping、telnet 到端口)
- 验证凭据正确且帐户未锁定/过期
- 对于 Oracle 和 SAP,验证网关计算机上是否安装了所需的客户端库 5.检查数据源的防火墙是否允许来自网关IP的连接
###“本地数据网关的刷新时间太长”
**原因:**数据集大、查询慢、网关资源不足或网络瓶颈。
分辨率:
1.启用增量刷新,减少数据量 2.优化SQL查询(添加索引、减少列、过滤行) 3.刷新时检查网关机器CPU和RAM使用情况 4.错开刷新计划以减少并发负载 5.考虑添加第二个网关节点用于负载分配
###“数据源凭据无效”
原因: 密码更改、帐户锁定或 Kerberos 委派配置错误。
分辨率:
- 在 Power BI 服务中重新输入凭据(数据集设置,然后是网关连接)
- 如果使用带有 Kerberos 的 Windows 身份验证,请验证:
- 网关服务帐户在 Active Directory 中具有委派权限
- 为数据源正确配置 SPN
- 可从网关访问 KDC(域控制器)
###“网关版本已过时”
原因: 自动更新失败或被禁用。
分辨率:
- 从 Microsoft 下载最新的网关安装程序
- 在现有网关计算机上运行安装程序(就地升级)
- 对于集群,一次升级一个节点,升级之间有间隔
- 升级后在 Power BI 管理门户中验证网关版本
安全最佳实践
最小特权原则
- 网关服务帐户应对数据源具有只读访问权限
- 不要使用域管理员或数据库管理员帐户
- 如果您的安全策略需要,为每个数据源类型创建专用服务帐户
- 定期轮换服务帐户密码并更新网关数据源配置
恢复密钥管理
恢复密钥对所有本地存储的凭据进行加密。像对待数据库主密钥一样小心对待它:
- 存储在 Azure Key Vault 或企业密码管理器中
- 记录谁有权访问恢复密钥
- 将恢复密钥轮换纳入您的密钥管理策略中
- 通过使用恢复密钥从备份恢复网关来测试恢复
网络分段
将网关放置在可以到达的网段中:
- 数据源服务器(SQL Server、PostgreSQL、Oracle等)
- Azure 服务总线(出站 HTTPS)
- Azure AD(出站 HTTPS)
阻止所有其他入站和出站流量。网关不需要来自任何源的入站连接。
审计追踪
在网关计算机上启用 Windows 安全审核以跟踪:
- 服务帐户登录事件
- 网关配置更改
- 数据源访问模式
将这些事件转发到您的 SIEM(Splunk、Sentinel、Datadog)以进行集中监控。
迁移和升级场景
迁移到新的网关计算机
1.在新机器上安装网关 2. 注册时选择“迁移、恢复或接管现有网关” 3. 输入原网关的恢复密钥 4.新机器继承所有数据源配置和凭证 5. 验证所有数据源在 Power BI 管理门户中显示为已连接 6. 更新所有基于 IP 的防火墙规则以包含新计算机的 IP 7. 停用旧网关机器
升级网关版本
Microsoft 每月发布网关更新。最佳实践:
- 订阅网关发行说明以获取更改的提前通知
- 首先在非生产网关集群中测试新版本
- 对于生产集群,一次升级一个节点,间隔 24 小时
- 验证每个节点升级后的刷新成功率
- 在新版本验证之前至少保留一个节点在前一版本上
网关支持集群中的N-1版本兼容性——节点不需要运行完全相同的版本。
常见问题解答
我可以在虚拟机上安装网关吗?
是的。该网关在物理机和虚拟机上运行,包括 Azure VM、AWS EC2 以及本地 Hyper-V 或 VMware。对于 Azure VM,请考虑使用 VNet 数据网关(高级容量的预览版),这完全不需要自我管理网关。对于本地 VM,请确保 VM 具有专用(而非共享)CPU 和 RAM 资源,并且虚拟机管理程序不会过度使用资源。
单个网关可以支持多少个数据源?
每个网关的数据源数量没有硬性限制。实际上,网关通常支持 50 到 100 个数据源,不会出现任何问题。限制因素是刷新窗口期间的并发查询负载,而不是配置的数据源的数量。如果刷新时间缩短,请添加集群节点,而不是创建额外的网关安装。
网关支持Linux吗?
否。本地数据网关需要 Windows(Server 2016 或更高版本)。如果您的数据源在 Linux 上运行,请在可以通过网络访问 Linux 数据源服务器的 Windows 计算机上安装网关。网关通过网络连接到数据源——它不需要与数据源运行在同一操作系统上。
如果集群中的两个网关节点同时离线会发生什么?
所有计划的刷新都会失败,并且所有 DirectQuery 连接都会返回错误。 Power BI 服务检测脱机状态并向网关管理员发送通知(如果已配置)。使用缓存数据(导入模式)的报表继续显示上次成功刷新的数据。当至少一个节点恢复在线时,将自动处理挂起的刷新请求。为了防止出现这种情况,请错开维护时段并将集群节点放置在单独的物理基础设施上。
网关能否处理实时流数据?
该网关是针对查询响应模式而不是流式传输而设计的。对于实时数据,请考虑使用 Power BI 流数据集(完全绕过网关)、Azure 流分析或具有 Power BI 实时仪表板的 Azure 事件中心。该网关支持 DirectQuery 以近乎实时地访问本地数据库,但每次报告交互都会触发新的查询,而不是接收连续的数据流。
作者
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
相关文章
Power BI 与 Tableau 2026:完整的商业智能比较
Power BI 与 Tableau 2026:在功能、定价、生态系统、治理和 TCO 方面进行正面交锋。关于何时选择每个选项以及如何迁移的明确指导。
商业智能数据仓库:架构与实施
为商业智能构建现代数据仓库。比较 Snowflake、BigQuery、Redshift,学习 ETL/ELT、维度建模和 Power BI 集成。
Power BI 客户分析:RFM 细分和终身价值
使用 DAX 公式在 Power BI 中实施 RFM 细分、群组分析、流失预测可视化、CLV 计算和客户旅程映射。