将大型 json 保存到 google 云数据存储

Save Large json to google cloud datastore

我想将一些大 json 保存到数据存储,其中 len(json)>=80000000 (80MB) 但我得到:服务不可用:503 413:Request 实体太大

我可以将它保存在云存储中,但我想我会失去索引和从数据存储中更快查询的能力。这里最好的解决方案是什么?

def save_serialized_data_to_db(json, name):
  datastore_client = datastore.Client()

  kind = 'SerializedData'
  serialized_data_key = datastore_client.key(kind, name)

  serialized_data = datastore.Entity(key=serialized_data_key)
  serialized_data['json'] = json

  datastore_client.put(serialized_data) // getting: ServiceUnavailable: 503 413:Request Entity Too Large

  return serialized_data

Datastore 的最大事务大小为 10MB。

可在此处找到限制:https://cloud.google.com/datastore/docs/concepts/limits

相关cut/paste:

最大 API 请求大小。 当在 Google App Engine 之外使用数据存储区模式时,此限制适用。如果从 App Engine 使用 Datastore 模式,则限制取决于所使用的客户端库。 10 字节

事务的最大大小 10 MiB

实体的最大大小 1,048,572 字节(1 MiB - 4 字节)

在我公司进行特殊处理

  • 从完整 JSON 中提取可索引和可​​搜索的值。
  • 使用这些值创建一个新的 JSON。
  • 将完整的 JSON 存储到云存储
  • 将新 JSON + Cloud Storage 文件路径存储到 Datastore。

我们也在考虑使用 MongoDB。我还没有给你反馈。