CKAN 是否能够处理 100k+ 文件和 TB 数据?
Is CKAN capable of dealing with 100k+ files and TB of data?
我们想要做的是为我们的实验室成员创建一个本地数据存储库来组织、搜索、访问、编目、引用我们的数据等。我觉得 CKAN 可以做所有这些事情;但是,我不确定它将如何处理我们实际拥有的数据的这些任务(我可能是错的,这就是我问的原因)。
我们的实验室正在采购大量数据供内部使用。我们希望能够在我们的小组(也许是 CKAN?)内对这些数据进行分类和组织,以便人们可以将数据推送到目录,然后提取数据并使用它。一些用例是,对数据、Web 界面、搜索、浏览、组织、添加、删除、更新数据集等进行 ACL。虽然 CKAN 看起来非常适合这个,但问题来自数据(更多所以数量)我们正在努力处理。
我们想要对 TB 级图像(200k+ 图像)、各种格式的地理空间数据、推特流(TB 级 JSON 数据)、数据库转储文件、二进制数据、机器学习模型等任何内容进行编目,等。我认为将 100k 64MB JSON 文件作为资源添加到 CKAN 数据集是不合理的,是吗?我们意识到我们将无法在此 JSON/images/geo 数据中进行搜索,这很好。但是我们希望了解我们是否有可用数据的信息(例如,我们搜索 "twitter 2015-02-03"),如果您愿意,可以使用一种元数据搜索。在 CKAN 中使用本地文件存储,如果用户请求 200k 图像会发生什么?当必须回答这些请求时,系统会变得无响应吗?
我看到 CKAN 在 datahub.io 上使用,其中绝大多数是小型 CSV 文件、小型 2-3MB zip 文件以及数据集中不超过 20 或 30 个单独的文件。
那么CKAN是否有能力做我们想做的事情呢?如果没有关于替代方案的任何建议?
编辑更具体的问题而不是讨论:
我环顾四周并在谷歌上搜索了有关此主题的信息,但我没有看到包含任何大量数据的已部署系统。
- 我可以上传的文件大小是否有限制(例如压缩后的 400GB 数据库文件)?
- 我作为资源上传到 CKAN 中的数据集的文件数量是否有限制? (例如,我创建了一个数据集并上传了 250,000 个 64MB JSON 文件并且系统可用?)
- UI好像不支持同时上传多个文件的功能(比如一个文件夹的数据作为资源)。是否已经有支持此功能的 tool/extension/plugin?
- 一个。是否有任何限制会阻止我使用 CKAN API 来实现此目的?
我们在自然历史博物馆 (data.nhm.ac.uk) 使用 CKAN 处理一些相当庞大的研究数据集 - 我们的主要标本 collection 有 280 万条记录 - 它处理得很好。我们不得不使用一些自定义插件来扩展 CKAN 以实现这一点 - 但它们是开源的并且可以在 Github.
上使用
我们的 datasolr 扩展将查询大型数据集转移到 SOLR 中,它比 postgres(无论如何在我们的基础设施上)更好地处理索引和搜索大型数据集 - https://github.com/NaturalHistoryMuseum/ckanext-datasolr。
为了防止用户下载大文件时 CKAN 掉线,我们将打包和下载移动到单独的服务和任务队列中。
https://github.com/NaturalHistoryMuseum/ckanext-ckanpackager
https://github.com/NaturalHistoryMuseum/ckanpackager
所以是的,带有一些贡献插件的 CKAN 绝对可以处理更大的数据集。我们还没有使用 TB+ 数据集对其进行测试,但我们将在明年使用 CKAN 发布一些系统发育数据时进行测试。
是:)
但是有一些扩展可以使用或构建。
看看为 CKAN Galleries (http://datashades.com/ckan-galleries/) 构建的扩展。我们专门为在数据集资源的记录级别引用的图像和视频资产构建了它。
如果需要,有一个用于对象存储的 S3 云连接器。
我们已经开始研究扩展 CKAN 的各种方法,以便它可以为所有类型的数据提供企业数据存储和管理。非常大、实时、物联网特定、关联数据等
我认为在某些情况下,可以通过向 CKAN 添加 'resource containers' 的概念来解决这些问题。在某种意义上,文件存储和数据存储都是此类资源容器扩展的示例。
使用 AWS 的 API 网关服务,我们正在寻找方法来呈现通过与第三方解决方案的外部集成存储的数据的请求方法,就好像它们与其他 CKAN 资源没有什么不同一样。
虽然不是每个人都在那里,但当您使用 AWS 支持的基础设施作为软件时,您可以构建一些非常简洁的东西,看起来像传统网络堆栈上的软件 运行,但实际上正在使用S3、Lambda、临时关系数据库和 API 网关来完成一些非常繁重的工作。
我们的目标是开源开放架构等成熟工作所采用的方法。我们已经开始发布用于在 AWS 上构建超级计算机集群的脚本。你可以在这里找到它们:https://github.com/DataShades/awscloud-hpc
我们想要做的是为我们的实验室成员创建一个本地数据存储库来组织、搜索、访问、编目、引用我们的数据等。我觉得 CKAN 可以做所有这些事情;但是,我不确定它将如何处理我们实际拥有的数据的这些任务(我可能是错的,这就是我问的原因)。
我们的实验室正在采购大量数据供内部使用。我们希望能够在我们的小组(也许是 CKAN?)内对这些数据进行分类和组织,以便人们可以将数据推送到目录,然后提取数据并使用它。一些用例是,对数据、Web 界面、搜索、浏览、组织、添加、删除、更新数据集等进行 ACL。虽然 CKAN 看起来非常适合这个,但问题来自数据(更多所以数量)我们正在努力处理。
我们想要对 TB 级图像(200k+ 图像)、各种格式的地理空间数据、推特流(TB 级 JSON 数据)、数据库转储文件、二进制数据、机器学习模型等任何内容进行编目,等。我认为将 100k 64MB JSON 文件作为资源添加到 CKAN 数据集是不合理的,是吗?我们意识到我们将无法在此 JSON/images/geo 数据中进行搜索,这很好。但是我们希望了解我们是否有可用数据的信息(例如,我们搜索 "twitter 2015-02-03"),如果您愿意,可以使用一种元数据搜索。在 CKAN 中使用本地文件存储,如果用户请求 200k 图像会发生什么?当必须回答这些请求时,系统会变得无响应吗?
我看到 CKAN 在 datahub.io 上使用,其中绝大多数是小型 CSV 文件、小型 2-3MB zip 文件以及数据集中不超过 20 或 30 个单独的文件。
那么CKAN是否有能力做我们想做的事情呢?如果没有关于替代方案的任何建议?
编辑更具体的问题而不是讨论:
我环顾四周并在谷歌上搜索了有关此主题的信息,但我没有看到包含任何大量数据的已部署系统。
- 我可以上传的文件大小是否有限制(例如压缩后的 400GB 数据库文件)?
- 我作为资源上传到 CKAN 中的数据集的文件数量是否有限制? (例如,我创建了一个数据集并上传了 250,000 个 64MB JSON 文件并且系统可用?)
- UI好像不支持同时上传多个文件的功能(比如一个文件夹的数据作为资源)。是否已经有支持此功能的 tool/extension/plugin?
- 一个。是否有任何限制会阻止我使用 CKAN API 来实现此目的?
我们在自然历史博物馆 (data.nhm.ac.uk) 使用 CKAN 处理一些相当庞大的研究数据集 - 我们的主要标本 collection 有 280 万条记录 - 它处理得很好。我们不得不使用一些自定义插件来扩展 CKAN 以实现这一点 - 但它们是开源的并且可以在 Github.
上使用我们的 datasolr 扩展将查询大型数据集转移到 SOLR 中,它比 postgres(无论如何在我们的基础设施上)更好地处理索引和搜索大型数据集 - https://github.com/NaturalHistoryMuseum/ckanext-datasolr。
为了防止用户下载大文件时 CKAN 掉线,我们将打包和下载移动到单独的服务和任务队列中。
https://github.com/NaturalHistoryMuseum/ckanext-ckanpackager https://github.com/NaturalHistoryMuseum/ckanpackager
所以是的,带有一些贡献插件的 CKAN 绝对可以处理更大的数据集。我们还没有使用 TB+ 数据集对其进行测试,但我们将在明年使用 CKAN 发布一些系统发育数据时进行测试。
是:)
但是有一些扩展可以使用或构建。
看看为 CKAN Galleries (http://datashades.com/ckan-galleries/) 构建的扩展。我们专门为在数据集资源的记录级别引用的图像和视频资产构建了它。
如果需要,有一个用于对象存储的 S3 云连接器。
我们已经开始研究扩展 CKAN 的各种方法,以便它可以为所有类型的数据提供企业数据存储和管理。非常大、实时、物联网特定、关联数据等
我认为在某些情况下,可以通过向 CKAN 添加 'resource containers' 的概念来解决这些问题。在某种意义上,文件存储和数据存储都是此类资源容器扩展的示例。
使用 AWS 的 API 网关服务,我们正在寻找方法来呈现通过与第三方解决方案的外部集成存储的数据的请求方法,就好像它们与其他 CKAN 资源没有什么不同一样。
虽然不是每个人都在那里,但当您使用 AWS 支持的基础设施作为软件时,您可以构建一些非常简洁的东西,看起来像传统网络堆栈上的软件 运行,但实际上正在使用S3、Lambda、临时关系数据库和 API 网关来完成一些非常繁重的工作。
我们的目标是开源开放架构等成熟工作所采用的方法。我们已经开始发布用于在 AWS 上构建超级计算机集群的脚本。你可以在这里找到它们:https://github.com/DataShades/awscloud-hpc