本地数据网关:设置和配置指南
本地数据网关是 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 Research and Development Team
在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。
相关文章
Power BI AI 功能:Copilot、AutoML 和预测分析
掌握 Power BI AI 功能,包括用于自然语言报告的 Copilot、用于预测的 AutoML、异常检测和智能叙述。许可指南。
Power BI 仪表板开发完整指南
了解如何使用 KPI 设计、可视化最佳实践、钻取页面、书签、移动布局和 RLS 安全性来构建有效的 Power BI 仪表板。
Power BI 数据建模:商业智能的星型架构设计
通过星型模式设计、事实和维度表、DAX 度量、计算组、时间智能和复合模型掌握 Power BI 数据建模。