индексированные плоские файлы - PullRequest
0 голосов
/ 25 ноября 2011

У нас есть пакетное аналитическое задание SQL - запускаемое один раз в день, которое считывает данные из 2 исходных таблиц, хранящихся в мощной РСУБД. Исходные таблицы огромны (> 100 ТБ), но объединяют менее 10 полей.

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

1 Ответ

1 голос
/ 25 ноября 2011

Большинство стратегий оптимизации оптимизируют скорость или размер и обменивают одну на другую.В целом, решения RDBMS оптимизируются по скорости, за счет размера, например, создавая индекс, вы занимаете больше места, а взамен вы получаете более быстрый доступ к данным.

Так что ваше желание оптимизировать дляИ скорость, и размер вряд ли будут выполнены - вам почти наверняка придется торговать друг против друга.

Во-вторых, если вы хотите выполнять "sql-подобные" запросы, я почти уверен, что СУБД - лучшее решение, особенно с огромными наборами данных.

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

...