本地数据网关:设置和配置指南

安装并配置 Power BI 本地数据网关。个人模式与企业模式、集群、防火墙设置、监控和故障排除。

E
ECOSIRE Research and Development Team
|2026年3月17日6 分钟阅读1.2k 字数|

本地数据网关:设置和配置指南

本地数据网关是 Power BI 服务(云)和本地数据源之间的桥梁。如果没有它,位于公司防火墙后面的任何数据(SQL Server 数据库、PostgreSQL 实例、Oracle 系统、文件共享、ODBC 源)都无法在 Power BI 服务中刷新。从云到本地数据库的实时/DirectQuery 连接也需要网关。

尽管网关发挥着至关重要的作用,但它常常被视为是事后才想到的。组织将其安装在开发人员的笔记本电脑上,跳过高可用性配置,并想知道为什么计划的刷新每个周末都会失败。本指南涵盖了整个生命周期:架构决策、安装、集群、数据源配置、监控、性能调整以及最常见错误的故障排除。


要点

  • 本地数据网关有两种模式:个人(单用户,不共享)和标准/企业(整个组织共享,支持集群)
  • 企业网关应始终安装在具有可靠电源、网络和正常运行时间的专用服务器(绝不是开发人员工作站)上
  • 具有两个或更多节点的网关集群可提供高可用性 --- 如果一个节点出现故障,另一个节点将继续处理刷新请求
  • 所有通信都是从网关到 Azure 服务总线的出站 --- 无需打开入站防火墙端口
  • 数据源凭据使用恢复密钥在网关计算机上本地加密 --- 丢失此密钥意味着重新配置所有数据源
  • 网关日志是最有用的故障排除资源,位于用户本地应用程序数据下的 GatewayComponents 文件夹中
  • 可以通过为关系源启用连接池、设置适当的超时值并确保网关计算机具有足够的 RAM 和 CPU 来提高性能

网关架构

网关如何工作

网关使用 TCP 端口 443 (HTTPS) 建立与 Azure 服务总线的出站连接。不需要在防火墙中打开入站端口。通信流程为:

  1. 用户在服务中打开 Power BI 报表,或计划刷新触发器
  2. Power BI 服务向 Azure 服务总线发送查询请求
  3. 网关(轮询Azure服务总线)接收请求
  4. 网关对本地数据源执行查询
  5. 网关对结果进行加密并通过Azure Service Bus发回
  6. Power BI 服务接收结果并呈现报表或完成刷新

这种架构意味着网关永远不会接收来自互联网的入站连接。它启动所有出站通信,从而显着简化了防火墙配置。

个人网关与标准(企业)网关

特色个人网关标准网关
用户仅限单用户跨组织共享
数据来源用户自己的来源集中管理源
聚类不支持最多 10 个节点
行政用户自助服务网关管理员角色
运行为Windows 应用程序Windows 服务
直接查询不支持支持
数据流不支持支持
实时连接不支持支持
虚拟网络不支持支持(高级)
推荐仅限个人原型制作生产用途

对于任何生产部署,请使用标准(企业)网关。个人网关仅适合个人用户使用自己的数据源进行原型设计。


安装

先决条件

在安装网关之前,请确保目标计算机满足以下要求:

要求最低推荐
操作系统Windows 服务器 2016Windows Server 2022
中央处理器4 核8 核
内存8GB16GB
磁盘50 GB 免费100 GB 固态硬盘
.NET 框架4.84.8(最新累积更新)
网络1 Gbps1 Gbps,数据源延迟低
TLS1.2 必需1.2(1.0/1.1 禁用)

重要: 不要将网关安装在与数据库相同的服务器上。网关在刷新操作期间会竞争 CPU 和 RAM,将其与数据库共置可能会降低网关和数据库的性能。

安装步骤

  1. 从微软官方下载页面下载最新的网关安装程序 2.运行安装程序并为企业模式选择“本地数据网关(推荐)” 3.接受许可条款并选择安装目录
  2. 使用您的组织帐户登录(该帐户必须与您的 Power BI 服务位于同一 Azure AD 租户中)
  3. 选择“在此计算机上注册新网关”
  4. 命名网关(使用描述性名称:例如,“PROD-GW-NY-01”表示生产网关,纽约,节点 1)
  5. 设置恢复密钥 --- 将其安全地存储在密码管理器或密钥保管库中。您将需要它来添加集群节点或恢复网关 8.完成安装

