{{description}}
datapackage-pipelines-ckan的Python项目详细描述
Data Package Pipelines 用于CKAN的处理器。
安装
# clone the repo and install it with pip git clone https://github.com/frictionlessdata/datapackage-pipelines-ckan.git pip install -e .
用法
数据包管道ckan包含多个用于 与CKAN合作
ckan.add_ckan_resource
从ckan检索有关ckan资源的元数据的处理器 实例并将其添加为数据包资源
run:ckan.add_ckan_resourceparameters:ckan-host:http://demo.ckan.orgresource-id:d51c9bd4-8256-4289-bdd7-962f8572efb0ckan-api-key:env:CKAN_API_KEY# an env var defining a ckan user api key
- ckan-host:CKAN实例(例如。 http://demo.ckan.org)。
- resource-id:ckan资源的id
- ckan-api-key:一个ckan用户api密钥,或者,如果格式为 env:CKAN_API_KEY_NAME,一个定义api密钥的env变量。 可选,但对于私有数据集是必需的
ckan.dump.to_ckan
将数据包和资源保存到指定ckan的处理器。 实例
run:ckan.dump.to_ckanparameters:ckan-host:http://demo.ckan.orgckan-api-key:env:CKAN_API_KEYoverwrite_existing:truepush_resources_to_datastore:truedataset-properties:name:test-dataset-010203state:draftprivate:trueowner_org:my-test-org
- ckan-host:CKAN实例(例如。 http://demo.ckan.org)。
- ckan-api-key:一个ckan用户api密钥,或者,如果格式为 env:CKAN_API_KEY_NAME,一个定义api密钥的env变量。
- overwrite_existing:如果true,如果ckan数据集已经 存在,它将被DATAPACKAGE覆盖。可选,以及 默认值为false。
- push_resources_to_datastore:如果true,则新创建的资源 将被推送到CKAN数据存储。可选,默认为 false。
- push_resources_to_datastore_method:值是一个字符串,其中之一 “upsert”、“insert”或“update”。这将是用于添加 数据到数据存储(请参见 https://ckan.readthedocs.io/en/latest/maintaining/datastore.html#ckanext.datastore.logic.action.datastore_upsert)。 可选,默认值为“插入”。
- dataset-properties:可选对象,其属性 将用于设置ckan数据集的属性。
数据包中的ckan数据集
处理器首先从数据包创建一个CKAN数据集 规范,使用ckan api `package_create<;http://docs.ckan.org/en/latest/api/#ckan.logic.action.create.package_create>;``。 如果数据集已经存在,并且参数^ {TT10}$是 True,处理器将尝试使用 `package_update<;http://docs.ckan.org/en/latest/api/#ckan.logic.action.update.package_update>;``。 所有的现有资源和数据集属性都将被覆盖。
来自数据包资源的ckan资源
如果成功创建或更新了ckan数据集,则 将为数据包中的每个资源创建资源,使用 `resource_create<;http://docs.ckan.org/en/latest/api/#ckan.logic.action.create.resource_create>;``。 如果数据包资源被标记为流式处理(它们具有 dpp:streamed=Trueproperty),资源文件将上载到 ckan文件存储。例如,远程资源可以标记为 包含stream_remote_resources处理器的流式处理 早些时候还在酝酿中。
另外,如果push_resources_to_datastore是True,则 处理器将标记为流式传输的资源推送到ckan数据存储 使用 `datastore_create<;https://ckan.readthedocs.io/en/latest/maintaining/datastore.html#ckanext.datastore.logic.action.datastore_create>;。`_ 和 `datastore_upsert<;https://ckan.readthedocs.io/en/latest/maintaining/datastore.html#ckanext.datastore.logic.action.datastore_upsert>;``。