我正试图通过Python客户端将不同计算机(n=20)上的2亿多条记录导入我的BigQuery表。每台计算机每10分钟运行一次。第二个作业(具有多行)
from google.cloud import bigquery
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = os.getcwd() + '/api.json'
print('Import job started, total rows:' + str(len(queries)))
client = bigquery.Client()
for q in queries:
results = client.query(q)
for err in results:
print(err)
但我得到了以下错误:
google.api_core.exceptions.禁止: 403超出速率限制:此表的表dml插入操作太多。有关详细信息,请参阅https://cloud.google.com/bigquery/troubleshooting-errors
正在运行时生成数据。所以我必须在运行时导入数据。我也不确定BigQuery是否适合这样做。扳手似乎更好,但它花了我太多的钱。
如何避免这个错误?非常感谢你。
有4种将数据插入到BigQuery表中的主要方法。
我认为您正在使用第三个选项,即DML INSERT。它不是为大规模高频数据加载用例设计的。
在您的用例中,第二个选项,流式数据,似乎是一个很好的选择。
实例
from google.cloud import bigquery
# Construct a BigQuery client object.
client = bigquery.Client()
# TODO(developer): Set table_id to the ID of table to append to.
# table_id = "your-project.your_dataset.your_table"
rows_to_insert = [
{u"full_name": u"Phred Phlyntstone", u"age": 32},
{u"full_name": u"Wylma Phlyntstone", u"age": 29},
]
errors = client.insert_rows_json(table_id, rows_to_insert) # Make an API request.
if errors == []:
print("New rows have been added.")
else:
print("Encountered errors while inserting rows: {}".format(errors))
你可以在这里看到更多细节。https://cloud.google.com/bigquery/streaming-data-into-bigquery
就像已经讨论的那样,自动和透明的对象/关系映射(object/relational mapping)关注于管理对象的状态。这就意味着对象的状态存在于内存,因此直接操作(使用 SQL Data Manipulation Language(DML,数据操作语言)语句 :INSERT ,UPDATE 和 DELETE) 数据库中的数据将不会影响内存中的对象状态和对象数据。不过,Hibernate 提供通
一、加载文件数据到表 1.1 语法 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] LOCAL 关键字代表从本地文件系统加载文件,省略则代表从 HDFS 上加载文件: 从本地文件系统加载文件时, filepath
资料定义好之後接下来的就是资料的操作。资料的操作不外乎增加资料(insert)、查询资料(query)、更改资料(update) 、删除资料(delete)四种模式,以下分别介绍他们的语法。 1.增加资料: INSERT INTO table_name (column1,column2,...) values ( value1,value2, ...) 说明: 若没有指定 column 系统则会
当您想要将记录创建到数据库表中时,它是必需的。 以下示例将在employee表中插入记录。 例子 (Example) /* Main program */ Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs' Call SQLLoadFuncs if SQLConnect(c1,'testuser','test123','testd
作为测试的一部分,我一直在尝试创建一个用户,然后将其删除,但我不断收到相同的错误组织。冬眠hql。内部的QueryExecutionRequestException:即使在我的存储库和控制器中不断更改代码之后,DML操作也不受支持。 这是我的存储库中的代码: 这是我的控制器中的代码:
我正在尝试更新数据库中的记录,但收到此错误 这是我的hql尝试 经过研究,我在方法的顶部添加了@修改注释,但错误仍然存在。请问怎么了?