Pertanyaan Mengapa pengguna perlu izin menulis di lokasi tabel sarang eksternal?


Di Hive, Anda dapat membuat dua jenis tabel: Terkelola dan Eksternal

Dalam hal tabel yang dikelola, Anda memiliki data dan karenanya ketika Anda menjatuhkan tabel, data dihapus.

Dalam hal tabel eksternal, Anda tidak memiliki kepemilikan data dan karenanya ketika Anda menghapus tabel tersebut, data yang mendasarinya tidak dihapus. Hanya metadata yang dihapus.

Sekarang, baru-baru ini saya telah mengamati bahwa Anda tidak dapat membuat tabel eksternal di atas lokasi di mana Anda tidak memiliki izin menulis (modifikasi) di HDFS. Saya benar-benar gagal memahami ini.

Use case: Sangat umum bahwa data yang Anda gandakan sangat besar dan hanya-baca. Jadi, untuk mengocok data tersebut melalui Hive, apakah Anda harus menyalin data yang sangat besar ini ke lokasi tempat Anda memiliki izin menulis?

Tolong bantu.


4
2018-05-31 06:38


asal


Jawaban:


Meskipun memang benar bahwa menjatuhkan data eksternal tidak mengakibatkan menjatuhkan data, ini tidak berarti bahwa tabel eksternal hanya untuk membaca. Misalnya, Anda harus bisa melakukan INSERT OVERWRITE di meja eksternal.

Yang sedang berkata, sudah pasti mungkin untuk menggunakan (internal) tabel ketika Anda hanya memiliki akses baca, jadi saya menduga ini adalah kasus untuk tabel eksternal juga. Coba buat tabel dengan akun yang memiliki akses tulis, lalu gunakan dengan akun reguler Anda.


0
2018-05-31 08:14