Анализ больших CSV при поиске в базе данных - PullRequest
0 голосов
/ 27 февраля 2019

В настоящее время есть сложная проблема, и нам нужны идеи для наиболее эффективного способа решения.

Мы периодически перебираем большие файлы CSV (~ 50000 до 2 м строк), и для каждой строки нам нужно проверятьтаблица базы данных для соответствующих столбцов.

Так, например, каждая строка CSV может содержать сведения о событии - исполнителя, место проведения, дату / время и т. д., и для каждой строки мы проверяем нашу базу данных (PG) на наличие любыхстроки, которые наиболее соответствуют артисту, месту и дате / времени, а затем выполняют операции, если найдено какое-либо совпадение.

В настоящее время весь процесс требует много ресурсов процессора, памяти и времени, потянув строку за строкой, поэтому мывыполнять сопоставление партиями, но все еще ищем идеи для эффективного способа сравнения как по памяти, так и по времени

Спасибо.

1 Ответ

0 голосов
/ 27 февраля 2019
  1. Загрузить полный файл CSV во временную таблицу в вашей базе данных (используя инструмент БД, см., Например, Как импортировать данные файла CSV в таблицу PostgreSQL? )
  2. Выполнять сопоставление и операции в базе данных, т. Е. В SQL
  3. . При необходимости после этого усечь временную таблицуиздержки (сетевой трафик, разбор результатов, создание модели и т. д.)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...