1.26 PowerBI数据准备-刷新报错的排查与处理

加入 PowerBI自己学 知识星球:下载源文件,边学边练;遇到问题,还可以提问交流。

刷新遇到报错,要在PowerQuery中排查。

操作步骤

STEP 1 在刷新报错的提示中找到报错的查询,如果查询较多,大部分会提示:“加载之前的表时出错,加载已取消”,但一定会有一条查询提示有详细的信息。

STEP 2 点击菜单栏转换数据进入PowerQuery,在左侧选择报错的查询,点击菜单栏主页下的刷新预览,再去查询设置窗格按步骤一步一步从上向下点,找到错误的步骤。

STEP 3 查看具体的错误并按对应的方法解决。如果是步骤报错,公示栏下方有提示信息,如上图;如果是值有错误,点击单元格,最下方有提示信息,如下图。

常见报错及解决方法

1 未找到文件

数据源更名或者数据源改变了存储路径,会导致刷新时报错,提示未找到文件。

解决方法

方法1 打开PowerQuery,对Sheet1这个表刷新预览,会发现第一步就报错了,此时,点击查询设置窗格的第一步源的齿轮,在跳出的对话框中,重新选择数据源路径。

方法2 点击菜单栏主页下的转换数据,选择数据源设置,找到对应的文件后,点击更改源,会跳出与方法1相同的对话框。

2 找不到列

如果数据源的字段发生了变化,减少了列,但PowerQuery的代码不会随之改变,还会引用字段的名称,会导致刷新时报错,提示找不到列。

解决方法

如果这个列有用,需要完善数据源;

如果这个列是因为没用在数据源删除的,在PowerQuery中刷新预览,找到报错的步骤,将相关的代码清除。

本例是对数量列更改了数据类型,删除对应代码即可。

3 数据类型不对

因为PowerQuery默认只预览1000行数据,预览过程中不存在问题,但是刷新的时候是全量刷新,所以预览的1000行以外的数据可能不符合处理要求,数据类型不对就会刷新报错,提示包含错误。

解决方法

点击查看错误,PowerQuery会把错误的记录单独生成一个查询,点击Error的单元格,下方会提示它是文本“a”,“无法转换为Number”。此时去数据源中找到相应记录,完善数据源就可以了。更正后,查询错误的查询就没有意义了,点击鼠标右键删除。

如果想预览时就对所有数据进行检查,点击左下角,将基于前1000行改为基于整个数据集。

   

4 数据源中有无效的值

如果数据源中包含无效的值,比如N/A或#DIV/0!等,刷新时也会出现包含错误的提示。

解决方法

点击查看错误,可以定位错误所在的记录,然后完善数据源即可。

5 引用查询或步骤错误

模型比较大,查询较多且具有依赖关系,虽然不存在问题,但是打开PowerBI文件直接点击刷新按钮会报错,提示引用查询或步骤错误。

解决方法

这种情况,可以先打开PowerQuery,点击菜单栏主页下刷新预览的黑色小三角,选择全部刷新,此时会需要一段时间,让PowerQuery预览安排所有的查询,等到按钮颜色从灰色变回绿色后,关闭PowerQuery,再次刷新就可以了。

