如何使用Google Big Query中的文件在SQL Server中使用批量导入?

时间:2018-10-03 12:51:34

标签: sql-server google-bigquery

我要导入700个文件,这些文件放在一起代表12亿条记录表,该表已在Big Query中分析并导出。

使用SSIS或导入/导出向导,我能够导入第一个文件来创建下表的结构。由于定期传输每个文件需要30-45分钟,因此我正在尝试“批量导入”。

我当前的命令:

BULK INSERT mother.dbo.Mother      FROM 'F:\Data\Consumer\New Consumer\Mother\Mother_000000000000.csv'      WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = ''+CHAR(10)+'', KEEPNULLS );

我收到错误消息,表明我的ROWTERMINATOR错误:

  

消息4866,级别16,状态1,行1批量加载失败。专栏   数据文件中第1行第45列的数据太长。请验证   正确指定了字段终止符和行终止符。讯息7399,   级别16,状态1,行1链接服务器的OLE DB提供程序“ BULK”   “(空)”报告错误。提供者未提供任何信息   关于错误。消息7330,第16级,状态2,第1行无法获取   链接服务器“(null)”的OLE DB访问接口“ BULK”提供的行。

有人告诉我,这是由于ROWTERMINATOR错误造成的。记事本++说LF。到目前为止,我已经尝试过:

 \n
 0x0A
 0x0a
 lf
 LF
 CHAR(10)  <--example above

在使用批量导入之前,是否有人将BigQuery导出到SQL Server?如果是这样,正确的语法是什么?谢谢。

表定义

CREATE TABLE [dbo].[Mother](
    [FirstName] [varchar](500) NULL,
    [LastName] [varchar](500) NULL,
    [MiddleName] [varchar](500) NULL,
    [Gender] [varchar](500) NULL,
    [Age] [varchar](500) NULL,
    [DOB] [varchar](500) NULL,
    [Address] [varchar](500) NULL,
    [Address2] [varchar](500) NULL,
    [City] [varchar](500) NULL,
    [State] [varchar](500) NULL,
    [Zip] [varchar](500) NULL,
    [Zip4] [varchar](500) NULL,
    [TimeZone] [varchar](500) NULL,
    [Income] [varchar](500) NULL,
    [HomeValue] [varchar](500) NULL,
    [Networth] [varchar](500) NULL,
    [MaritalStatus] [varchar](500) NULL,
    [IsRenter] [varchar](500) NULL,
    [HasChildren] [varchar](500) NULL,
    [CreditRating] [varchar](500) NULL,
    [Investor] [varchar](500) NULL,
    [LinesOfCredit] [varchar](500) NULL,
    [InvestorRealEstate] [varchar](500) NULL,
    [Traveler] [varchar](500) NULL,
    [Pets] [varchar](500) NULL,
    [MailResponder] [varchar](500) NULL,
    [Charitable] [varchar](500) NULL,
    [PolicalDonations] [varchar](500) NULL,
    [PoliticalParty] [varchar](500) NULL,
    [Attom_ID] [varchar](500) NULL,
    [GEOID] [varchar](500) NULL,
    [Score] [varchar](500) NULL,
    [Score1] [varchar](500) NULL,
    [Score2] [varchar](500) NULL,
    [Score3] [varchar](500) NULL,
    [Score4] [varchar](500) NULL,
    [Score5] [varchar](500) NULL,
    [Latitude] [varchar](500) NULL,
    [Longitude] [varchar](500) NULL,
    [Email1] [varchar](500) NULL,
    [Email2] [varchar](500) NULL,
    [Email3] [varchar](500) NULL,
    [Phone1] [varchar](500) NULL,
    [Phone2] [varchar](500) NULL,
    [Phone3] [varchar](500) NULL
) ON [PRIMARY]

非常感谢!。不幸的是,传入的数据是个人数据,例如,我无法在此处输入。

0 个答案:

没有答案