Rumah > Java > javaTutorial > Bagaimana untuk Melaksanakan Kemas Kini Data Tambahan dengan Cekap dalam Hive?

Bagaimana untuk Melaksanakan Kemas Kini Data Tambahan dengan Cekap dalam Hive?

Barbara Streisand
Lepaskan: 2024-11-29 19:44:11
asal
441 orang telah melayarinya

How to Efficiently Perform Incremental Data Updates in Hive?

Kemas Kini Data Tambahan yang Cekap dalam Hive

Hive menyediakan pelbagai pendekatan untuk mengemas kini data secara berperingkat dalam jadual utama. Mari kita terokai kaedah yang paling berkesan.

Penyertaan Luar Penuh

Jika operasi gabungan dengan mod ACID tidak tersedia, anda boleh menggunakan gabungan luar penuh untuk mencari entri yang akan dikemas kini:

insert overwrite target_data [partition() if applicable]
SELECT
  case when i.PK is not null then i.PK   else t.PK   end as PK,
  case when i.PK is not null then i.COL1 else t.COL1 end as COL1,
  ...
  case when i.PK is not null then i.COL_n else t.COL_n end as COL_n
FROM
    target_data t --restrict partitions if applicable
    FULL JOIN increment_data i on (t.PK=i.PK);
Salin selepas log masuk

Kesatuan Semua dengan Baris Number

Sebagai alternatif, anda boleh menggunakan UNION ALL dengan row_number() untuk mengelakkan penyertaan penuh:

INSERT INTO target_data (pk, col1, col2, ...)
SELECT pk, col1, col2, ...
FROM increment_data
WHERE pk NOT IN (SELECT pk FROM target_data)
UNION ALL
SELECT pk, col1, col2, ...
FROM target_data;
Salin selepas log masuk

Penyelesaian ini amat berkesan jika anda ingin mengemas kini semua lajur dengan data baharu.

Pengoptimuman Pembahagian

Untuk meningkatkan prestasi, anda boleh menyekat partition dalam jadual target_data yang akan ditimpa dengan menggunakan klausa WHERE partition_col IN (pilih partition_col berbeza daripada increment_data). Selain itu, menghantar senarai partition sebagai parameter dalam klausa WHERE boleh mempercepatkan lagi operasi.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kemas Kini Data Tambahan dengan Cekap dalam Hive?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan