Как оптимизировать чтение больших таблиц и внешнее соединение в свинье

Я присоединяюсь к большому столу с 3 другими столами,

A = присоединиться к небольшой таблице с помощью (f1,f2) RIGHT OUTER , массивная таблица с помощью (f1,f2) ;

B = присоединиться к AnotherSmall с помощью (f3) RIGHT OUTER , A с помощью (f3) ;

C = присоединиться к AnotherSmall с помощью (f4), B с помощью (f4) ;

Небольшие таблицы могут не помещаться в памяти, но это заставляет трижды читать миллиард объектов и отнимает много времени. Мне было интересно, есть ли способ избежать повторного чтения и сделать процесс более эффективным?

Заранее спасибо.


person Vivek    schedule 12.09.2012    source источник
comment
f3 и f4 из массивной таблицы или исходной маленькой таблицы?   -  person Donald Miner    schedule 12.09.2012
comment
Они являются частью массивного стола. Практически мы денормализуем данные   -  person Vivek    schedule 20.09.2012


Ответы (1)


Если вы спроектируете свою большую таблицу в HBase так, чтобы она содержала три семейства столбцов, то есть разделив f1 и f2, на f3 и на f4, вы сможете избежать ненужных чтений.

Также, если подумать, вы не перечитываете, а читаете другую часть записи: сначала f1 и f2, затем f3 и, наконец, f4.

person ATN    schedule 01.03.2013