Чтобы ответить на ваш вопрос,
< / blockquote>
- Всегда ли есть компромиссы в производительности запросов или их можно оптимизировать с помощью изменений конфигурации, горизонтального масштабирования оборудования?
Если вы используете только инструмент куста от Hadoop для запросов Adhoc, тогда это неправильный выбор для запросов adhoc и анализа данных. Мы рассмотрим лучший вариант в соответствии с вашим вариантом использования и сделаем выбор технологий из Hive LLAP, HBase, Spark, SparkSQL, Spark Streaming, Apache storm, Imapala, Apache Drill и Prestodb и т. Д.
blockquote>
- Может ли он когда-нибудь быть таким же быстрым, как что-то вроде Netezza - который использует некоммерческое аппаратное обеспечение, но работает на аналогичной архитектуре?
Это лучший инструмент В настоящее время большинство организаций используют, но вы должны быть конкретны в выборе технических инструментов из технологического стека Hadoop в соответствии с вашим вариантом использования, и после изучения его сделайте правильный выбор для технологии.
blockquote>
- Где Hadoop великолепен и абсолютно превосходит все остальное в сравнении?
Hadoop лучше всего подходит для реализации платформы озера данных в большой организации, где данные разбросаны по нескольким системы, и с помощью озера данных Hadoop вы можете иметь данные в центре. Который может быть использован в качестве платформы для анализа данных для данных организации, накопленных за определенный период времени. Также может использоваться для обработки данных потока данных, чтобы получить результаты в режиме реального времени.
Надеюсь, это поможет.
Вы могли использовать TADOQuery для ограничения набора результатов с запросом SQL. Или Вы могли использовать TADOTable и установить CursorLocation на Серверный курсор для предотвращения клиента, загружающего полный набор результатов в памяти.
Вы могли использовать это adoTable с Сервером курсор OpenForwardOnly и TCLientDataset с набором PacketRecords к ненулевому значению. Работавший замечательно, когда я должен был записать приложение для нагнетания данных от MSSQL до Oracle на специализированном пути с таблицами с миллионами записей.
РЕДАКТИРОВАНИЕ-> Это было бы что-то на строках этого:
procedure ConfigCDSFromAdoQuery(p_ADOQ: TADOQuery; p_CDS: TClientDataset; p_Prov: TDatasetProvider);
begin
If p_ADOQ.Active then p_ADOQ.Close;
p_ADOQ.CursorLocation := clServer;
p_ADOQ.CursorType := ctOpenForwardOnly;
p_Prov.Dataset := p_ADOQ;
p_CDS.SetProvider(p_Prov);
p_CDS.PacketRecords := 100;
p_CDS.Open;
end ;
Я сделал это все кодом, но большинство которых можно сделать во время проектирования.
Эта статья является конкретным BDE, но относится к ADO или большинству библиотек доступа клиентских данных.
http://dn.codegear.com/article/28160
Я рекомендовал бы использовать TADODataSet (это "ближе" к уровню ADO, чем TADOQuery), и выбор только данных клиентские потребности путем обеспечения пользовательской поисковой формы (диапазон дат, список определенных объектов, и т.д.)
Удачи
Я нашел, что ADO + Доступ w/Delphi является крайне медленным для большого количества вещей (большие чтения таблицы как, Вы описываете, но также и вставляет также, и т.д.). Мой ответ стал "Выходом с помощью ADO и Доступа в целом".
Никогда не понимал, почему это работало так плохо, особенно когда более ранние технологии казались не.