Topik ini menjelaskan cara melakukan kueri terhadap partisi level-1 menggunakan PyODPS.
Prasyarat
Lakukan langkah-langkah berikut terlebih dahulu:
-
Telah mengaktifkan MaxCompute.
-
Telah mengaktifkan DataWorks.
-
Telah membuat alur kerja di DataWorks. Untuk informasi selengkapnya, lihat Create a workflow.
Prosedur
Contoh ini menggunakan basic mode DataWorks. Saat Anda membuat ruang kerja, opsi Participate in Public Preview of DataStudio tidak dipilih secara default. Contoh ini tidak berlaku untuk ruang kerja dalam pratinjau publik.
-
Siapkan data uji.
-
Buat tabel dan unggah data. Untuk instruksi lengkapnya, lihat Create a table and upload data.
Struktur tabel dan informasi data sumber adalah sebagai berikut.
-
Pernyataan pembuatan tabel partisi user_detail adalah sebagai berikut.
CREATE TABLE IF NOT EXISTS user_detail ( userid BIGINT COMMENT '用户id', job STRING COMMENT '工作类型', education STRING COMMENT '教育程度' ) COMMENT '用户信息表' PARTITIONED BY (dt STRING COMMENT '日期',region STRING COMMENT '地区'); -
Pernyataan pembuatan tabel data sumber user_detail_ods adalah sebagai berikut.
CREATE TABLE IF NOT EXISTS user_detail_ods ( userid BIGINT COMMENT '用户id', job STRING COMMENT '工作类型', education STRING COMMENT '教育程度', dt STRING COMMENT '日期', region STRING COMMENT '地区' ); -
Data uji disimpan dalam file user_detail.txt. Unggah file ini ke tabel user_detail_ods.
0001,互联网,本科,20190715,beijing 0002,教育,大专,20190716,beijing 0003,金融,硕士,20190715,shandong 0004,互联网,硕士,20190715,beijing
-
-
Tuliskan data dari tabel sumber
user_detail_odske tabel partisiuser_detail.-
Login ke Konsol DataWorks.
-
Pada panel navigasi kiri, klik Workspace.
-
Konfirmasi ruang kerja target, lalu pilih pada kolom Actions.
-
Klik kanan alur kerja, lalu pilih .
-
Masukkan nama node, lalu klik OK.
-
Masukkan kode berikut ke dalam node ODPS SQL.
INSERT OVERWRITE TABLE user_detail PARTITION (dt, region) SELECT userid, job, education, dt, region FROM user_detail_ods; -
Klik Run untuk menyelesaikan penulisan data.
-
-
Lakukan kueri terhadap partisi level-1 menggunakan PyODPS.
-
Login ke Konsol DataWorks.
-
Pada panel navigasi kiri, klik Workspace.
-
Konfirmasi ruang kerja target, lalu pilih pada kolom Actions.
-
Pada halaman Data Development, klik kanan alur kerja yang telah dibuat, lalu pilih .
-
Masukkan nama node, lalu klik OK.
Masukkan kode berikut untuk melakukan kueri terhadap partisi level-1 dengan tiga cara: asinkron, sinkron, dan menggunakan DataFrame.
import sys reload(sys) # Set the default system encoding to utf8. sys.setdefaultencoding('utf8') # Read the level-1 partition asynchronously. instance = o.run_sql('select * from user_detail WHERE dt=\'20190715\'') instance.wait_for_success() for record in instance.open_reader(): print record["userid"],record["job"],record["education"] # Read the level-1 partition synchronously. with o.execute_sql('select * from user_detail WHERE dt=\'20190715\'').open_reader() as reader4: print reader4.raw for record in reader4: print record["userid"],record["job"],record["education"] # Use a PyODPS DataFrame to read the level-1 partition. pt_df = DataFrame(o.get_table('user_detail').get_partition('dt=20190715')) print pt_df.head(10)Klik Run.
Lihat hasilnya di Runtime Log.
4 Internet master 1 Internet bachelor 3 finance master "userid","job","education","dt","region" 4,"Internet","master","20190715","beijing" 1,"Internet","bachelor","20190715","beijing" 3,"finance","master","20190715","shandong" 4 Internet master 1 Internet bachelor 3 finance master Try to fetch data from tunnel userid job education 0 4 Internet master 1 1 Internet bachelor 2 3 finance master
-