EMR Serverless Spark menyediakan konektor sumber data MaxCompute bawaan berbasis Spark DataSource V2. Anda dapat menghubungkan ke MaxCompute dengan menambahkan konfigurasi yang diperlukan selama pengembangan. Topik ini menjelaskan cara membaca data dari dan menulis data ke MaxCompute menggunakan EMR Serverless Spark.
Informasi latar belakang
MaxCompute (sebelumnya dikenal sebagai ODPS) adalah solusi gudang data berskala eksabita yang cepat dan sepenuhnya dikelola. Solusi ini dirancang untuk menyimpan dan memproses data terstruktur secara batch serta menyediakan layanan analitik dan pemodelan skala besar. Untuk informasi selengkapnya tentang MaxCompute, lihat Apa itu MaxCompute?.
Prasyarat
-
Anda telah membuat workspace di EMR Serverless Spark.
-
Anda telah membuat project MaxCompute dan mengaktifkan Open Storage untuk project tersebut.
Contoh dalam topik ini menggunakan metode penagihan pay-as-you-go untuk Open Storage.
Batasan
-
Topik ini hanya berlaku untuk versi engine berikut:
-
esr-4.x: esr-4.6.0 dan yang lebih baru
-
esr-3.x: esr-3.5.0 dan yang lebih baru
-
esr-2.x: esr-2.9.0 dan yang lebih baru
-
-
Operasi dalam topik ini mengharuskan Anda mengaktifkan fitur Open Storage untuk MaxCompute. Untuk informasi selengkapnya, lihat Open Storage.
-
Titik akhir (endpoint) MaxCompute yang Anda gunakan harus mendukung Storage API. Jika tidak, alihkan ke endpoint yang didukung. Untuk informasi selengkapnya, lihat Sumber daya transmisi data.
Catatan
Saat Anda menggunakan Open Storage (pay-as-you-go), transfer data yang melebihi 1 TB akan ditagih berdasarkan ukuran data logis.
Prosedur
Langkah 1: Buat session MaxCompute
Anda dapat membuat session SQL atau session Notebook untuk menghubungkan ke MaxCompute. Untuk informasi selengkapnya tentang session, lihat Manajemen session.
SQL session
-
Buka halaman Sessions.
-
Masuk ke Konsol EMR.
-
Pada panel navigasi kiri, pilih EMR Serverless > Spark.
-
Pada halaman Spark, klik nama workspace yang dituju.
-
Pada halaman EMR Serverless Spark, klik Sessions pada panel navigasi kiri.
-
-
Pada tab SQL Session, klik Create SQL Session.
-
Pada halaman Create SQL Session, konfigurasikan parameter berikut lalu klik Create.
Parameter
Deskripsi
Name
Masukkan nama kustom untuk session SQL. Contohnya,
mc_sql_compute.Spark Configuration
Masukkan parameter konfigurasi Spark untuk menghubungkan ke MaxCompute.
PentingJika Anda perlu mengakses project MaxCompute yang menggunakan model tiga level, Anda juga harus mengatur parameter
spark.sql.catalog.odps.enableNamespaceSchemamenjaditruedalam konfigurasi Spark. Untuk informasi selengkapnya tentang parameter, lihat Spark Connector. Untuk informasi selengkapnya tentang skema, lihat Operasi skema.spark.sql.catalog.odps org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog spark.sql.extensions org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions spark.sql.sources.partitionOverwriteMode dynamic spark.hadoop.odps.tunnel.quota.name pay-as-you-go spark.hadoop.odps.project.name <project_name> spark.hadoop.odps.end.point https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api spark.hadoop.odps.access.id <accessId> spark.hadoop.odps.access.key <accessKey>Ganti placeholder berikut dengan nilai aktual Anda:
-
<project_name>: nama project MaxCompute Anda. -
https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api: titik akhir layanan MaxCompute Anda. Untuk informasi selengkapnya, lihat Endpoints. -
<accessId>: ID AccessKey Akun Alibaba Cloud yang digunakan untuk mengakses MaxCompute. -
<accessKey>: Secret AccessKey Akun Alibaba Cloud yang digunakan untuk mengakses MaxCompute.
-
Notebook session
Buka halaman Notebook Sessions.
Masuk ke Konsol EMR.
Pada panel navigasi kiri, pilih .
Pada halaman Spark, klik nama workspace yang dituju.
Pada halaman EMR Serverless Spark, pilih Sessions pada panel navigasi kiri.
Klik tab Notebook Session.
-
Klik Create Notebook Session.
-
Pada halaman Create Notebook Session, konfigurasikan parameter berikut lalu klik Create.
Parameter
Deskripsi
Name
Masukkan nama kustom untuk session notebook. Contohnya,
mc_notebook_compute.Spark Configuration
Masukkan parameter konfigurasi Spark untuk menghubungkan ke MaxCompute.
PentingJika Anda perlu mengakses project MaxCompute yang menggunakan model tiga level, Anda juga harus mengatur parameter
spark.sql.catalog.odps.enableNamespaceSchemamenjaditruedalam konfigurasi Spark. Untuk informasi selengkapnya tentang parameter, lihat Spark Connector. Untuk informasi selengkapnya tentang skema, lihat Operasi skema.spark.sql.catalog.odps org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog spark.sql.extensions org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions spark.sql.sources.partitionOverwriteMode dynamic spark.hadoop.odps.tunnel.quota.name pay-as-you-go spark.hadoop.odps.project.name <project_name> spark.hadoop.odps.end.point https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api spark.hadoop.odps.access.id <accessId> spark.hadoop.odps.access.key <accessKey>Ganti placeholder berikut dengan nilai aktual Anda:
-
<project_name>: nama project MaxCompute Anda. -
https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api: titik akhir layanan MaxCompute Anda. Untuk informasi selengkapnya, lihat Endpoints. -
<accessId>: ID AccessKey Akun Alibaba Cloud yang digunakan untuk mengakses MaxCompute. -
<accessKey>: Secret AccessKey Akun Alibaba Cloud yang digunakan untuk mengakses MaxCompute.
-
Langkah 2: Kueri dan tulis data MaxCompute
Spark SQL
-
Pada panel navigasi kiri halaman EMR Serverless Spark, klik Development.
-
Pada tab Development, klik ikon
. -
Buat job Spark SQL.
-
Pada kotak dialog yang muncul, masukkan nama seperti
mc_load_task, pilih SparkSQL sebagai tipe, lalu klik OK. -
Salin kode berikut ke tab Spark SQL baru (
mc_load_task).CREATE TABLE odps.default.mc_table (name STRING, num BIGINT); INSERT INTO odps.default.mc_table (name, num) VALUES ('Alice', 100),('Bob', 200); SELECT * FROM odps.default.mc_table; -
Pilih database dari daftar drop-down Database. Lalu, dari daftar drop-down Compute, pilih session SQL yang telah Anda buat di Langkah 1: Buat session MaxCompute (
mc_sql_compute). -
Klik Run untuk menjalankan job Spark SQL.
Setelah kueri berhasil dieksekusi, hasil kueri akan ditampilkan pada tab Execution Results.
Result #3 menampilkan tabel hasil dengan dua kolom, name dan num. Tabel tersebut menunjukkan bahwa nilai untuk 'Alice' adalah 100 dan nilai untuk 'Bob' adalah 200.
-
-
Lihat tabel yang dibuat di konsol MaxCompute.
-
Masuk ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
-
Pada halaman Projects, temukan project yang telah Anda buat lalu klik Manage pada kolom Actions.
-
Klik tab Tables.
Anda dapat melihat tabel baru bernama
mc_tabledi konsol MaxCompute.
-
Notebook
-
Pada panel navigasi kiri halaman EMR Serverless Spark, klik Development.
-
Pada tab Development, klik ikon
. -
Buat notebook.
-
Pada kotak dialog yang muncul, masukkan nama seperti
mc_load_task. Untuk tipe, pilih Interactive Development > Notebook, lalu klik OK. -
Dari daftar drop-down session, pilih session notebook yang sedang berjalan yang telah Anda buat di Langkah 1: Buat session MaxCompute (
mc_notebook_compute). -
Tulis dan jalankan kode.
-
Pada sel Python, masukkan perintah berikut untuk membuat tabel.
spark.sql(""" CREATE TABLE odps.default.mc_table (name STRING, num BIGINT); """) -
Pada sel Python baru, masukkan perintah berikut untuk memasukkan data.
spark.sql("INSERT INTO odps.default.mc_table (name, num) VALUES ('Alice', 100),('Bob', 200);") -
Pada sel Python baru, masukkan perintah berikut untuk mengkueri data.
spark.sql("SELECT * FROM odps.default.mc_table;").show()Setelah kueri berhasil dieksekusi, hasil kueri akan ditampilkan di Execution Results.
+-----+---+ | name|num| +-----+---+ |Alice|100| | Bob|200| +-----+---+
-
-
-
Lihat tabel yang dibuat di konsol MaxCompute.
-
Masuk ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
-
Pada halaman Projects, temukan project yang telah Anda buat lalu klik Manage pada kolom Actions.
-
Klik tab Tables.
Anda dapat melihat tabel baru bernama
mc_tabledi konsol MaxCompute.
-
FAQ
Topik terkait
Topik ini menggunakan contoh Spark SQL dan notebook. Untuk mempelajari metode lain membaca dari dan menulis ke MaxCompute, lihat Kembangkan task batch atau streaming.