【问题标题】:How to insert records into BigQuery Linked server如何将记录插入 BigQuery 链接服务器
【发布时间】:2019-10-04 13:22:56
【问题描述】:

我使用 Simba ODBC 驱动程序将 SQL Server 连接到 Bigquery 作为 SQL Server Management Studio 中的链接服务器。 无法插入 BigQuery,只能从 BigQuery 中选择数据。我也检查了“AllowInProcess”和“NonTransactedUpdate”。

select * from openquery([GoogleBigQuery], 'select * from first.table2' )

上述选择查询正在运行。

查询:

insert into OPENQUERY([GoogleBigQuery], 'select * from first.table2') values (1,'c')

产生错误:

“链接服务器“GoogleBigQuery”的 OLE DB 提供程序“MSDASQL” 由于列“id”,无法插入表“[MSDASQL]”。这 用户无权写入该列。”

查询:

INSERT INTO [GoogleBigQuery].[midyear-byway-252503].[first].[table2] select * from Learning_SQL.dbo.demo

产生错误:

链接服务器“GoogleBigQuery”的 OLE DB 提供程序“MSDASQL”返回消息“多步 OLE DB 操作生成错误。如果可用,请检查每个 OLE DB 状态值。没有完成任何工作。”。

链接服务器“GoogleBigQuery”的 OLE DB 提供程序“MSDASQL”无法插入表“[GoogleBigQuery].[midyear-byway-252503].[first].[table2]”,因为列“id”。用户无权写入该列。

想知道是否有人尝试使用链接服务器在 BigQuery 中插入数据集。

【问题讨论】:

  • 你解决过这个问题吗?想做类似的事情

标签: google-cloud-platform google-bigquery odbc


【解决方案1】:

这个错误是由于这个limitation。 Microsoft 的 SQL Server“链接服务器”选项似乎不支持对链接到的外部数据库进行 INSERT、UPDATE 或 DELETE 调用,除非连接支持事务。

由于 BigQuery 不支持显式事务,MSSQL 不允许对 BigQuery 进行 INSERT、UPDATE 或 DELETE 调用。

如果您想将数据插入 BigQuery,请考虑将数据导出到文件中,然后将该文件加载到 BigQuery 中。 导入文件可以是 Avro、CSV、JSON(仅限换行符)、ORC 或 Parquet 格式。

更多信息,请参考importing data into BigQuery

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    相关资源
    最近更新 更多