Эффективное хранение текста UNICODED для обработки с помощью Blaze/Pandas

У меня есть около 5 миллионов (и растущих) строк твиттера, и я хочу их эффективно хранить для более быстрого доступа для чтения / записи с помощью Pandas (предпочтительно Blaze). Из этих огромных метаданных одного твита я просто храню [username, tweet time, tweet & tweet ID], Так что это не так много. Кроме того, все твиты unicode закодирован. Каков наилучший способ хранения этих данных? В настоящее время я храню их в куче CSV, но не нахожу это жизнеспособным решением по мере роста данных и, следовательно, планирую перейти на БД. Сначала я подумал о HDF5, но у него все еще есть проблемы с хранением не кодированных столбцов (даже в Python 3).

Поскольку Blaze имеет отличную поддержку баз данных (и я думаю, что она отлично подходит для аналитики), могу ли я узнать, что может быть хорошим архитектурным решением (на производственном уровне, если возможно) моей проблемы? Поскольку мои данные также структурированы, я не чувствую необходимости в решении NoSQL, но открыт для предложений.

В настоящее время эти 5-миллиметровые строки занимают всего около 1 ГБ пространства, и я не думаю, что они когда-либо будут пересекать несколько десятков ГБ. Итак, использует Postgresлучшая идея?

Спасибо

1 ответ

Да, PostgresSQL это идеальный выбор для вашего приложения 10 ГБ. Мне было легко использовать sqlalchemy с psycopg2 водитель, а psql инструмент командной строки в порядке.

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

Другие вопросы по тегам