EMR Serverless Spark, SQL kodu kullanarak görevleri düzenlemenize ve çalıştırmanıza olanak tanır. Bu konu, SQL görevlerini oluşturma, çalıştırma ve yönetme adımlarını açıklar.
Ön koşullar
Bir Alibaba Cloud hesabınızın olması gerekir. Daha fazla bilgi için bkz. Alibaba Cloud hesabı için kaydolun.
Gerekli rollerin atanmış olması gerekir. Daha fazla bilgi için bkz. Alibaba Cloud hesabına rol atama.
Bir çalışma alanı ve bir oturum örneğinizin olması gerekir. Daha fazla bilgi için bkz. Çalışma alanı oluşturma ve SQL oturumlarını yönetme.
Adım 1: Geliştirme görevi oluşturma ve yayınlama
Bir görevin görev orkestrasyonunda kullanılabilmesi için öncelikle yayınlanması gerekir.
-
Veri Geliştirme sayfasına gidin.
EMR konsolu üzerinden oturum açın.
Sol gezinme bölmesinde EMR Serverless > Spark seçeneklerini seçin.
Spark sayfasında hedef çalışma alanını tıklayın.
EMR Serverless Spark sayfasında sol gezinme bölmesinden Development sekmesini seçin.
-
users_task adlı bir görev oluşturun.
Development sekmesinde
simgesini tıklayın.Create iletişim kutusunda users_task gibi bir ad girin, Tür alanını varsayılan SparkSQL olarak bırakın ve ardından OK düğmesini tıklayın.
-
Aşağıdaki kodu yeni Spark SQL sekmesine (users_task) kopyalayın.
CREATE TABLE IF NOT EXISTS students ( name VARCHAR(64), address VARCHAR(64) ) USING PARQUET PARTITIONED BY (data_date STRING) OPTIONS ( 'path'='oss://<bucketname>/path/' ); INSERT OVERWRITE TABLE students PARTITION (data_date = '${ds}') VALUES ('Ashua Hill', '456 Erica Ct, Cupertino'), ('Brian Reed', '723 Kern Ave, Palo Alto');Aşağıdaki temel tarih değişkenleri desteklenir. Varsayılan değer önceki gündür.
Değişken
Veri türü
Açıklama
{data_date}
str
Tarih bilgisini gösteren bir değişkendir. Biçimi
YYYY-MM-DDşeklindedir.Örneğin, 2023-09-18.
{ds}
str
{dt}
str
{data_date_nodash}
str
Tarih bilgisini gösteren bir değişkendir. Biçimi
YYYYMMDDşeklindedir.Örneğin, 20230918.
{ds_nodash}
str
{dt_nodash}
str
{ts}
str
Zaman damgasını gösteren bir değişkendir. Biçimi
YYYY-MM-DDTHH:MM:SSşeklindedir.Örneğin, 2023-09-18T16:07:43.
{ts_nodash}
str
Zaman damgasını gösteren bir değişkendir. Biçimi
YYYYMMDDHHMMSSşeklindedir.Örneğin, 20230918160743.
-
Veritabanı açılır listesinden bir veritabanı ve oturum açılır listesinden çalışan bir oturum örneği seçin.
Ayrıca açılır listeden Connect to SQL Session seçeneğini belirleyerek yeni bir oturum örneği de oluşturabilirsiniz. Oturum yönetimi hakkında daha fazla bilgi için bkz. SQL oturumlarını yönetme.
-
Görevi yürütmek için Run düğmesini tıklayın.
Execution Results sekmesi sonuçları görüntüler. Bir hata oluşursa ayrıntıları Execution Issues sekmesinde görebilirsiniz.
-
users_task görevini yayınlayın.
NotGörev için belirtilen parametreler, görevle birlikte yayınlanır ve görev üretim ortamında çalıştırıldığında kullanılır. SQL düzenleyicisinde yürütülen görevler ise oturum parametrelerini kullanır.
Yeni Spark SQL sekmesinde Publish düğmesini tıklayın.
İletişim kutusunda yayınlama bilgilerini girin ve OK düğmesini tıklayın.
-
users_count adlı bir görev oluşturun.
Development sekmesinde
simgesini tıklayın.Create iletişim kutusunda users_count gibi bir ad girin, Tür alanını varsayılan SparkSQL olarak bırakın ve OK düğmesini tıklayın.
-
Aşağıdaki kodu yeni Spark SQL görevi sekmesine (users_count) kopyalayın.
SELECT COUNT(1) FROM students; -
Veritabanı açılır listesinden bir veritabanı ve oturum açılır listesinden çalışan bir oturum örneği seçin.
Ayrıca açılır listeden Connect to SQL Session seçeneğini belirleyerek yeni bir oturum da oluşturabilirsiniz. Oturum yönetimi hakkında daha fazla bilgi için bkz. SQL oturumlarını yönetme.
-
Görevi yürütmek için Run düğmesini tıklayın.
Sonuçlar Execution Results sekmesinde görüntülenir. Bir hata oluşursa ayrıntıları Execution Issues sekmesinde görebilirsiniz.
-
users_count görevini yayınlayın.
NotGörev için belirtilen parametreler, görevle birlikte yayınlanır ve görev üretim ortamında çalıştırıldığında kullanılır. SQL düzenleyicisinde yürütülen görevler ise oturum parametrelerini kullanır.
Yeni Spark SQL görevi sekmesinde Publish düğmesini tıklayabilirsiniz.
İletişim kutusunda yayınlama bilgilerini girin ve OK düğmesini tıklayın.
Adım 2: İş akışı ve düğümlerini oluşturma
Sol gezinme bölmesinde Workflows sekmesini tıklayın.
Workflows sayfasında Create Workflow düğmesini tıklayın.
-
Create Workflow panelinde Name alanına spark_workflow_task gibi bir ad girin ve Next düğmesini tıklayın.
Other Settings bölümündeki parametreleri ihtiyacınıza göre yapılandırabilirsiniz. Parametreler hakkında daha fazla bilgi için bkz. İş akışlarını yönetme.
-
users_task düğümünü ekleyin.
Yeni düğüm tuvalinde Add Node düğmesini tıklayın.
Add Node panelinde Path açılır listesinden yayınlanmış users_task görevini seçin ve ardından Save düğmesini tıklayın.
-
users_count düğümünü ekleyin.
Add Node düğmesini tıklayın.
Add Node panelinde Path açılır listesinden yayınlanmış users_count görevini seçin, Upstream Nodes açılır listesinden users_task öğesini seçin ve ardından Save düğmesini tıklayın.
-
Yeni düğüm tuvalinde Publish Workflow düğmesini tıklayın.
Tuvalde artık users_task ve users_count olmak üzere iki SQL düğümü bulunur ve aralarındaki ok yürütme bağımlılığını gösterir.
Publish iletişim kutusunda yayınlama ayrıntılarını girin ve OK düğmesini tıklayın.
Adım 3: İş akışını çalıştırma
Workflows sayfasında yeni iş akışının Name alanına (örneğin spark_workflow_task) tıklayın.
-
Workflow Runs sayfasında Run düğmesini tıklayın.
NotBir zamanlama döngüsü yapılandırdıktan sonra Workflows sayfasındaki anahtarı kullanarak zamanlamayı da tetikleyebilirsiniz.
Run Workflow iletişim kutusunda OK düğmesini tıklayın.
Adım 4: Örnek durumunu görüntüleme
Workflows sayfasında hedef iş akışına (örneğin spark_workflow_task) tıklayın.
-
Workflow Runs sayfasında tüm iş akışı örneklerinin çalışma süresi, durumu ve diğer ayrıntılarını içeren listesini görüntüleyebilirsiniz.
Sayfanın üst kısmındaki sütun grafik, tarihe göre iş akışı çalıştırma durumlarının dağılımını gösterir. Aşağıdaki tabloda Workflow Run ID, Version, Run Mode, Number of Nodes, Scheduled Time, Start Time ve End Time gibi sütunlar yer alır.
Örnek grafiğini görüntülemek için Workflow Runs bölümünde bir Workflow Run ID değerini tıklayın veya üstteki Workflow Runs Diagram sekmesine tıklayın.
-
Bir düğüm örneğine tıklayın. Görüntülenen düğüm bilgisi kutusunda ihtiyacınıza göre işlem yapabilir veya bilgileri görüntüleyebilirsiniz.
İlgili işlemler ve ayrıntılar hakkında daha fazla bilgi için bkz. Düğüm örneklerini görüntüleme.
Düğüm bilgisi kutusu görevin Start Time, End Time, Status ve Runtime gibi çalışma ayrıntılarını gösterir. Ayrıca Rerun, Stop ve Set to Success gibi işlemler için düğmeler sağlar.
Örneğin, Spark görevi hakkında gerçek zamanlı bilgileri görüntülemek üzere Spark Jobs sayfasını açmak için Spark UI düğmesini tıklayın.
Spark Jobs sayfası tamamlanan işlerin listesini gösterir ve bu listede Job Id, Description, Submitted, Duration, Stages: Succeeded/Total ve Tasks: Succeeded/Total gibi sütunlar bulunur. Her bir işin yürütme durumunu ve süresini kontrol edebilirsiniz.
-
Ölçümleri, tanılama bilgilerini ve günlükleri görüntüleyebileceğiniz Job History sayfasını açmak için bir Job Run ID değerini tıklayın.
Overview sekmesindeki Basic Information bölümünde çalışma durumu, görev adı, görev çalıştırma kimliği, görev türü, veritabanı altyapısı sürümü ve Fusion hızlandırma durumu gibi bilgileri görüntüleyebilirsiniz.
Adım 5: İş akışı bakım ve işletimi
Workflows sayfasında bir iş akışının adına tıklayarak Workflow Runs sayfasını açabilirsiniz. Şu işlemleri yapabilirsiniz:
Workflow Information bölümünde parametreleri düzenleyebilirsiniz.
-
Workflow Runs bölümünde tüm iş akışlarını görüntüleyebilirsiniz. Örnek grafiğini açmak için bir Workflow Run ID değerini tıklayın.
İş akışı örnek grafiği sayfası, görev düğümlerinin bağımlılıklarını ve çalışma durumlarını gösterir. Örnekte users_task (SQL) üst düğüm, users_count (SQL) ise alt düğümdür. Aralarındaki bağlantı bağımlılığı belirtir. Her iki düğüm de başarılı bir çalışma durumu (yeşil onay işareti) gösterir.
Adım 6: Verileri görüntüleme
Sol gezinme bölmesinde Development sekmesini tıklayın.
-
Yeni bir SparkSQL geliştirme görevi oluşturun. Ardından tablo ayrıntılarını görüntülemek için aşağıdaki komutu girin ve çalıştırın.
SELECT * FROM students;Aşağıdaki bilgiler döndürülür.
Sonuçta name, address ve data_date olmak üzere üç sütun bulunur. İki kayıt vardır: Ashua Hill (adres: 456 Erica Ct, Cupertino, tarih: 2024-01-01) ve Brian Reed (adres: 723 Kern Ave, Palo Alto, tarih: 2024-01-01).
İlgili Başlıklar
Kaynak kuyruğu oluşturma hakkında daha fazla bilgi için bkz. Kaynak kuyruklarını yönetme.
SQL oturumu oluşturma hakkında daha fazla bilgi için bkz. SQL oturumlarını yönetme.