Jalankan kueri Apache Hive menggunakan alat Data Lake untuk Visual Studio

Pelajari cara menggunakan alat Data Lake untuk Visual Studio untuk mengkueri Apache Hive. Alat Data Lake memungkinkan Anda untuk dengan mudah membuat, mengirimkan, dan memantau kueri Hive ke Apache Hadoop di Azure HDInsight.

Prasyarat

Menjalankan kueri Apache Hive menggunakan Visual Studio

Anda memiliki dua opsi untuk membuat dan menjalankan kueri Hive:

  • Membuat kueri ad-hoc.
  • Membuat aplikasi Hive.

Membuat kueri Hive ad-hoc

Kueri ad hoc dapat dieksekusi dalam mode Batch atau Interaktif.

  1. Luncurkan Visual Studio dan pilih Lanjutkan tanpa kode.

  2. Dari Server Explorer, klik kanan Azure, pilih Sambungkan ke Langganan Microsoft Azure..., dan selesaikan proses masuk.

  3. Perluas HDInsight, klik kanan kluster tempat Anda ingin menjalankan kueri, lalu pilih Tulis Kueri Hive.

  4. Masukkan kueri Hive berikut:

    SELECT * FROM hivesampletable;
    
  5. Pilih Jalankan. Mode eksekusi default ke Interaktif.

    Execute interactive Hive query, Visual Studio.

  6. Untuk menjalankan kueri yang sama dalam mode Batch, alihkan daftar pilihan dari Interaktif ke Batch. Tombol eksekusi berubah dari Eksekusi menjadi Kirim.

    Submit batch Hive query, Visual Studio.

    Editor Apache Hive mendukung IntelliSense. Data Lake Tools untuk Visual Studio mendukung pemuatan metadata jarak jauh saat Anda mengedit skrip Apache Hive. Misalnya, jika Anda mengetik SELECT * FROM, IntelliSense mencantumkan semua nama tabel yang disarankan. Saat nama tabel ditentukan, IntelliSense mencantumkan nama kolom. Alat-alat ini mendukung sebagian besar pernyataan DML Apache Hive, subkueri, dan UDF bawaan. IntelliSense hanya menyarankan metadata kluster yang dipilih di bilah alat HDInsight.

  7. Di toolbar kueri (area di bawah tab kueri dan di atas teks kueri), pilih Kirim, atau pilih panah pilihan di samping Kirim dan pilih Tingkat Lanjut dari daftar pilihan. Jika Anda memilih opsi yang terakhir,

  8. Jika Anda memilih opsi kirim lanjutan, konfigurasikan Nama Pekerjaan, Argumen, Konfigurasi Tambahan, dan Direktori Status dalam kotak dialog Kirim Skrip. Lalu pilih Kirim.

    Submit Script dialog box, HDInsight Hadoop Hive query.

Buat aplikasi Hive

