Video: Proses pengambilan sarang lebah kelulut bersebelahan koloni sarang penyegat.. 2024
Konsep tetingkap, diperkenalkan dalam SQL: 2003 standard, membolehkan pemrogram SQL untuk membuat bingkai dari data yang mana agregat dan fungsi tetingkap lain boleh beroperasi. HiveQL kini menyokong windowing mengikut standard SQL. Contohnya sangat berguna apabila menerangkan fungsi windowing dan agregat.
Kelewatan perjalanan datang dengan wilayah ketika terbang adalah perjalanan perjalanan pilihan anda. Maka tidak hairanlah, bahawa data penerbangan RITA yang dikumpulkan termasuk maklumat ini. & ldquo; Apa sebenarnya kelewatan penerbangan purata setiap hari & rdquo; ? Pertanyaan dalam senarai berikut menghasilkan kelewatan berlepas purata setiap hari pada tahun 2008.
(A) sarang (flightdata)> CREATE VIEW avgdepdelay AS> SELECT DayOfWeek, AVG (DepDelay) FROM FlightInfo2008 GROUP BY DayOfWeek; OK Masa diambil: 0. 121 saat (B) sarang (flightdata)> PILIH * DARI avgdepdelay; … OK 1 10. 269990244459473 2 8. 97689712068735 3 8. 289761053658728 4 9. 772897177836702 5 12. 158036387869656 6 8. 645680904903614 7 11. 568973392595312 Masa diambil: 18. 6 saat, diambil: 7 baris
TGIF, atau & ldquo; Alhamdulillah Hari Jumaat, & rdquo; tidak terpakai kepada semua orang. Tidak hairanlah hari Jumaat - Hari 5 di bawah keputusan di Langkah (B) - mempunyai bilangan penangguhan tertinggi.
Bagaimanapun, mengenai pertanyaan itu dalam Langkah (A): Bahasa Definisi Data Hive (DDL) juga termasuk pernyataan CREATE VIEW, yang boleh menjadi sangat berguna. Dalam Hive, pandangan membolehkan pertanyaan disimpan tetapi data tidak disimpan seperti dengan Cipta Jadual sebagai Pilih (CTAS) pernyataan.
Apabila pandangan dirujuk di HiveQL, Hive menjalankan pertanyaan dan kemudian menggunakan hasilnya, yang boleh menjadi sebahagian daripada pertanyaan yang lebih besar. Ini boleh menjadi sangat berguna untuk memudahkan pertanyaan kompleks dan memecahnya ke dalam komponen logik. Di samping itu, perhatikan klausa GROUP BY, yang mengumpulkan semua hari setiap minggu dan membolehkan fungsi agregat AVG menyediakan jawapan yang disatukan setiap hari.
Maklumat ini berguna, sudah tentu, tetapi bagaimana jika anda mahu melihat beberapa nombor individu setiap hari? Menyatukan data dengan GROUP BY, dan anda mempunyai jawapan yang anda cari, walaupun anda juga kehilangan maklumat. Menyelesaikan masalah kehilangan maklumat ini adalah di mana tingkap menjadi sangat berguna.
Berikut adalah soalan lain mengenai data penerbangan RITA 2008 yang Apache Hive boleh menjawab: & ldquo; Apakah penerbangan pertama antara Lapangan Terbang X dan Y & rdquo; ? Katakan bahawa sebagai tambahan kepada maklumat ini, anda ingin tahu mengenai penerbangan seterusnya, sekiranya anda bukan seorang & ldquo; orang pagi.& rdquo; Nah, ini adalah pekerjaan untuk tetingkap di HiveQL! Penyenaraian berikut memberikan anda pertanyaan yang menjawab soalan-soalan ini.
(A) sarang (flightdata)> PILIH f08. Bulan, f08. DayOfMonth, cr. keterangan, f08. Asal, f08. Dest, f08. FlightNum, f08. DepTime, MIN (f08. DepTime) OVER (PEMASANGAN OLEH f08. DayOfMonth ORDER BY f08. DepTime) FROM flightinfo2008 f08 JOIN Carriers cr ON f08. UniqueCarrier = cr. kod WHERE f08. Asal = 'JFK' DAN f08. Dest = 'ORD' DAN f08. Bulan = 1 DAN f08. DepTime! = 0; … OK 1 1 JetBlue Airways JFK ORD 903 641 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Inc. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Inc. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1815 1610 641 1 1 JetBlue Airways JFK ORD 917 1735 641 1 1 Comair Inc. JFK ORD 5469 1749 641 1 1 Comair Inc. JFK ORD 5492 2000 641 1 1 JetBlue Airways JFK ORD 919 2102 641 1 31 JetBlue Airways JFK ORD 919 48 48 1 31 JetBlue Airways JFK ORD 903 635 48 1 31 Comair Inc. JFK ORD 5447 650 48 1 31 American Airlines Inc. JFK ORD 1323 840 48 1 31 JetBlue Airways JFK ORD 907 921 48 1 31 JetBlue Airways JFK ORD 917 1859 48
Dalam Langkah (A), klausa GROUP BY digantikan dengan klausa OVER di mana anda menentukan PARTITION atau tetingkap di mana anda mahu fungsi agregat MIN beroperasi. Juga termasuk adalah fasal ORDER BY supaya anda dapat melihat penerbangan berikutnya selepas yang pertama.
Seperti yang anda dapat lihat dari penyenaraian, pada 31 Januari, JetBlue mempunyai penerbangan awal yang bagus pada 12: 48 a. m. -opt untuk yang lain, pada 6: 35 a. m. Isu awal-risikan diketepikan, perhatikan bahawa anda telah mengekalkan maklumat dalam output pertanyaan yang akan hilang jika anda memilih untuk menggunakan klausa GROUP BY lagi.
Keupayaan ini semata-mata membuat tingkap ciri yang kuat, dan ada lagi. Bersama pelan dalam pelepasan Hive 0. 11, komuniti menyediakan beberapa fungsi analisis yang boleh anda gunakan bersempena dengan windowing. Juga pada pelupusan anda adalah fungsi ini: RANK, ROW_NUMBER, DENSE_RANK, CUME_DIST, PERCENT_RANK, dan NTILE.
Akhirnya, jangan ketinggalan menggunakan JOIN: Ini merupakan contoh kehidupan nyata yang praktikal di dalam batin yang mana anda menyertai jadual PenerbanganInfo2008 dengan jadual Carriers untuk mendapatkan nama syarikat penerbangan - sebaliknya daripada kod cryptic yang terdapat dalam jadual FlightInfo2008.