将大型 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。我还没有给你反馈。
我想将一些大 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。我还没有给你反馈。