GCP MS SQL Server 2017如何从本地计算机批量加载csv

问题描述

我在Google Cloud上拥有Microsoft sql Server 2017数据库。我正在尝试使用以下命令将CSV文件从本地计算机批量加载到数据库

BULK INSERT umls.mrxw_spa
FROM 'C:\data\umls\2020AA\Meta\MRXW_SPA.RRF'
WITH (FIELDTERMINATOR = '|',BATCHSIZE = 10000);

但是我收到一条错误消息

无法批量加载。文件“ C:\ data \ umls \ 2020AA \ Meta \ MRXW_SPA.RRF”不存在,或者您没有文件访问权限。

我不知道如何向我的本地文件夹授予GCP sql Server权限。该数据库曾经位于Azure上,并且非常容易加载,但是该公司更改了许可并迁移到了Google Cloud。我知道我可以创建一个python脚本来加载数据-但是使用上面的命令要容易得多。

有人能在GCP中使用批量插入吗?

解决方法

您没有。批量加载的标准方法是将数据移到服务器上并从那里加载。如果您可以使用适当的网络...。您仍然必须使用UNC形式(\ machine \ fileshare \ path \ file)。

基本上,您的批量插入命令已发送到服务器。然后,服务器在c:\ data ....(基本上是路径)中查找文件。该命令未在您的计算机上执行。没有SQL。它们都被发送到服务器。

不能在本地计算机上授予服务器权限。除了在没有域的情况下棘手之外,服务器很可能无法到达您的机器,因为它位于NAT之后。因此,您的问题类似于“我怎样才能绕过他的秘书(无论是首席执行官)?”然后甚至没有他办公室的电话号码。除非您具有允许服务器与您联系的网络设置(99.9%的机会您没有该服务器),否则这些权限就毫无用处。