来自 Macbook 的 TSQL "BULK INSERT"
TSQL "BULK INSERT" from a Macbook
这些是涉及的对象:
- 我的Mac书
- SQL 托管在 Azure 中的服务器
- SQL 服务器客户端:
DbVisualizer
或 macsqlclient
(如 Window 的 Management Studio)
- 我的 Mac 中的一个文件位于
\Users\john\persons.csv
我正在尝试使用我的 sql 客户端执行 TSQL BULK INSERT,如下所示:
BULK INSERT persons from '\users\john\persons.csv'
WITH
(
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\r\n'
);
但是我收到了这个错误:
Cannot bulk load because the file "\users\john\persons.csv" could not be opened.
Operating system error code (null).
...我该如何解决这个问题?我应该在 Mac 书中使用什么文件路径?
您需要在 Azure 中拥有一个存储帐户才能使用批量插入。以下是步骤
第一步:
CREATE EXTERNAL DATA SOURCE MyAzureBlobStorage
WITH ( TYPE = BLOB_STORAGE,
LOCATION = 'https://myazureblobstorage.blob.core.windows.net',
CREDENTIAL= MyAzureBlobStorageCredential);
第二步:
现在你需要将你的文件放在 blob 容器中并像下面那样访问它
BULK INSERT Product
FROM 'product.csv'
WITH ( DATA_SOURCE = 'MyAzureBlobStorage',
FORMAT='CSV', CODEPAGE = 65001, --UTF-8 encoding
FIRSTROW=2,
TABLOCK);
不需要凭据,如果您的 blob 是 public,否则您需要创建凭据
- CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'some strong password';
-- 1.1.2. (optional) Create credential with Azure Blob SAS
--
-- CREATE DATABASE SCOPED CREDENTIAL MyAzureBlobStorageCredential
-- WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
-- SECRET = 'sv=2015-12-11&ss=b&srt=sco&sp=rwac&se=2017-02-01T00:55:34Z&st=2016-12-29T16:55:34Z&spr=https&sig=copyFromAzurePortal';
-- NOTE: DO NOT PUT FIRST CHARACTER '?'' IN SECRET!!!
这些是涉及的对象:
- 我的Mac书
- SQL 托管在 Azure 中的服务器
- SQL 服务器客户端:
DbVisualizer
或macsqlclient
(如 Window 的 Management Studio) - 我的 Mac 中的一个文件位于
\Users\john\persons.csv
我正在尝试使用我的 sql 客户端执行 TSQL BULK INSERT,如下所示:
BULK INSERT persons from '\users\john\persons.csv'
WITH
(
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\r\n'
);
但是我收到了这个错误:
Cannot bulk load because the file "\users\john\persons.csv" could not be opened.
Operating system error code (null).
...我该如何解决这个问题?我应该在 Mac 书中使用什么文件路径?
您需要在 Azure 中拥有一个存储帐户才能使用批量插入。以下是步骤
第一步:
CREATE EXTERNAL DATA SOURCE MyAzureBlobStorage WITH ( TYPE = BLOB_STORAGE, LOCATION = 'https://myazureblobstorage.blob.core.windows.net', CREDENTIAL= MyAzureBlobStorageCredential);
第二步:
现在你需要将你的文件放在 blob 容器中并像下面那样访问它
BULK INSERT Product
FROM 'product.csv'
WITH ( DATA_SOURCE = 'MyAzureBlobStorage',
FORMAT='CSV', CODEPAGE = 65001, --UTF-8 encoding
FIRSTROW=2,
TABLOCK);
不需要凭据,如果您的 blob 是 public,否则您需要创建凭据
- CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'some strong password';
-- 1.1.2. (optional) Create credential with Azure Blob SAS
--
-- CREATE DATABASE SCOPED CREDENTIAL MyAzureBlobStorageCredential
-- WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
-- SECRET = 'sv=2015-12-11&ss=b&srt=sco&sp=rwac&se=2017-02-01T00:55:34Z&st=2016-12-29T16:55:34Z&spr=https&sig=copyFromAzurePortal';
-- NOTE: DO NOT PUT FIRST CHARACTER '?'' IN SECRET!!!