python - Python BigQuery - 更快或异步插入行
问题描述
我正在尝试使用python 客户端库将数据上传到 BigQuery ,数据以 json 格式发送以避免转换和序列化缓慢。
我目前有两种方法,它们都不足以满足我的要求:
# self.table is instance of bigquery.Table
# self.client is instance of bigquery.Client
# First method
job_config = bigquery.LoadJobConfig()
results = self.client.load_table_from_json(data, self.table, job_config=job_config)
这是最慢的,平均每次命中 892026 毫秒
# Second method
results = self.client.insert_rows_json(self.table, data)
这更快,但每次命中仍需要 92630 毫秒
我目前正在使用少量行调用这些方法,以便在循环内多次写入(5-10)。我想知道是否有更快的方法来做到这一点,我的下一个尝试是收集要写入的数据并执行单个(或更少)批量插入,更快的插入将使我无法重构我的代码。
解决方案
推荐阅读
- java - 获取 NotSerializableException - 将 Spark Streaming 与 Kafka 一起使用时
- c# - Html ActionLink 运行时错误:'值不能为空或空。但值不为 null 或为空
- linq - 如何改进 linq-to-sql 查询
- ios - 首次登录应用后自动填充iOS12提示信息用户保存密码?
- c++ - Visual Studio 查找未覆盖的纯虚函数
- r - 将第一行粘贴到列表中的列名
- python - 使用 Numba 将单例数组分配给数组元素
- php - Symfony 3 - 教义 - 大查询的困难
- sqlite - SQLite 如何防止延迟事务的死锁?
- gradle - 我应该在 build.gradle 中添加什么来设置 Idea 的 Project JDK?