Size cevap vermek için Soru:
Harici Tablolar için Hive, verileri tablonun oluşturulması sırasında belirtilen LOCATION'da depolar (genellikle ambar dizininde değil). Harici tablo bırakılırsa, tablo meta verileri silinir ancak veriler silinmez.
Dahili tablolar için Hive, verileri ambar dizininde depolar. Tablo düşürülürse, hem tablo meta verileri hem de veriler silinecektir.
Senin referansın için,
İç ve Dış tablolar arasındaki fark:
Dış Tablolar için -
Harici tablo, dosyaları HDFS sunucusunda depolar, ancak tablolar kaynak dosyaya tamamen bağlanmaz.
Harici bir tabloyu silerseniz, dosya hala HDFS sunucusunda kalır.
Örnek olarak, HIVE-QL kullanarak HIVE'da "table_test" adlı harici bir tablo oluşturursanız ve tabloyu "dosya" dosyasına bağlarsanız , "table_test" HIVE'dan silindiğinde " dosya " HDFS'den silinmez .
Harici tablo dosyalarına HDFS dosya yapısına erişimi olan herkes erişebilir ve bu nedenle güvenliğin HDFS dosya / klasör düzeyinde yönetilmesi gerekir.
Meta veriler ana düğümde tutulur ve harici bir tablonun HIVE'dan silinmesi verileri / dosyayı değil yalnızca meta verileri siler.
İç Tablolar için-
- Ayarlara dayalı bir dizinde saklanan
hive.metastore.warehouse.dir
,
depolandığı varsayılan iç tablolar ile aşağıdaki dizinde “/ user / kovan / depo” yapılandırma dosyasındaki konumu güncelleyerek bunu değiştirebilirsiniz.
- Tablonun silinmesi, meta verileri ve verileri sırasıyla ana düğüm ve HDFS'den siler.
- İç tablo dosyası güvenliği yalnızca HIVE aracılığıyla kontrol edilir. Güvenliğin HIVE içinde, muhtemelen şema düzeyinde yönetilmesi gerekir (kuruluşa bağlıdır).
Hive, dahili veya harici tablolara sahip olabilir; bu, verilerin nasıl yüklendiğini, kontrol edildiğini ve yönetildiğini etkileyen bir seçimdir.
Şu durumlarda HARİCİ tabloları kullanın:
- Veriler de Hive kullanılan dışındadır . Örneğin, veri dosyaları, dosyaları kilitlemeyen mevcut bir program tarafından okunur ve işlenir.
- DROP TABLE sonrasında bile verilerin temel konumda kalması gerekir. Bu, tek bir veri kümesine birden çok şema (tablo veya görünüm) işaret ediyorsanız veya çeşitli olası şemalar arasında yineleme yapıyorsanız geçerli olabilir.
- Hive veri ve kontrol ayarlarına, dizinlere vb . Sahip olmamalıdır , bunları yapacak başka bir programınız veya işleminiz olabilir.
- Mevcut tabloyu temel alan tablo oluşturmuyorsunuz (AS SELECT).
DAHİLİ tabloları şu durumlarda kullanın:
- Veri geçicidir .
- Hive'ın tablonun ve verilerin yaşam döngüsünü tamamen yönetmesini istiyorsunuz .
Kaynak :
HDInsight: Hive Dahili ve Harici Tablolara Giriş
Hadoop-HIVE'da dahili ve harici tablolar