如何从CKAN数据存储创建,更新或删除行/列?

时间:2013-12-16 11:53:19

标签: ckan

我已将一些数据上传到CKAN数据存储区。我想为数据存储区中的数据创建,更新或删除行/列?

如何使用Datastore API在CKAN中做到这一点?

2 个答案:

答案 0 :(得分:1)

请参阅Datastore API docs,具体来说,我认为datastore_upsertdatastore_delete是您想要的。

答案 1 :(得分:0)

您可以通过CKAN Datastore API's

满足您的要求

示例:

对于创建,更新和删除,您需要CKAN API KEY,您可以从CKAN的个人资料页面获取该密钥。您必须通过标头Authorization : {{YOUR_CKAN_API_KEY}}

传递此API KEY

创建数据存储区

要创建数据存储区,您必须将参数POST到端点。

端点:http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_create

发布值:

{ "resource": {
        "package_id": "{{Package_ID}}"

    }, 
  "fields": [ 
           {"id" : "id"},
             {"id": "name"},
              {"id": "age"}

            ],
  "primary_key":["id"],

  "records": [  { "id":"1","name": "Alex", "age": "25"},
            {"id":"2", "name": "Rony", "age": "12"},
            { "id":"3","name": "Julis", "age": "20"}
             ]

}

主键是可选参数。如果您需要更新唯一/主键。您还可以在fields参数中指定每个字段的类型。

数据存储Upsert(更新或插入)

端点:http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_upsert

POST值:

{ 
  "resource_id": "{{resource_id}}", 
  "force":true, 
  "records": [ 
                { "id":"3","name": "David", "age": "18"},
            {"id":"4", "name": "John", "age": "22"}

             ],
  "method" : "insert"


}

可能的方法:upsert / insert / update。 默认情况下,该值为upsert(如果已经存在具有相同键的记录,则更新;否则,插入。需要唯一键。)

用于删除

端点:http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_delete

POST值:

{ 
  "resource_id": "{{resource_id}}", ", 
  "force":true, 
  "filters": {
        "name" : "Alex"
      }

}