2015-10-21 4 views
4

Что мы хотим сделать, так это создать локальный репозиторий данных для наших лабораторий для организации, поиска, доступа, каталога, ссылки на наши данные и т. Д. Я чувствую, что CKAN может делать все это; однако я не уверен, как он будет справляться с этими задачами для данных, которые у нас есть (я мог ошибаться, поэтому я спрашиваю).Является ли CKAN способным работать с файлами 100k + и TB данных?

Наша лаборатория закупает много данных для внутреннего использования. Мы хотели бы иметь возможность каталогизировать и организовывать эти данные в нашей группе (возможно, CKAN?), Чтобы люди могли вставлять данные в каталог и извлекать данные и использовать их. В некоторых случаях использование ACL для данных, веб-интерфейс, поиск, просмотр, упорядочивание, добавление, удаление, обновление наборов данных и т. Д. Хотя CKAN выглядит очень подходящим для этого, проблема связана с данными (подробнее поэтому сумма), с которой мы пытаемся справиться.

Мы хотим каталогизировать что-либо из терабайт изображений (200k + изображений), геопространственных данных в различных форматах, твиттер-потоков (TBs данных JSON), файлов дампа базы данных, двоичных данных, моделей машинного обучения и т. Д. Думаю, было бы разумно добавить 100k 64MB JSON-файлы в качестве ресурса в набор данных CKAN, или это так? Мы понимаем, что мы не сможем искать в этих JSON/изображениях/геоданных, что хорошо. Но мы хотели бы получить информацию о том, были ли доступны данные (например, мы ищем «twitter 2015-02-03»), тип поиска метаданных, если хотите. Используя локальное хранилище файлов в CKAN, что произойдет, если пользователь запросит 200 тыс. Изображений? Не перестанет ли система реагировать на эти запросы?

Я видел CKAN, используемый в datahub.io, и подавляющее большинство этого материала представляют собой небольшие CSV-файлы, небольшие файлы размером 2-3 МБ и не более 20 или 30 отдельных файлов в наборе данных.

Итак, CKAN способен делать то, что мы хотим? Если это не предложения по альтернативам?

Редактировать более конкретные вопросы вместо обсуждения:

Я посмотрел вокруг и гугла информации по этой теме, но я не вижу развернутую систему с каким-либо значительным количеством данных.

  1. Существует ли ограничение на размеры файлов, которые я могу загрузить (например, файл базы данных размером 400 ГБ)?
  2. Существует ли ограничение на количество файлов, которые я загружаю в качестве ресурса в набор данных в CKAN? (например, я создаю набор данных и загружаю 250 000 64-мегабайтных JSON-файлов, и система может быть использована?)
  3. Пользовательский интерфейс, похоже, не поддерживает возможность загрузки нескольких файлов в определенное время (например, папка данных в качестве ресурса) , Есть ли инструмент/расширение/плагин, который уже поддерживает эту функциональность?
  4. a. существуют ли какие-либо ограничения, которые помешали бы мне использовать CKAN API для этого?
+0

Вопросы по SO должны быть конкретной проблемой, а не открытыми обсуждениями –

+1

@DRead Я изменил вопрос на конкретные элементы. –

ответ

6

Мы используем CKAN в Музее естественной истории (data.nhm.ac.uk) для некоторых довольно массивных исследовательских наборов данных - наша основная коллекция образцов насчитывает 2,8 миллиона записей - и она очень хорошо справляется с этим. Нам пришлось расширять 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 для выпуска некоторых филогенетических данных.

+0

Благодарим вас за отзыв! Я действительно смотрел ваши расширения, чтобы посмотреть, будут ли они работать для нас! Скажете ли вы, что ваши данные в основном являются табличными данными (на основе столбцов)? Есть ли у вас опыт в организации чисто текстовых, журнальных, двоичных данных? В вашем опыте с CKAN у вас возникли проблемы с загрузкой больших наборов данных? –

+0

Это в основном, но не все табличные - у нас также есть некоторые архивированные архивы звуковых файлов, изображений, а также некоторые более неясные текстовые форматы, такие как файлы nexus. Но мы не делаем ничего особенно умного с этими файлами - они просто доступны для загрузки и не доступны для изучения в Интернете. Загрузка больших файлов - проблема для нас - в настоящее время пользователи должны отправлять нам свои большие файлы, которые нужно добавить вручную. Но мы изучаем интеграцию dropbox/rsync, чтобы попытаться обойти это. –

+0

@BenScott, пожалуйста, уточните, почему большие файлы являются проблемой? Что не удается? Мы также рассмотрим их автоматизацию. благодаря – Chris

1

Да :)

Но есть расширения для использования или сборки.

Взгляните на расширения, созданные для галерей CKAN (http://datashades.com/ckan-galleries/). Мы построили это специально для изображений и видео активов, на которые ссылаются на уровне записи ресурса набора данных.

При необходимости имеется облачный соединитель S3 для хранения объектов.

Мы начали рассматривать различные способы расширения CKAN, чтобы он мог обеспечивать хранение и управление корпоративными данными для всех типов данных. Очень большой, в реальном времени, специфический для IoT, Связанные данные и т. Д.

Я думаю, что в некоторых случаях это будет рассмотрено путем добавления концепции «контейнеров ресурсов» в CKAN. В некотором смысле, как хранилище файлов, так и хранилище данных являются примерами таких расширений контейнера ресурсов.

Используя сервис AWS API Gateway, мы изучаем способы представления методов запросов для данных, хранящихся через внешнюю интеграцию с сторонними решениями, как если бы они ничем не отличались от других ресурсов CKAN.

Хотя не все пока есть, когда вы используете инфраструктуру как программное обеспечение, которое позволяет использовать AWS, вы можете создать действительно аккуратный материал, который выглядит как программное обеспечение, работающее на традиционном веб-стеке, но на самом деле использует S3, Lambda, временные реляционные базы данных и шлюз API, чтобы сделать очень тяжелый подъем.

Мы стремимся с открытым исходным кодом использовать подход, используемый для такой работы, как открытая архитектура по мере ее созревания. Мы начали это уже путем публикации сценариев, используемых для создания суперкомпьютерных кластеров на AWS. Вы можете найти их здесь: https://github.com/DataShades/awscloud-hpc