Buat node Serverless Spark SQL untuk memproses data terstruktur menggunakan mesin kueri SQL terdistribusi berbasis EMR Serverless Spark compute resource. Pendekatan ini meningkatkan efisiensi eksekusi pekerjaan.
Catatan penggunaan
-
Batasan sumber daya komputasi: Hanya bound EMR Serverless Spark compute resources yang didukung. Pastikan kelompok sumber daya dan sumber daya komputasi dapat berkomunikasi melalui jaringan.
-
Batasan kelompok sumber daya: Tugas ini hanya dapat dijalankan dalam Serverless resource group.
-
(Opsional, untuk pengguna RAM) Pengguna Resource Access Management (RAM) yang mengembangkan tugas harus ditambahkan ke ruang kerja dan diberi peran Development atau Workspace Administrator (peran ini mencakup izin yang luas dan harus diberikan dengan hati-hati). Untuk informasi selengkapnya, lihat Tambahkan anggota ruang kerja.
Jika Anda menggunakan akun root, lewati langkah ini.
Buat node
Untuk petunjuknya, lihat Buat node.
Kembangkan node
Kembangkan kode tugas Anda di editor SQL. Sintaks mendukung catalog.database.tablename. Jika Anda menghilangkan catalog, Data Catalog default kluster akan digunakan. Jika Anda menghilangkan catalog.database, database default dalam Data Catalog default kluster akan digunakan.
Untuk informasi selengkapnya tentang Data Catalog, lihat Kelola Data Catalog di EMR Serverless Spark.
-- Ganti <catalog.database.tablename> dengan identifier aktual Anda.
SELECT * FROM <catalog.database.tablename>
Definisikan variabel dalam kode Anda dengan format ${variable_name}. Kemudian, tetapkan nilai variabel tersebut di bagian Scheduling Parameters pada panel Scheduling Settings. Hal ini memungkinkan pengiriman parameter secara dinamis dalam skenario terjadwal. Untuk informasi selengkapnya tentang parameter penjadwalan, lihat Sumber dan ekspresi parameter penjadwalan. Kode berikut memberikan contohnya.
SHOW TABLES;
-- Gunakan ${var} untuk mendefinisikan variabel bernama var. Jika Anda menetapkan nilai ${yyyymmdd} ke variabel ini, Anda dapat menggunakan tugas terjadwal untuk membuat tabel dengan tanggal bisnis sebagai sufiks.
CREATE TABLE IF NOT EXISTS userinfo_new_${var} (
ip STRING COMMENT'IP address',
uid STRING COMMENT'User ID'
)PARTITIONED BY(
dt STRING
); -- Ini dapat digunakan bersama parameter penjadwalan.
Pernyataan SQL tidak boleh melebihi 130 KB.
Debug node
-
Pada bagian Run Configuration, pilih Compute Resource dan Resource Group.
Parameter
Deskripsi
Compute resource
Pilih EMR Serverless Spark compute resource yang telah diikat. Jika tidak ada sumber daya komputasi yang tersedia, Anda dapat memilih Create Compute Resource dari daftar drop-down.
Resource group
Pilih kelompok sumber daya yang diikat ke ruang kerja.
Script parameter
Jika Anda mendefinisikan variabel dalam format
${parameter_name}saat mengonfigurasi konten node, Anda harus menentukan Script Parameters dan Parameter name di bagian Parameter Value. Saat waktu proses, variabel tersebut akan diganti secara dinamis dengan nilai aktualnya. Untuk informasi selengkapnya, lihat Sumber dan ekspresi parameter penjadwalan.Serverless Spark node parameters
Parameter waktu proses untuk aplikasi Spark. Jenis berikut didukung:
-
Parameter waktu proses kustom yang disediakan oleh DataWorks. Untuk informasi selengkapnya, lihat Lampiran: Parameter DataWorks.
-
Properti Spark asli. Untuk informasi selengkapnya, lihat Open source Spark properties. Anda dapat langsung memuat Spark configuration template dari EMR Serverless Spark alih-alih memasukkan parameter secara manual. Hal ini menyederhanakan proses konfigurasi dan memastikan konsistensi.
-
-
Di bilah alat di bagian atas editor node, klik Run untuk menjalankan tugas SQL.
PentingSebelum menerbitkan, Anda harus menyinkronkan ServerlessSpark node parameters dari Run Configuration ke ServerlessSpark node parameters di Scheduling Settings.
Metode eksekusi SQL
DataWorks menyediakan dua metode untuk menjalankan SQL: eksekusi dalam node dan eksekusi di panel alur kerja. Kedua metode ini menggunakan konteks eksekusi yang berbeda, yang dapat menghasilkan hasil berbeda.
-
In-node execution: Pilih semua pernyataan SQL di editor SQL dan klik Run. Hanya pernyataan SQL yang dipilih yang dieksekusi. Metode ini menggunakan sumber daya komputasi dan parameter yang dikonfigurasi untuk node tersebut dan tidak memicu dependensi pada node hulu atau hilir.
-
Workflow pane execution: Klik kanan node saat ini di panel alur kerja dan pilih untuk menjalankan node tersebut beserta node hilirnya. Node saat ini dan semua node hilirnya dijalankan secara berurutan berdasarkan dependensi penjadwalan. Metode ini menggunakan sumber daya komputasi dan parameter dari konfigurasi penjadwalan, yang mungkin berbeda dari lingkungan yang digunakan untuk eksekusi dalam node.
Ketidaksesuaian sering kali muncul karena perbedaan nilai parameter penjadwalan, konfigurasi sumber daya komputasi yang tidak konsisten, atau output dari node hulu dan hilir yang memengaruhi konteks eksekusi node saat ini. Untuk pemecahan masalah, pastikan parameter penjadwalan dan konfigurasi sumber daya komputasi identik untuk kedua metode tersebut.
Langkah berikutnya
-
Konfigurasikan penjadwalan node: Jika Anda perlu menjalankan node secara berkala, konfigurasikan Scheduling Policy-nya di panel Scheduling Settings di sebelah kanan.
-
Terbitkan node: Untuk menjalankan tugas di lingkungan produksi, klik ikon
untuk menerbitkan node. Node hanya akan dijalankan sesuai jadwal setelah diterbitkan ke lingkungan produksi. -
Task O&M: Setelah tugas diterbitkan, Anda dapat memantau status eksekusi periodiknya di Operation Center. Untuk informasi selengkapnya, lihat Memulai Operation Center.
Lampiran: Parameter DataWorks
Advanced parameter | Deskripsi |
FLOW_SKIP_SQL_ANALYZE | Mode eksekusi pernyataan SQL. Nilai yang valid:
Catatan Parameter ini hanya didukung untuk pengujian di lingkungan pengembangan data. |
DATAWORKS_SESSION_DISABLE | Metode pengiriman tugas. Selama pengembangan data, tugas dikirim ke SQL Compute untuk dieksekusi secara default. Anda dapat menggunakan parameter ini untuk menentukan apakah tugas dieksekusi melalui SQL Compute atau dikirim ke antrian untuk dieksekusi.
|
SERVERLESS_RELEASE_VERSION | Versi mesin Spark. Secara default, Default Engine Version yang dikonfigurasi di pengaturan kluster di bawah Compute Resource di Management Center akan digunakan. Untuk menetapkan versi mesin yang berbeda untuk tugas tertentu, konfigurasikan parameter ini. Catatan Parameter |
SERVERLESS_QUEUE_NAME | Antrian sumber daya tempat tugas dikirim. Ketika tugas dikonfigurasi untuk dikirim ke antrian untuk dieksekusi, Default Resource Queue yang dikonfigurasi di pengaturan kluster di bawah Clusters di Management Center akan digunakan secara default. Jika Anda memiliki persyaratan isolasi dan manajemen sumber daya, Anda dapat menambahkan antrian. Untuk informasi selengkapnya, lihat Kelola antrian sumber daya. Metode konfigurasi:
Catatan
|
SERVERLESS_SQL_COMPUTE | SQL Compute (SQL session) yang digunakan. Secara default, Default SQL Compute yang dikonfigurasi di pengaturan kluster di bawah Compute Resource di Management Center akan digunakan. Untuk menetapkan sesi SQL yang berbeda untuk tugas tertentu, konfigurasikan parameter ini. Untuk informasi tentang cara membuat dan mengelola sesi SQL, lihat Kelola sesi SQL Compute. |
Others | Parameter Spark Configuration kustom. Tambahkan parameter properti khusus Spark. Format konfigurasi: Catatan DataWorks memungkinkan Anda mengonfigurasi parameter Spark global di tingkat ruang kerja untuk setiap modul DataWorks. Anda dapat menentukan apakah prioritas parameter Spark global lebih tinggi daripada parameter Spark yang dikonfigurasi dalam modul tertentu. Untuk informasi selengkapnya tentang konfigurasi parameter Spark global, lihat Konfigurasikan parameter Spark global. |