网关服务自动启动并默认在“NT SERVICE\PBIEgwService”帐户下运行。

更改服务帐户

默认情况下,网关作为本地服务帐户运行。要访问网络资源(文件共享、使用 Windows 身份验证加入域的数据库),您可能需要将服务帐户更改为域帐户:

1.打开Windows服务(services.msc) 2.找到“本地数据网关服务” 3. 右键单击,选择“属性”,然后选择“登录”选项卡 4. 选择“此帐户”并输入域凭据 5、重启服务

授予服务帐户以下内容:

  • “作为服务登录”本地政策
  • 读取需要查询的数据源
  • 网络访问数据源服务器

高可用性网关集群

单个网关是单点故障。如果计算机出现故障,所有计划的刷新和 DirectQuery 连接都会失败。网关集群通过跨多个节点分发请求来解决这个问题。

创建集群

  1. 按照相同的安装步骤在第二台计算机上安装网关
  2. 在“注册新网关”步骤中,选择“添加到现有网关集群”
  3. 从下拉列表中选择现有网关名称
  4. 输入恢复密钥(与第一个节点使用的密钥相同) 5.完成安装

集群现在有两个节点。请求分布在健康的节点上。

负载均衡配置

默认情况下,网关集群随机分配请求。您可以配置负载平衡:

循环: 在所有节点上均匀分配请求。最适合具有相同硬件的集群。

加权路由: 将更多请求定向到更强大的节点。在 Power BI 管理门户中的网关设置下进行配置。

**仅故障转移:**所有请求都转到主节点。辅助节点仅在主节点不可用时激活。最适合具有备用服务器的成本意识型部署。

推荐的集群拓扑

对于生产部署,ECOSIRE 建议 至少两个网关节点:

组件节点 1节点 2
角色小学中学
地点主数据中心灾难恢复站点或同一 DC
硬件8 核,16 GB RAM8 核,16 GB RAM
网络1 Gbps,低延迟1 Gbps,低延迟
维护窗口周日凌晨 2 点至 4 点周六凌晨 2 点至 4 点

错开维护时段,以便两个节点永远不会同时关闭。 Windows 更新、.NET 补丁和网关版本升级应一次应用于一个节点。


数据源配置

添加数据源

安装网关后,在 Power BI 服务中配置数据源:

  1. 转到“设置”(齿轮图标),然后转到“管理网关”
  2. 选择您的网关集群 3.点击“添加数据源” 4.选择数据源类型(SQL Server、PostgreSQL、Oracle、ODBC等)
  3. 输入连接详细信息(服务器名称、数据库名称)
  4. 选择身份验证方法(Windows、Basic、OAuth2)
  5. 输入凭据
  6. 测试连接

支持的数据源类型

标准网关支持80多种数据源类型。 Power BI 最常见的:

数据来源验证方法直接查询笔记
SQL ServerWindows、基本、OAuth是的最常见的企业源码
PostgreSQL基本是的被 Odoo 使用,许多开源应用程序
甲骨文Windows,基本是的网关上需要 Oracle 客户端
MySQL基本是的社区连接器
SAP HANA基本,SAML是的需要 SAP HANA 客户端
文件(CSV/Excel)不适用没有文件必须位于网络共享上
ODBC基本,Windows是的适用于任何 ODBC 源的通用连接器
网络应用程序接口匿名、基本、OAuth没有对于 REST/OData 端点

凭证加密

数据源凭据使用恢复密钥进行加密并本地存储在网关计算机上。它们永远不会以明文形式发送到云端。添加集群节点时,将使用共享恢复密钥同步凭据。

重要提示: 如果您丢失了恢复密钥并且所有网关节点都出现故障,您必须:

  1. 使用新的恢复密钥安装新网关
  2. 重新配置所有数据源和凭据
  3. 将 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 服务后:

  1. 进入数据集设置
  2. 在“网关连接”下,选择您的网关和配置的数据源
  3. 在“计划刷新”下,启用切换开关 4.设置刷新频率(每日、每周或特定次数) 5.配置时区 6.可选择设置失败通知

刷新频率限制

许可证每天最大刷新次数最小间隔
Power BI 专业版83小时
Power BI Premium(按容量)4848 30 分钟
Power BI Premium 每用户4848 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.netAzure 服务总线(查询中继)
*.frontend.clouddatahub.net网关注册和更新
*.core.windows.netAzure Blob 存储(数据传输)
登录.microsoftonline.comAzure AD 身份验证
*.msftncsi.com网络连接检查
下载.microsoft.com网关更新

