Эффективное хранение текста 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.