SQL Betiği bileşeni, özel SQL deyimleri yazmanıza ve bunları MaxCompute üzerinde çalıştırmanıza olanak tanır. Bu konuda bileşen yapılandırması ve kullanım senaryoları açıklanmaktadır.
Bileşen yapılandırması
Machine Learning Designer'da, SQL Betiği bileşeninin parametrelerini yapılandırma sekmesinde belirtebilirsiniz.
|
Parametre |
Açıklama |
|
Use script mode |
Betik modunda, düğümün çıkış bağlantı noktası olarak hizmet vermek üzere ${o1} adlı bir çıktı tablosu oluşturmanız gerekir. Daha fazla bilgi için bkz. SQL Betik Modu. |
|
Input source |
Üst akış giriş tablolarının adlarını görüntüler. |
|
Whether the system adds a Create Table statement |
|
|
SQL Script |
Mantığınızı uygulamak için özel bir SQL betiği yazabilirsiniz. SQL sözdizimi hakkında daha fazla bilgi için bkz. SQL Genel Bakış. Kod düzenleyicisi; akıllı anahtar sözcük önerileriyle kod tamamlama ve yerleşik sorgu şablonları gibi özellikler sunarak kod yazma sürecinizi hızlandırır. Daha fazla bilgi için bkz. Kod geliştirme verimliliğini artırma. |
SQL Betiği bileşeni sıfır ile dört arasında giriş ve bir çıkış destekler.
SQL Betiği bileşeni üst akış tablolarına bağlandığında giriş kaynaklarını otomatik olarak t1, t2, t3 ve t4 değişkenlerine eşler. Kaynak tablo adlarını belirtmeden bu tablolara doğrudan başvurmak için ${t1}, ${t2}, ${t3} veya ${t4} değişkenlerini kullanabilirsiniz.
SQL Betiği bileşeni tek bir çıkışı destekler. Çıkış veri tablosunu temsil etmek için SQL deyiminizde ${o1} değişkenini kullanabilirsiniz.
-
SQL deyimlerinizde çalışma alanı için yapılandırılan varsayılan geçici tablo yaşam döngüsünü uygulamak amacıyla ${lifecycle} parametresini kullanabilirsiniz. Varsayılan değer 28 gündür.
NotSQL deyiminizde bir veri tablosu oluşturuyorsanız geçici tablo için gerekli yaşam döngüsünü ayarlayın. Daha fazla bilgi için bkz. Çalışma alanında geçici tablolar için temizleme süresini ayarlama.
Parametre yapılandırma panelinde Whether the system adds a Create Table statement onay kutusunu seçerseniz betiğe diğer SQL deyimlerini dahil edebilirsiniz ancak son deyimin bir Select deyimi olması gerekir. PAI, sorgu sonuçlarını depolamak için otomatik olarak geçici bir tablo oluşturur.
Kullanım senaryoları
SQL Betiği bileşeni aşağıdaki kullanım senaryolarını destekler.
Senaryo 1: Tek bir üst akış tablosundaki verileri analiz etme
Whether the system adds a Create Table statement onay kutusunu seçin. PAI, çıktı olarak otomatik şekilde geçici bir tablo oluşturur ve bunu alt akış bileşenlerine iletir. Aşağıdaki kod, SQL betiği için bir örnektir:
select age,
(case sex when 'male' then 1 else 0 end) as sex,
(case cp when 'angina' then 0 when 'notang' then 1 else 2 end) as cp,
trestbps,
chol,
(case fbs when 'true' then 1 else 0 end) as fbs,
(case restecg when 'norm' then 0 when 'abn' then 1 else 2 end) as restecg,
thalach,
(case exang when 'true' then 1 else 0 end) as exang,
oldpeak,
(case slop when 'up' then 0 when 'flat' then 1 else 2 end) as slop,
ca,
(case thal when 'norm' then 0 when 'fix' then 1 else 2 end) as thal,
(case status when 'sick' then 1 else 0 end) as ifHealth
from ${t1};
Bileşen bölmesinde SQL Betiği öğesini arayın ve SQL Betiği bileşenini tuvale sürükleyin. Read Data Table-1 bileşeninin çıktısını SQL Script-1 bileşeninin girişine bağlayın.
Senaryo 2: Birden çok üst akış tablosundan gelen verileri birleştirme
Whether the system adds a Create Table statement onay kutusunun seçimini kaldırın. Çıktı olarak geçici bir tablo oluşturmak için ${o1} ve ${lifecycle} değişkenlerini kullanın. Aşağıdaki kod, SQL betiği için bir örnektir:
create table if not exists ${o1} lifecycle ${lifecycle}
as
with
a as (select * from ${t1}),
b as (select * from ${t2}),
c as (select * from ${t3})
select * from a
UNION all
select * from b
UNION all
select * from c;
Bileşen bölmesinde SQL Betiği öğesini arayın ve tuvale sürükleyin. Üç Read Data Table düğümünü SQL Script düğümüne bağlayın. Parametre ayarları panelinde giriş kaynaklarını şu şekilde eşleyin: t1 → Read Data Table-1, t2 → Read Data Table-2 ve t3 → Read Data Table-3.
Senaryo 3: Tablo adıyla veri okuma
Whether the system adds a Create Table statement onay kutusunun seçimini kaldırın. Çıktı olarak geçici bir tablo oluşturmak için ${o1} ve ${lifecycle} değişkenlerini kullanın. Aşağıdaki kod, SQL betiği için bir örnektir:
set odps.sql.mapper.split.size=128;
set odps.sql.executionengine.batch.rowcount=100;
drop table if exists test_a_5_1;
create table test_a_5_1
as
select * from pai_online_project.wumai_data;
drop table if exists test_a_5_2;
create table test_a_5_2
as
select * from pai_online_project.wumai_data;
create table if not exists ${o1}
LIFECYCLE ${lifecycle}
as
select a.pm2, a.pm10, a.so2, b.co, b.no2
from
test_a_5_1 a join test_a_5_2 b
on a.time = b.time
and a.hour = b.hour;
select * from ${o1};
SQL betiğinin başındaki set deyimleri yürütme ortamı değişkenlerini yapılandırır.
Senaryo 4: PAI komutu çalıştırma
Whether the system adds a Create Table statement onay kutusunun seçimini kaldırın. Çıktı olarak geçici bir tablo oluşturmak için ${o1} ve ${lifecycle} değişkenlerini kullanın. Aşağıdaki kod, SQL betiği için bir örnektir:
drop table if exists ${o1};
PAI -name type_transform_v1 -project algo_public
-Dlifecycle=${lifecycle} -DoutputTable=${o1}
-Dcols_to_double="time,hour,pm2,pm10,so2,co,no2"
-Ddefault_double_value="0.0" -Ddefault_int_value="0"
-DreserveOldFeat="false" -DinputTable="pai_online_project.wumai_data";