Bu konu, DataWorks'teki bir PyODPS düğümünde parametrelerin nasıl aktarılacağını açıklar.
Önkoşullar
Aşağıdaki ön koşulların karşılanması gerekir:
MaxCompute etkinleştirilmiştir.
DataWorks etkinleştirilmiştir.
DataWorks'te bir iş akışı oluşturulmuştur. Daha fazla bilgi için bkz. İş akışı oluşturma.
Yordam
Bu örnekte temel modda bir DataWorks çalışma alanı kullanılmaktadır. Çalışma alanını oluştururken Participate in Public Preview of Data Studio seçeneğini işaretlemeyin. Bu örnek, genel önizlemedeki çalışma alanları için geçerli değildir.
-
Test verilerini hazırlayın.
-
Bir tablo oluşturun ve veri yükleyin. Daha fazla bilgi için bkz. Tablo oluşturma ve veri yükleme.
Aşağıda tablo şemaları ve kaynak veriler gösterilmektedir.
-
Bölümlenmiş tablo user_detail için tablo oluşturma deyimi aşağıdaki gibidir.
CREATE TABLE IF NOT EXISTS user_detail ( userid BIGINT COMMENT 'User ID', job STRING COMMENT 'Job type', education STRING COMMENT 'Education' ) COMMENT 'User information table' PARTITIONED BY (dt STRING COMMENT 'Date',region STRING COMMENT 'Region'); -
Kaynak tablo user_detail_ods için oluşturma deyimi aşağıdaki gibidir.
CREATE TABLE IF NOT EXISTS user_detail_ods ( userid BIGINT COMMENT 'User ID', job STRING COMMENT 'Job type', education STRING COMMENT 'Education', dt STRING COMMENT 'Date', region STRING COMMENT 'Region' ); -
Test verilerini user_detail.txt dosyasına kaydedin. Bu dosyayı user_detail_ods tablosuna yükleyin.
0001,Internet,Bachelor,20190715,beijing 0002,Education,Associate Degree,20190716,beijing 0003,Finance,Master,20190715,shandong 0004,Internet,Master,20190715,beijing
-
-
Kaynak veri tablosundaki
user_detail_odsverileri bölümlenmişuser_detailtablosuna yazın.DataWorks konsolu üzerinde oturum açın.
Sol gezinme bölmesinde Workspace öğesini tıklayın.
Hedef çalışma alanını bulun ve Actions sütununda seçeneklerini tıklayın.
İş akışına sağ tıklayın ve seçeneklerini seçin.
Bir düğüm adı girin ve OK öğesini tıklayın.
-
ODPS SQL düğümüne aşağıdaki kodu girin.
INSERT OVERWRITE TABLE user_detail PARTITION (dt, region) SELECT userid, job, education, dt, region FROM user_detail_ods; Verileri yazmak için Run öğesini tıklayın.
-
-
PyODPS kullanarak parametreleri aktarın.
DataWorks konsolu üzerinde oturum açın.
Sol gezinme bölmesinde Workspace öğesini tıklayın.
Hedef çalışma alanını bulun ve Actions sütununda seçeneklerini tıklayın.
Data Development sayfasında oluşturduğunuz iş akışına sağ tıklayın ve seçeneklerini seçin.
Bir düğüm adı girin ve OK öğesini tıklayın.
-
PyODPS 2 düğümüne parametreleri aktarmak için aşağıdaki kodu girin.
import sys reload(sys) print('dt=' + args['dt']) # Change the default system encoding. sys.setdefaultencoding('utf8') # Get the table. t = o.get_table('user_detail') # Receive the passed partition parameter. with t.open_reader(partition='dt=' + args['dt'] + ',region=beijing') as reader1: count = reader1.count print("Querying data from the partitioned table:") for record in reader1: print record[0],record[1],record[2] -
Run with Parameters öğesini tıklayın.
import sys reload(sys) print('dt=' + args['dt']) # Change the default system encoding. sys.setdefaultencoding('utf8') # Get the table. t = o.get_table('user_detail') # Receive the passed partition parameter. with t.open_reader(partition='dt=' + args['dt'] + ',region=beijing') as reader1: count = reader1.count print("Querying data from the partitioned table:") for record in reader1: print record[0],record[1],record[2] -
Parameters iletişim kutusunda parametreleri yapılandırın ve Run öğesini tıklayın.
Aşağıdaki parametreleri yapılandırın:
Resource Group Name: Shared Resource Group seçeneğini belirleyin.
dt: dt=20190715 olarak ayarlayın.
-
Runtime Log bölümünde çalıştırma sonuçlarını görüntüleyin.
Executing user script with PyODPS 0.8.0 dt=20190715 Querying data from the partitioned table: 4 Internet Master 1 Internet Bachelor xxx xxx xxx xxx INFO ===================================================================