<think>嗯,用户遇到了在Windows系统下执行`nginx -s reload`命令出现错误的问题。错误信息是`OpenEvent("Global\ngx_reload_32228") failed (2: The system cannot find the file specified)`。我需要先理解这个错误的原因,然后给出解决方案。 首先,用户提到他们在D盘的nginx目录下执行了`nginx -s reload`命令。这个错误通常发生在Nginx未运行的情况下尝试重新加载配置,或者权限不足。在Windows系统中,Nginx使用命名事件来通信,如果主进程没有运行,就无法找到这个事件,导致错误。 接下来,我需要验证用户是否正确启动了Nginx。用户可能只是下载了Nginx,但还没有启动它。这候,执行`nginx -s reload`自然找不到对应的进程。应该检查Nginx进程是否在运行,可以通过任务管理器查看是否有nginx.exe进程。 另一个可能性是用户以普通用户权限运行了reload命令,而Nginx是以管理员权限启动的,导致权限不足。这候需要确保所有操作都在同一权限级别下进行,要么都用管理员权限,要么都不用。 解决方案方面,首先应该让用户确认Nginx是否正在运行。如果没有运行,需要先启动nginx.exe。然后再次尝试重新加载配置。如果已经运行,可能需要强制停止所有Nginx进程再重新启动。此外,权限问题也需要考虑,建议使用管理员权限运行命令行工具。 用户可能需要逐步指导,比如如何检查进程是否存在,如何正确启动Nginx,以及如何以管理员身份运行命令。同,要提醒用户配置文件的正确性,避免其他错误。如果用户之前修改了配置,可能需要检查配置是否有语法错误,导致Nginx启动失败,进而影响reload操作。 总结来说,用户的问题核心在于Nginx未运行或权限问题。需要引导用户检查进程状态,正确启动服务,并确保权限一致。同,给出具体的命令行步骤,帮助用户一步步解决问题。</think>--- ### 问题分析 执行 `nginx -s reload` 出现错误 `OpenEvent("Global\ngx_reload_32228") failed`,根本原因是 **Nginx 主进程未运行** 或 **权限不足**,导致无法通过信号(`-s`) Nginx 通信。以下是具体原因和解决方案: --- ### 原因 1:Nginx 未启动 若未启动 Nginx 主进程,直接执行 `nginx -s reload` 会因找不到进程句柄而失败。 --- ### 解决方案 按以下步骤操作: 1. **检查 Nginx 进程是否运行**: 打开任务管理器 → 查看是否存在 `nginx.exe` 进程。 - 若不存在 → 需先启动 Nginx。 - 若存在 → 跳至 **原因 2**。 2. **启动 Nginx**: 在 `nginx.exe` 所在目录执行: ```bash start nginx ``` 或直接双击 `nginx.exe`。 3. **验证启动状态**: 访问 `http://localhost`,若显示默认欢迎页,则启动成功。 4. **重新执行 reload**: ```bash nginx -s reload ``` --- ### 原因 2:权限不一致 若 Nginx 以管理员权限启动,但 `reload` 命令在普通权限终端执行,会导致权限冲突。 --- ### 解决方案 统一权限: - **方法 1**:以管理员身份启动命令行工具,重新执行命令: ```bash nginx -s reload ``` - **方法 2**:关闭所有 Nginx 进程后,统一以管理员或普通权限启动。 #### 强制终止 Nginx 进程: 1. 查找所有 Nginx 进程: ```bash tasklist /fi "imagename eq nginx.exe" ``` 2. 终止进程: ```bash taskkill /f /im nginx.exe ``` 3. 重新启动 Nginx 并执行 `reload`。 --- ### 原因 3:Nginx 启动失败 若 Nginx 配置错误导致启动失败,`reload` 命令也会失效。 --- ### 解决方案 1. 检查配置文件语法: ```bash nginx -t ``` - 若提示 `syntax is ok` → 配置正确。 - 若提示错误 → 根据日志修复配置。 2. 手动重启(先关闭再启动): ```bash nginx -s quit start nginx ``` --- ### 完整操作流程 ```bash # 1. 终止所有 Nginx 进程 taskkill /f /im nginx.exe # 2. 以管理员身份启动命令行,进入 Nginx 目录 cd D:\soft\nginx\nginx-1.26.3\nginx-1.26.3 # 3. 启动 Nginx start nginx # 4. 验证配置 nginx -t # 5. 重新加载配置 nginx -s reload ``` --- ### 扩展:Nginx 常用命令(Windows) | 命令 | 作用 | |--------------------|-------------------------| | `start nginx` | 启动 Nginx | | `nginx -s stop` | 强制停止 | | `nginx -s quit` | 优雅停止(处理完请求后停止)| | `nginx -s reload` | 重新加载配置 | | `nginx -t` | 测试配置文件语法 | --- ### 注意事项 1. 确保 Nginx 启动后再执行 `reload`。 2. 若修改了监听端口或路径,需检查防火墙是否放行。 3. 建议使用绝对路径操作,避免路径错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值