- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Azure Synapse 查询大量 CSV 文件,其中 OPENROWSET
命令see here 。这些文件位于通过托管标识连接到 Azure Synapse 的 Data Lake gen 2 上。
当我一次只查询几个文件时,这工作正常,但是当我增加尝试同时查询的文件数量时,我收到以下错误:
Azure Synapse: Cannot bulk load because the file <file> could not be opened. Operating system error code 12(The access code is invalid.)
这里<file>
每次运行查询时都是不同的文件。如果我导航到链接数据 View 中的文件,我可以下载并查看该文件。另外,如果我指定对前面提到的错误中的文件运行查询,它将正常工作。
我用来查询数据湖的代码如下:
SELECT
Parsed.*
FROM OPENROWSET
(
bulk '2021/*/**.log',
maxerrors = 2147483647,
data_source = 'analytics',
format = 'csv',
fieldterminator ='0x0b',
fieldquote = '0x0b'
) WITH (doc nvarchar(max)) AS Rows
CROSS APPLY OPENJSON(Rows.doc)
WITH
(
col1 NVARCHAR(100),
col2 NVARCHAR(100),
...,
coln NVARCHAR(MAX)
) AS Parsed
这里是数据源,analytics
是指定如下的数据源:
CREATE EXTERNAL DATA SOURCE analytics
WITH
(
location = 'https://<url>.dfs.core.windows.net/analytics'
)
我尝试为 MAXERRORS
指定一个较大的数字BULK
的参数在OPENROWSET
因为我不介意在执行此查询时是否只丢失了几个文件,但是这似乎只在行级别针对错误起作用,并且这些错误位于文件级别。
查询在内置无服务器池上运行。
任何有关如何解决此问题的想法将不胜感激。
最佳答案
只是对此添加一个快速答案。在进行 Greg 建议的更改后,我能够查询更多数据 - 但仍然遇到错误代码 12。
我与 Azure 支持人员进行了交谈,他们告诉我错误消息实际上是 412(但我看不到);所以这个隐含的文件正在使用/正在修改。添加以下内容允许 Azure Synapse 忽略此问题并查询文件:
ROWSET_OPTIONS = '{"READ_OPTIONS":["ALLOW_INCONSISTENT_READS"]}'
或者对于外部表:
TABLE_OPTIONS = N'{"READ_OPTIONS":["ALLOW_INCONSISTENT_READS"]}'
这就是我的最终查询:
SELECT
Parsed.*
FROM OPENROWSET
(
bulk '2021/*/**.log',
maxerrors = 2147483647,
data_source = 'analytics_master_key',
format = 'csv',
fieldterminator ='0x0b',
fieldquote = '0x0b',
ROWSET_OPTIONS = '{"READ_OPTIONS":["ALLOW_INCONSISTENT_READS"]}'
) WITH (doc nvarchar(max)) AS Rows
CROSS APPLY OPENJSON(Rows.doc)
WITH
(
col1 NVARCHAR(100),
col2 NVARCHAR(100),
...,
coln NVARCHAR(MAX)
) AS Parsed
关于Azure Synapse : Cannot bulk load because the file could not be opened. 操作系统错误代码 12(访问代码无效。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69000695/
我是一名优秀的程序员,十分优秀!