Używam gałąź 071, przetwarza istniejące dane, które posiada następującą strukturę katalogów:
-TableName
- d = (np 2011-08-01)
- d = 2011-08-02
- d = 2011-08-03
... itd.
pod każdą datą mam pliki z datą.
teraz załadować dane używamHive: dynamiczne dodawanie do tabeli partycji zewnętrznego
CREATE EXTERNAL TABLE table_name (i int)
PARTITIONED BY (date String)
LOCATION '${hiveconf:basepath}/TableName';**
Chciałbym mój skrypt ula, aby móc załadować odpowiednie partycje według niektórych daty wejścia oraz liczbę dni. więc jeśli mijam date = '2011-08-03' i dni = '7'
Skrypt powinien załadować następujących partycje - d = 2011-08-03
- D = 2011-08 -04
- d = 2011-08-05
- d = 2011-08-06
- d = 2011-08-07
- d = 2011-08-08
- d = 2011-08 -09
Nie znalazłem żadnego sposobu na złagodzenie tego CEPT explicitlly trwania:
ALTER TABLE table_name ADD PARTITION (d='2011-08-03');
ALTER TABLE table_name ADD PARTITION (d='2011-08-04');
ALTER TABLE table_name ADD PARTITION (d='2011-08-05');
ALTER TABLE table_name ADD PARTITION (d='2011-08-06');
ALTER TABLE table_name ADD PARTITION (d='2011-08-07');
ALTER TABLE table_name ADD PARTITION (d='2011-08-08');
ALTER TABLE table_name ADD PARTITION (d='2011-08-09');
a następnie uruchomić mój kwerendy
select count(1) from table_name;
jednak nie jest to offcourse zautomatyzowany według daty i dni wejścia
Czy jest jakiś sposób mogę zdefiniować do zewnętrznego tabela, aby załadować partycje zgodnie z zakresem dat lub arytmetyką dat?
Cześć! Czy udało Ci się rozwiązać ten problem? Jeśli tak, czy możesz udostępnić swoje rozwiązanie? Dzięki!! – eli
Podczas pracy z Amazon EMR. wskazuje, że Amazon zaimplementował następującą komendę: "alter table X recover partitions", która dodaje wszystkie podkatalogi jako partycje. to częściowo rozwiązuje problem za pomocą "gdzie d> start i d
Tomer
Dzięki. Miałem nadzieję, że nie będę musiał odzyskiwać partycji, ponieważ zajmuje to trochę czasu. – eli