如果您的防火墙需要显式 IP 允许列表而不是通配符域,请使用 Microsoft 提供的 Azure IP 范围 JSON 文件(每周更新)来查找您所在区域的 Azure 服务总线的 IP 范围。

代理服务器配置

如果网关必须通过公司代理进行路由:

  1. 编辑Microsoft.PowerBI.EnterpriseGateway.exe.config
  2. <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错误和异常
混搭*.logPower Query (M) 引擎操作
报告*.log查询执行详细信息、性能计数器

启用附加日志记录

要进行故障排除,请启用详细日志记录:

  1. 打开网关配置应用程序
  2. 转到诊断 3.启用“附加日志记录”
  3. 重现问题
  4. 使用“导出日志”按钮导出日志(创建所有日志文件的 ZIP)
  5. 故障排除后禁用附加日志记录(它会生成大量日志量)

性能计数器

该网关在“本地数据网关”类别下公开 Windows 性能计数器:

专柜描述警报阈值
活跃连接当前与数据源的开放连接> 50
每秒执行的查询数查询吞吐量基线 + 50%
平均查询持续时间执行查询的时间> 30 秒
队列长度等待执行的挂起查询> 10
内存使用情况网关进程内存消耗> 80% 可用
CPU 使用率网关进程CPU消耗> 70% 持续

设置 Windows 性能监视器或监视工具(Prometheus、Datadog、Azure Monitor)来跟踪这些计数器并针对阈值发出警报。

Power BI 管理门户监控

在 Power BI 管理门户中:

  1. 进入管理门户,然后进入网关管理
  2. 查看所有网关及其状态(在线/离线)和版本 3.查看数据源使用统计
  3. 监控刷新成功/失败率

配置网关离线事件和刷新失败的电子邮件通知。


性能调优

硬件调整大小

网关的性能主要受以下因素约束:

  1. CPU — 用于查询解析、数据压缩和加密
  2. RAM——用于保存中间查询结果
  3. 网络 — 用于将数据传输到 Azure 服务总线

尺寸指南:

场景中央处理器内存网络
5 个数据集,每日刷新4 核8GB100 Mbps
20 个数据集,每天两次8 核16GB1 Gbps
50 多个数据集,DirectQuery16 核32GB1 Gbps
大量 DirectQuery,许多并发用户16+ 核心64GB10 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. 检查网关版本是否过时(自动更新可能会失败)

###“无法连接到数据源”

原因: 凭据不正确、数据源的网络连接或驱动程序问题。

分辨率:

  1. 在网关配置应用程序中测试连接(诊断,然后测试连接)
  2. 验证数据源服务器是否可以从网关计算机访问(ping、telnet 到端口)
  3. 验证凭据正确且帐户未锁定/过期
  4. 对于 Oracle 和 SAP,验证网关计算机上是否安装了所需的客户端库 5.检查数据源的防火墙是否允许来自网关IP的连接

###“本地数据网关的刷新时间太长”

**原因:**数据集大、查询慢、网关资源不足或网络瓶颈。

分辨率:

1.启用增量刷新,减少数据量 2.优化SQL查询(添加索引、减少列、过滤行) 3.刷新时检查网关机器CPU和RAM使用情况 4.错开刷新计划以减少并发负载 5.考虑添加第二个网关节点用于负载分配

###“数据源凭据无效”

原因: 密码更改、帐户锁定或 Kerberos 委派配置错误。

分辨率:

  1. 在 Power BI 服务中重新输入凭据(数据集设置,然后是网关连接)
  2. 如果使用带有 Kerberos 的 Windows 身份验证,请验证:
  • 网关服务帐户在 Active Directory 中具有委派权限
  • 为数据源正确配置 SPN
  • 可从网关访问 KDC(域控制器)

###“网关版本已过时”

原因: 自动更新失败或被禁用。

分辨率:

  1. 从 Microsoft 下载最新的网关安装程序
  2. 在现有网关计算机上运行安装程序(就地升级)
  3. 对于集群,一次升级一个节点,升级之间有间隔
  4. 升级后在 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 以近乎实时地访问本地数据库,但每次报告交互都会触发新的查询,而不是接收连续的数据流。

E

作者

ECOSIRE Research and Development Team

在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。

通过 WhatsApp 聊天