wie man Tabellen in HBase verbindet

8

Ich muss Tabellen in Hbase verbinden.

Ich habe HIVE und HBase integriert und das funktioniert gut. Ich kann mit HIVE abfragen.

Aber kann mir jemand helfen, Tabellen in HBase zu verbinden, ohne HIVE zu benutzen? Ich denke, mit mapreduce können wir dies erreichen, wenn das der Fall ist, kann jemand ein funktionierendes Beispiel teilen, auf das ich verweisen kann.

Bitte teilen Sie Ihre Meinungen.

Ich habe einen Ansatz vor Augen. Das heißt,

Wenn ich Tabellen A x B x C verbinden muss; Ich kann TableMapReduceUtil verwenden, um über A zu iterieren, und dann Daten von B und C innerhalb des TableMapper abzurufen. Verwenden Sie dann den TableReducer, um zurück in eine andere Tabelle Y zu schreiben.

Wird dieser Ansatz gut sein?

    
dharshan 04.07.2012, 10:32
quelle

1 Antwort

12

Das ist sicherlich ein Ansatz, aber wenn Sie zwei zufällige Lesevorgänge pro gescannte Zeile machen, wird Ihre Geschwindigkeit sinken. Wenn Sie die Zeilen erheblich filtern oder eine kleine Datenmenge in A haben, die kein Problem darstellt.

Sort-merge Join

Der beste Ansatz, der in HBase 0.96 verfügbar sein wird, ist jedoch die MultipleTableInput-Methode. Dies bedeutet, dass Tabelle A gescannt und die Ausgabe mit einem eindeutigen Schlüssel ausgegeben wird, der es ermöglicht, dass Tabelle B übereinstimmt.

z. Tabelle A gibt (b_id, a_info) aus, und Tabelle B gibt (b_id, b_info) zusammen im Reduzierer aus.

Dies ist ein Beispiel für einen Sort-Merge-Join.

Nested-Loop Join

Wenn Sie dem Zeilenschlüssel beitreten oder das Verknüpfungsattribut in Übereinstimmung mit Tabelle B sortiert wird, können Sie in jeder Aufgabe eine Instanz eines Scanners haben, die sequenziell aus Tabelle B liest, bis sie das Gesuchte gefunden hat.

z. Tabelle A Zeilenschlüssel="companyId" und Tabelle B Zeilenschlüssel="companyId_employeeId". Dann können Sie für jedes Unternehmen in Tabelle A alle Mitarbeiter mit dem Nest-Loop-Algorithmus ermitteln.

Pseudocode:

%Vor%

Dies ist ein Beispiel für einen Nest-Loop-Join.

Detailliertere Join-Algorithmen finden Sie hier:

Bryan 02.08.2012, 21:03
quelle

Tags und Links