2017-04-06 2 views
0

Meine Hive-Tabelle enthält Anrufdaten. 3 Spalten der Tabelle sind field1- CALL_DATE, field2-FROM_PHONE_NUM, field3- TO_PHONEPartitionierung und Bucketing im Hive

ich so etwas wie 1 abfragen würde) Ich möchte alle Anrufaufzeichnungen zwischen einem bestimmten Datum erhalten. 2) Ich möchte alle Anrufdatensätze für eine FROM_PHONE-Telefonnummer zwischen bestimmten Daten abrufen. 2) Ich möchte alle Anrufdatensätze für eine TO_PHONE-Telefonnummer zwischen bestimmten Daten abrufen.

Meine Tischgröße beträgt ca. 6 TB.

kann ich wissen, wie kann ich Partitionierung anwenden müssen oder für eine bessere Leistung aller meiner Anfragen bucketing?

Antwort

0

Ihre Anforderung ist immer Daten zwischen bestimmten Terminen zu erhalten und zu tun auf sie filtern, so tun Tabelle Partition auf Datum voreingenommen.

Wie Link für dynamische Partition

Sie haben Datum Partitionsschlüssel als yyyymmdd können erstellen.

(wie - 20.170.406 für heute (6. April 2017))

+0

Wie kann ich eine Abfrage schneller zu machen, wenn ich von aktuellen bezogenen Anrufaufzeichnungen abrufen möchten. – AKC

+0

Wenn ich verstehe, korrigieren Sie "Sie möchten Anrufdatensatz für ein bestimmtes Datum abrufen" dann, wenn Daten nach Datum partitioniert ist, wie in Antwort-Hive erwähnt erhalten Sie Daten von Rückführung und Abfrage wird schnell sein ... –

Verwandte Themen