如何通过流插入避免在BigQuery中重复

田村健人

我制作了一个函数,每5〜6秒将.CSV数据插入到BigQuery中。我一直在寻找避免插入后在BigQuery中重复数据的方法。我想删除具有相同luid的数据,但是我不知道如何删除它,因此可以在插入之前检查BigQuery表中是否已经存在.CSV的每个数据。我放置了row_ids参数以避免重复的luid,但是看来效果不佳。你能给我个主意吗?谢谢。

def stream_upload():
    # BigQuery
    client = bigquery.Client()
    project_id = 'test'
    dataset_name = 'test'
    table_name = "test"
    full_table_name = dataset_name + '.' + table_name
    json_rows = [] 
    with open('./test.csv','r') as f:
        for line in csv.DictReader(f):
            del line[None]
            line_json = dict(line)
            json_rows.append(line_json)

    errors = client.insert_rows_json(
        full_table_name,json_rows,row_ids=[row['luid'] for row in json_rows]
    )

    if errors == []:
        print("New rows have been added.")
    else:
        print("Encountered errors while inserting rows: {}".format(errors))

    print("end")

schedule.every(0.5).seconds.do(stream_upload)

while True:
    schedule.run_pending()
    time.sleep(0.1)
手枪

BigQuery没有本机处理此问题的方法。您可以根据该表创建一个视图以执行重复数据删除,也可以创建表的外部缓存luids并进行查找,如果它们在写入之前已经被写入BigQuery并在写入新数据后更新了缓存。这可以像文件缓存一样简单,也可以使用其他数据库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何避免在MySQL中插入重复项?

来自分类Dev

避免在mysql插入中重复

来自分类Dev

如何避免基于列子集的BigQuery中的重复数据?

来自分类Dev

如何进行批量插入同时避免在Postgresql中重复

来自分类Dev

如何最好避免在CakePHP中插入重复记录?

来自分类Dev

如何最好避免在CakePHP中插入重复记录?

来自分类Dev

如何避免在SQL Server中重复插入动态值

来自分类Dev

如何进行批量插入同时避免在Postgresql中重复

来自分类Dev

如何避免在Xamarin.forms中重复插入ToolbarItem?

来自分类Dev

如何避免通过Winform在表中输入重复值?

来自分类Dev

如何通过使用linq避免下拉列表中的重复项?

来自分类Dev

如何避免通过python中的if语句多次重复条件?

来自分类Dev

如何通过检查特定字段来避免将重复文档插入Elasticsearch

来自分类Dev

Bigquery:在流中检查重复项

来自分类Dev

避免通过具有多个工作程序的Entity Framework在sql表中插入重复项

来自分类Dev

Mongoose:如何避免插入重复记录?

来自分类Dev

避免通过理解将重复项插入Python列表

来自分类Dev

避免插入重复

来自分类Dev

如何避免在实体框架手动插入中重复主键?

来自分类Dev

如何避免在表类型sql server中插入重复记录

来自分类Dev

如何避免在节点,sqlite中插入重复记录[knex,objectionJS]

来自分类Dev

如何避免在节点,sqlite中插入重复记录[knex,objectionJS]

来自分类Dev

pymongo 2.8-如何避免在管理数据库中插入重复的用户

来自分类Dev

如何避免在 MongoDB 中使用 db.insertMany() 在集合中插入重复值?

来自分类Dev

向数据库中插入数据时如何避免重复

来自分类Dev

使用asp.net在数据库中插入数据时如何避免重复值?

来自分类Dev

PHP - 如何在数组中插入新元素避免重复?

来自分类Dev

如何避免通过使用GSON流将整个JSON加载到内存中?

来自分类Dev

如何避免通过使用GSON流将整个JSON加载到内存中?

Related 相关文章

  1. 1

    如何避免在MySQL中插入重复项?

  2. 2

    避免在mysql插入中重复

  3. 3

    如何避免基于列子集的BigQuery中的重复数据?

  4. 4

    如何进行批量插入同时避免在Postgresql中重复

  5. 5

    如何最好避免在CakePHP中插入重复记录?

  6. 6

    如何最好避免在CakePHP中插入重复记录?

  7. 7

    如何避免在SQL Server中重复插入动态值

  8. 8

    如何进行批量插入同时避免在Postgresql中重复

  9. 9

    如何避免在Xamarin.forms中重复插入ToolbarItem?

  10. 10

    如何避免通过Winform在表中输入重复值?

  11. 11

    如何通过使用linq避免下拉列表中的重复项?

  12. 12

    如何避免通过python中的if语句多次重复条件?

  13. 13

    如何通过检查特定字段来避免将重复文档插入Elasticsearch

  14. 14

    Bigquery:在流中检查重复项

  15. 15

    避免通过具有多个工作程序的Entity Framework在sql表中插入重复项

  16. 16

    Mongoose:如何避免插入重复记录?

  17. 17

    避免通过理解将重复项插入Python列表

  18. 18

    避免插入重复

  19. 19

    如何避免在实体框架手动插入中重复主键?

  20. 20

    如何避免在表类型sql server中插入重复记录

  21. 21

    如何避免在节点,sqlite中插入重复记录[knex,objectionJS]

  22. 22

    如何避免在节点,sqlite中插入重复记录[knex,objectionJS]

  23. 23

    pymongo 2.8-如何避免在管理数据库中插入重复的用户

  24. 24

    如何避免在 MongoDB 中使用 db.insertMany() 在集合中插入重复值?

  25. 25

    向数据库中插入数据时如何避免重复

  26. 26

    使用asp.net在数据库中插入数据时如何避免重复值?

  27. 27

    PHP - 如何在数组中插入新元素避免重复?

  28. 28

    如何避免通过使用GSON流将整个JSON加载到内存中?

  29. 29

    如何避免通过使用GSON流将整个JSON加载到内存中?

热门标签

归档