У нас есть большое количество CSV-файлов, файлы / каталоги разделены по дате и ряду других факторов. Например, файлы могут называться /data/AAA/date/BBB.csv
Есть тысячи файлов, некоторые из них имеют размер в ГБ. Общие размеры данных указаны в терабайтах.
Они добавляются только когда-либо и обычно навалом, поэтому производительность записи не так важна. Мы не хотим загружать его в другую систему, потому что есть несколько важных процессов, которые мы запускаем и полагаемся на возможность быстрой потоковой передачи файлов, написанных на c ++.
Я ищу инструмент / библиотеку, которая позволила бы sql как запросы к данным непосредственно от данных. Я начал изучать hive, spark и другие инструменты для работы с большими данными, но не ясно, могут ли они получить доступ к секционированным данным напрямую из источника, который в нашем случае — через nfs.
В идеале мы могли бы определить таблицу, предоставив описание столбцов, а также информацию о разделах. Кроме того, файлы сжимаются, поэтому обработка сжатия будет идеальной.
Их инструменты с открытым исходным кодом, которые делают это? Я видел продукт под названием Pivotal, который утверждает, что делает это, но мы бы лучше написали наши собственные драйверы для наших данных для системы распределенных запросов с открытым исходным кодом.
Любые выводы будут оценены.
Искра может быть решением. Он находится в памяти распределенного процессора обработки. Данные могут быть загружены в память на нескольких узлах кластера и могут быть обработаны в памяти. Вам не нужно копировать данные в другую систему.
Вот шаги для вашего случая:
Это обеспечивает
Ограничения
С кустом, вам нужно скопировать данные в HDFS. Поскольку вы не хотите копировать данные в другую систему, куст может не быть решением.
Других решений пока нет …