Untuk menjawab pertanyaan Anda:
Untuk Tabel Eksternal, Hive menyimpan data di LOKASI yang ditentukan selama pembuatan tabel (umumnya tidak di direktori gudang). Jika tabel eksternal dihapus, maka metadata tabel dihapus tetapi datanya tidak.
Untuk tabel Internal, Hive menyimpan data ke direktori gudang nya. Jika tabel dihapus maka metadata tabel dan datanya akan dihapus.
Untuk referensi Anda,
Perbedaan antara tabel Internal & Eksternal:
Untuk Tabel Eksternal -
Tabel eksternal menyimpan file di server HDFS tetapi tabel tidak ditautkan sepenuhnya ke file sumber.
Jika Anda menghapus tabel eksternal, file masih tetap berada di server HDFS.
Sebagai contoh jika Anda membuat tabel eksternal bernama "table_test" di HIVE menggunakan HIVE-QL dan menautkan tabel ke file "file" , maka menghapus "table_test" dari HIVE tidak akan menghapus "file" dari HDFS .
File tabel eksternal dapat diakses oleh siapa saja yang memiliki akses ke struktur file HDFS dan oleh karena itu keamanan perlu dikelola di level file / folder HDFS.
Data meta dipertahankan pada node master, dan menghapus tabel eksternal dari HIVE hanya menghapus metadata, bukan data / file.
Untuk Tabel Internal-
- Disimpan dalam direktori berdasarkan pengaturan di
hive.metastore.warehouse.dir
,
secara default tabel internal disimpan di direktori berikut "/ user / hive / warehouse" Anda dapat mengubahnya dengan memperbarui lokasi di file konfigurasi.
- Menghapus tabel akan menghapus metadata dan data masing-masing dari master-node dan HDFS.
- Keamanan file tabel internal dikontrol hanya melalui HIVE. Keamanan perlu dikelola dalam HIVE, mungkin di tingkat skema (bergantung pada organisasi).
Hive mungkin memiliki tabel internal atau eksternal, ini adalah pilihan yang memengaruhi cara data dimuat, dikontrol, dan dikelola.
Gunakan tabel EKSTERNAL ketika:
- The data juga digunakan di luar Hive . Misalnya, file data dibaca dan diproses oleh program yang sudah ada yang tidak mengunci file.
- Data harus tetap berada di lokasi yang mendasarinya bahkan setelah TABEL DROP. Ini dapat diterapkan jika Anda menunjuk beberapa skema (tabel atau tampilan) pada satu kumpulan data atau jika Anda mengulang melalui berbagai kemungkinan skema.
- Hive tidak boleh memiliki data dan pengaturan kontrol, direktori, dll ., Anda mungkin memiliki program atau proses lain yang akan melakukan hal-hal itu.
- Anda tidak membuat tabel berdasarkan tabel yang sudah ada (SEBAGAI PILIH).
Gunakan tabel INTERNAL ketika:
- The data sementara .
- Anda ingin Hive mengelola sepenuhnya siklus hidup tabel dan data .
Sumber:
HDInsight: Perkenalan Tabel Internal dan Eksternal Sarang
Tabel internal & eksternal di Hadoop- HIVE