在App Engine应用程序中,有没有办法确定运行GAE(App Engine)实例的项目ID?
我想在运行App Engine实例的同一项目中访问一个大的查询表.如果可能的话,我宁愿不硬编码或将其包含在另一个配置文件中.
编辑:忘了提到这是来自Python
python google-app-engine google-bigquery google-cloud-platform
假设我有一个包含现有数据的表,其架构如下:
{ 'name' : 'Field1', 'type' : 'STRING' },
{ 'name' : 'Field2', 'type' : 'STRING' }
Run Code Online (Sandbox Code Playgroud)
我们的数据是 CSV:
Field1,Field2
Value1,Value2
...
Run Code Online (Sandbox Code Playgroud)
我们通过创建新作业来加载数据,直接从 Google Cloud Storage (GCS) 加载 CSV。我们的数据文件现在有一个额外的列和不同的排序,这样数据现在是结构化的:
Field1,Field3,Field2
Value1,Value3,Value2
...
Run Code Online (Sandbox Code Playgroud)
有没有办法在加载作业中指定我们要跳过第二列,而只加载第 1 列和第 3 列(名为 Field1 和 Field2)?
我正在使用 Python API,例如 service.jobs().insert(job_body)
基本上我想做这样的事情:
job_body = {
'projectId': projectId,
'configuration': {
'load': {
'sourceUris': [sourceCSV],
'schema': {
'fields': [
{
'name': 'Field1',
'type': 'STRING'
},
{ # this would be the skipped field
'name': None
'skip': True
},
{ …Run Code Online (Sandbox Code Playgroud) 使用搜索样式更新更新 MongoDB 中的文档时,是否可以取回更新的文档的 _id?
例如:
import pymongo
client = pymongo.MongoClient('localhost', 27017)
db = client.test_database
col = db.test_col
col.insert({'name':'kevin', 'status':'new'})
col.insert({'name':'brian', 'status':'new'})
col.insert({'name':'matt', 'status':'new'})
col.insert({'name':'stephen', 'status':'new'})
info = col.update({'status':'new'}, {'$set':{'status':'in_progress'}}, multi=False)
print info
# {u'updatedExisting': True, u'connectionId': 1380, u'ok': 1.0, u'err': None, u'n': 1}
# I want to know the _id of the document that was updated.
Run Code Online (Sandbox Code Playgroud)
我有多个线程访问数据库集合,并希望能够将文档标记为正在处理。首先获取文档然后通过 Id 更新不是一个好的答案,因为两个线程可能会在更新之前“获取”同一个文档。该应用程序是一个简单的异步任务队列(是的,我知道我们最好使用 Rabbit 或 ZeroMQ 之类的东西,但现在无法添加到我们的堆栈中)。