全部产品
Search
文档中心

MaxCompute:Gunakan node PyODPS untuk membaca data dari partisi level-1 tabel yang ditentukan

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggunakan node PyODPS untuk membaca data dari partisi level-1 tabel yang ditentukan.

Prasyarat

Prosedur

Catatan

Contoh ini menggunakan mode dasar DataWorks. Saat membuat ruang kerja, secara default, Participate in Public Preview of Data Studio tidak diaktifkan, dan contoh ini tidak berlaku untuk ruang kerja yang berpartisipasi dalam pratinjau publik Data Studio.

  1. Persiapkan data uji.

    1. Buat tabel dan unggah data. Untuk informasi lebih lanjut, lihat Buat Tabel dan Unggah Data.

      Dalam contoh ini, gunakan pernyataan pembuatan tabel dan data sumber berikut:

      • Pernyataan berikut membuat tabel terpartisi user_detail:

        CREATE TABLE IF NOT EXISTS user_detail
        (
        userid    BIGINT COMMENT 'User ID',
        job       STRING COMMENT 'Tipe pekerjaan',
        education STRING COMMENT 'Tingkat pendidikan'
        ) COMMENT 'Tabel informasi pengguna'
        PARTITIONED BY (dt STRING COMMENT 'Tanggal',region STRING COMMENT 'Wilayah');
      • Pernyataan berikut membuat tabel data sumber user_detail_ods:

        CREATE TABLE IF NOT EXISTS user_detail_ods
        (
          userid    BIGINT COMMENT 'User ID',
          job       STRING COMMENT 'Tipe pekerjaan',
          education STRING COMMENT 'Tingkat pendidikan',
          dt STRING COMMENT 'Tanggal',
          region STRING COMMENT 'Wilayah'
        );
      • Simpan data uji sebagai file user_detail.txt. Unggah file ini ke tabel user_detail_ods:

        0001,Internet,Sarjana,20190715,beijing
        0002,Pendidikan,Diploma,20190716,beijing
        0003,Keuangan,Magister,20190715,shandong
        0004,Internet,Magister,20190715,beijing
    2. Tulis data dari tabel data sumber user_detail_ods ke tabel terpartisi user_detail.

      1. Masuk ke Konsol DataWorks.

      2. Di panel navigasi sebelah kiri, klik Workspace.

      3. Temukan ruang kerja target, pilih Shorcuts > Data Development di kolom Actions.

      4. Klik kanan alur bisnis dan pilih Create Node > ODPS SQL.

      5. Masukkan nama node dan klik Confirm.

      6. Masukkan kode berikut di node ODPS SQL:

        INSERT OVERWRITE TABLE user_detail PARTITION (dt, region) 
        SELECT userid, job, education, dt, region FROM user_detail_ods;
      7. Klik Run untuk menyelesaikan penulisan data.

  2. Gunakan node PyODPS untuk membaca data dari partisi level-1 tabel user_detail.

    1. Masuk ke Konsol DataWorks.

    2. Di panel navigasi sebelah kiri, klik Workspace.

    3. Temukan ruang kerja target, pilih Shorcuts > Data Development di kolom Actions.

    4. Di halaman Data Development, klik kanan alur bisnis yang telah dibuat dan pilih Create Node > PyODPS 2.

    5. Masukkan nama node dan klik Confirm.

    6. Di tab konfigurasi node PyODPS 2, masukkan kode berikut di editor kode:

      import sys
      reload(sys)
      # Atur UTF-8 sebagai format pengkodean default.
      sys.setdefaultencoding('utf8')
      
      # Baca data dari partisi level-1 dalam mode asinkron.
      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"]
      
      # Baca data dari partisi level-1 dalam mode sinkron.
      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"]
      
      # Gunakan PyODPS DataFrame untuk membaca data dari partisi level-1.
      pt_df = DataFrame(o.get_table('user_detail').get_partition('dt=20190715'))
      print pt_df.head(10)
    7. Klik ikon Jalankan di bilah alat.

    8. Lihat hasil eksekusi node PyODPS 2 di tab Run Log.