Untuk menjalankan kueri Hive dengan membuat aplikasi Hive, ikuti langkah-langkah berikut:

  1. Membuka Visual Studio.

  2. Di jendela Mulai, pilih Buat proyek baru.

  3. Di jendela Buat proyek baru, dalam kotak Cari templat, masukkan Hive. Lalu pilih Aplikasi Hive dan pilih Berikutnya.

  4. Di jendela Konfigurasikan proyek baru Anda, masukkan nama Proyek, pilih atau buat Lokasi untuk proyek baru, lalu pilih Buat.

  5. Buka file Script.hql yang dibuat dengan proyek ini, dan tempelkan dalam pernyataan HiveQL berikut:

    set hive.execution.engine=tez;
    DROP TABLE log4jLogs;
    CREATE EXTERNAL TABLE log4jLogs (t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
    STORED AS TEXTFILE LOCATION '/example/data/';
    SELECT t4 AS sev, COUNT(*) AS count FROM log4jLogs WHERE t4 = '[ERROR]' AND  INPUT__FILE__NAME LIKE '%.log' GROUP BY t4;
    

    Pernyataan ini melakukan tindakan berikut:

    • DROP TABLE: Menghapus tabel jika ada.

    • CREATE EXTERNAL TABLE: Membuat tabel 'eksternal' baru di Hive. Tabel eksternal hanya menyimpan definisi tabel di Apache Hive. (Data tertinggal di lokasi asli.)

      Catatan

      Tabel eksternal harus digunakan saat Anda mengharapkan data yang mendasarinya diperbarui oleh sumber eksternal, seperti pekerjaan MapReduce atau layanan Azure.

      Menjatuhkan tabel eksternal tidak menghapus data, hanya definisi tabel.

    • ROW FORMAT: Memberi tahu Hive bagaimana data diformat. Dalam hal ini, bidang di setiap log dipisahkan oleh spasi.

    • STORED AS TEXTFILE LOCATION: Memberi tahu Hive bahwa data disimpan dalam direktori contoh/data, dan data disimpan sebagai teks.

    • SELECT: Memilih hitungan semua baris di mana kolom t4 berisi nilai [ERROR]. Pernyataan ini mengembalikan nilai dari 3, karena tiga baris berisi nilai ini.

    • INPUT__FILE__NAME LIKE '%.log': Memberi tahu Hive untuk hanya mengembalikan data dari file yang berakhiran .log. Klausa ini membatasi pencarian untuk file sample.log yang berisi data.

  6. Dari toolbar file kueri (yang memiliki tampilan yang mirip dengan toolbar kueri ad-hoc), pilih kluster HDInsight yang ingin Anda gunakan untuk kueri ini. Kemudian ubah Interaktif ke Batch (jika perlu) dan pilih Kirim untuk menjalankan pernyataan sebagai Hive job.

    Ringkasan Hive Job muncul dan menampilkan informasi tentang pekerjaan yang sedang berjalan. Gunakan tautan Refresh untuk merefresh informasi pekerjaan, hingga Status Pekerjaan berubah menjadi Selesai.

    Completed Hive job summary, Hive application, Visual Studio.

  7. Pilih Output Pekerjaan untuk melihat keluaran dari tugas ini. Ini menampilkan [ERROR] 3, yang merupakan nilai yang dikembalikan oleh kueri ini.

Contoh tambahan

Contoh berikut bergantung pada tabel log4jLogs yang dibuat dalam prosedur sebelumnya, Buat aplikasi Hive.

  1. Dari Server Explorer, klik kanan kluster Anda dan pilih Tulis Kueri Hive.

  2. Masukkan kueri Hive berikut:

    set hive.execution.engine=tez;
    CREATE TABLE IF NOT EXISTS errorLogs (t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string) STORED AS ORC;
    INSERT OVERWRITE TABLE errorLogs SELECT t1, t2, t3, t4, t5, t6, t7 FROM log4jLogs WHERE t4 = '[ERROR]' AND INPUT__FILE__NAME LIKE '%.log';
    

    Pernyataan ini melakukan tindakan berikut:

    • CREATE TABLE IF NOT EXISTS: Membuat tabel jika belum ada. Karena EXTERNAL kata kunci tidak digunakan, pernyataan ini membuat tabel internal. Tabel internal disimpan di gudang data Hive dan dikelola oleh Hive.

      Catatan

      Tidak EXTERNAL seperti tabel, menjatuhkan tabel internal juga menghapus data yang mendasarinya.

    • STORED AS ORC: Menyimpan data dalam format kolom baris (ORC) yang dioptimalkan. ORC adalah format yang sangat dioptimalkan dan efisien untuk menyimpan data Apache Hive.

    • INSERT OVERWRITE ... SELECT: Memilih baris dari tabel log4jLogs yang berisi [ERROR], lalu menyisipkan data ke dalam tabel errorLogs.

  3. Ubah Interaktif ke Batch jika perlu, lalu pilih Kirim.

  4. Untuk memverifikasi bahwa pekerjaan yang dibuat tabel, buka Server Explorer dan perluas Azure>HDInsight. Perluas kluster HDInsight Anda, lalu perluas Database Hive>default. Tabel errorLogs dan tabel log4jLogs dicantumkan.

Langkah berikutnya

Seperti yang Anda lihat, alat HDInsight untuk Visual Studio menyediakan cara mudah untuk bekerja dengan kueri Hive di HDInsight.