如何从一台机器到另一台机器对 SQL Server 执行批量插入?
How to perform bulk insert into SQLServer from one machine to another?
我在一台机器上有 运行ning nifi 实例,在另一台机器上有 SQL 服务器。
在这里,我可以尝试在 SQL 服务器中使用批量插入查询执行批量插入操作。但我无法从一台机器插入数据并将其移动到另一台机器的 SQL 服务器。
如果我 运行 nifi 和 SQL 服务器在同一台机器上,那么我可以轻松地执行批量插入操作。
我已经配置了 GetFile->ReplaceText(BulkInsertQuery)-->PutSQL
个处理器。
我在单台机器上尝试过 nifi 和 sql 服务器,然后批量插入工作,但当两个实例在不同的机器上时都不起作用。
我需要从一台机器上获取所有数据并编写查询以将该数据移动到另一台机器上的 SQL 运行s。
当 nifi 和 sql 服务器在同一台机器上时,以下查询有效
BULK INSERT BI FROM 'C:\Directory\input.csv' WITH (FIRSTROW = 1, ROWTERMINATOR = '\n', FIELDTERMINATOR = ',', ROWS_PER_BATCH = 10000)
如果我 运行 在另一台机器上查询然后它说..,"FileNotFoundError"
由于 "input.csv" 在 Host1 机器上但是 运行s在 sql 服务器计算机 (host2)
中查询
有人可以给我建议吗?
因为我不能发表评论,问这个问题可能很愚蠢,但是当你 运行 在两台不同的机器上时,你能不能将批处理作业预制件移动到一个公共网络位置?或者 FTP 需要的数据到您 SQL 机器上的某个位置?
因为我不知道 Nifi 是什么,所以我不确定,但是确保 nifi 将数据移动到您的 SQL 和 NIFI 机器都可以访问的公共位置是我要做的第一件事。然后只需运行你的批量插入,同时指向这个位置。
BULK INSERT BI FROM 'Some network directory' WITH 'you with clauses'
正在托管 SQL 服务器应用程序的计算机上执行 SQL 查询。因为查询定义了带有文件系统路径的传入数据,所以尝试解析该路径的机器是 SQL 机器。该路径上不存在数据,因此无法加载。你有几个选项来处理这个:
- 使用 NiFi 将数据移动到 SQL 服务器实例上的某个位置,以便在 SQL 查询执行期间加载。您可以将
GetFile
/PutFTP
或 ExecuteStreamCommand
与 RoboCopy
一起使用(Windows 类似于 rsync
)——这将避免成本将内容完全带入 NiFi。
- 使用 NiFi 将数据从本地系统提取到内容存储库中,然后创建一个 SQL 插入语句来读取实际数据而不是提供文件系统路径。
我在一台机器上有 运行ning nifi 实例,在另一台机器上有 SQL 服务器。
在这里,我可以尝试在 SQL 服务器中使用批量插入查询执行批量插入操作。但我无法从一台机器插入数据并将其移动到另一台机器的 SQL 服务器。
如果我 运行 nifi 和 SQL 服务器在同一台机器上,那么我可以轻松地执行批量插入操作。
我已经配置了 GetFile->ReplaceText(BulkInsertQuery)-->PutSQL
个处理器。
我在单台机器上尝试过 nifi 和 sql 服务器,然后批量插入工作,但当两个实例在不同的机器上时都不起作用。
我需要从一台机器上获取所有数据并编写查询以将该数据移动到另一台机器上的 SQL 运行s。
当 nifi 和 sql 服务器在同一台机器上时,以下查询有效
BULK INSERT BI FROM 'C:\Directory\input.csv' WITH (FIRSTROW = 1, ROWTERMINATOR = '\n', FIELDTERMINATOR = ',', ROWS_PER_BATCH = 10000)
如果我 运行 在另一台机器上查询然后它说..,"FileNotFoundError"
由于 "input.csv" 在 Host1 机器上但是 运行s在 sql 服务器计算机 (host2)
有人可以给我建议吗?
因为我不能发表评论,问这个问题可能很愚蠢,但是当你 运行 在两台不同的机器上时,你能不能将批处理作业预制件移动到一个公共网络位置?或者 FTP 需要的数据到您 SQL 机器上的某个位置? 因为我不知道 Nifi 是什么,所以我不确定,但是确保 nifi 将数据移动到您的 SQL 和 NIFI 机器都可以访问的公共位置是我要做的第一件事。然后只需运行你的批量插入,同时指向这个位置。
BULK INSERT BI FROM 'Some network directory' WITH 'you with clauses'
正在托管 SQL 服务器应用程序的计算机上执行 SQL 查询。因为查询定义了带有文件系统路径的传入数据,所以尝试解析该路径的机器是 SQL 机器。该路径上不存在数据,因此无法加载。你有几个选项来处理这个:
- 使用 NiFi 将数据移动到 SQL 服务器实例上的某个位置,以便在 SQL 查询执行期间加载。您可以将
GetFile
/PutFTP
或ExecuteStreamCommand
与RoboCopy
一起使用(Windows 类似于rsync
)——这将避免成本将内容完全带入 NiFi。 - 使用 NiFi 将数据从本地系统提取到内容存储库中,然后创建一个 SQL 插入语句来读取实际数据而不是提供文件系统路径。