All Products
Search
Document Center

:Buat pekerjaan pengiriman data MaxCompute (versi baru)

Last Updated:Jul 11, 2026

Layanan Log (SLS) mendukung pengiriman data log ke MaxCompute (ODPS) untuk penyimpanan dan analisis. Buat pekerjaan pengiriman data MaxCompute (versi baru) untuk menyiapkan pipa data.

Prasyarat

  • Anda telah membuat proyek dan penyimpanan log di Layanan Log (SLS) serta mengonfigurasi pengumpulan data. Untuk informasi selengkapnya, lihat Kelola proyek, Buat penyimpanan log dasar, dan Ikhtisar pengumpulan data.

  • Anda telah membuat tabel partisi MaxCompute (ODPS) di wilayah yang sama dengan proyek Layanan Log (SLS). Untuk informasi selengkapnya, lihat Buat tabel.

Catatan penggunaan

  • Untuk informasi tentang wilayah yang mendukung pengiriman data ke MaxCompute (ODPS), lihat Wilayah yang didukung.

  • Jika nilai field bertipe char atau varchar melebihi panjang yang ditentukan, bagian yang melebihi akan dipotong saat dikirim ke MaxCompute (ODPS).

    Misalnya, jika batas panjang adalah 3 dan nilai field adalah 012345, nilainya menjadi 012 setelah dikirim ke MaxCompute (ODPS).

  • Jika nilai field bertipe string, char, atau varchar berupa string kosong, nilainya menjadi Null setelah dikirim ke MaxCompute (ODPS).

  • Nilai field bertipe datetime harus dalam format YYYY-MM-DD HH:mm:ss. Beberapa spasi diperbolehkan antara DD dan HH. Format yang tidak valid tidak menyebabkan error pengiriman, tetapi nilainya menjadi Null setelah dikirim ke MaxCompute (ODPS).

  • Jika nilai field bertipe date dalam format yang tidak valid, pekerjaan pengiriman data tidak melaporkan error, tetapi nilainya menjadi Null setelah dikirim ke MaxCompute (ODPS).

  • Untuk field desimal, jika nilainya melebihi skala yang ditentukan, sistem akan membulatkannya. Jika nilainya melebihi presisi yang ditentukan, sistem akan membuang seluruh log sebagai data rusak dan menambah jumlah error.

  • Secara default, sistem membuang data rusak selama pengiriman data.

  • Jika field yang ditentukan dalam konfigurasi pengiriman tidak ada dalam log, nilainya di MaxCompute (ODPS) menjadi nilai default atau Null.

    • Jika Anda menentukan nilai default saat membuat tabel MaxCompute (ODPS), field tersebut akan diberi nilai default.

    • Jika Anda tidak menentukan nilai default tetapi kolom memperbolehkan nilai Null, nilai field menjadi Null.

  • Karena keterbatasan MaxCompute (ODPS), konkurensi maksimum pengiriman data adalah 64 operasi tulis. Throughput maksimum untuk satu partisi adalah 10 MB/detik.

Prosedur

  1. Masuk ke Konsol Simple Log Service.

  2. Pada bagian Projects, klik proyek yang diinginkan.

  3. Pada tab Log Storage > Logstores, klik ikon > di sebelah kiri penyimpanan log target, lalu pilih Data Processing > Export > MaxCompute (ODPS).

  4. Arahkan pointer ke MaxCompute (ODPS) lalu klik ikon +.

  5. Pada panel Data Shipping to MaxCompute, konfigurasikan parameter berikut lalu klik OK.

    Deskripsi parameter

    Parameter

    Deskripsi

    Job name

    Nama unik dari pekerjaan pengiriman data.

    Display name

    Nama tampilan dari pekerjaan pengiriman data.

    Job description

    Deskripsi pekerjaan pengiriman data.

    Destination region

    Wilayah tempat tabel MaxCompute (ODPS) tujuan berada.

    MaxCompute endpoint

    Titik akhir layanan MaxCompute (ODPS) di Wilayah tujuan.

    Catatan

    Panel untuk MaxCompute endpoint secara default dalam keadaan terlipat. Anda dapat mengklik ikon image untuk membukanya, seperti yang ditunjukkan pada gambar berikut:

    image

    Tunnel endpoint

    Titik akhir saluran data untuk layanan MaxCompute (ODPS) di Wilayah tujuan.

    Catatan

    Panel untuk MaxCompute endpoint secara default dalam keadaan terlipat. Anda dapat mengklik ikon image untuk membukanya, seperti yang ditunjukkan pada gambar berikut:

    image

    Project name

    Proyek MaxCompute (ODPS) yang berisi tabel tujuan.

    MaxCompute table name

    Nama tabel MaxCompute (ODPS).

    Read Log Service authorization

    Izin bagi pekerjaan pengiriman data untuk membaca data dari penyimpanan log.

    • Default role: Mengizinkan pekerjaan pengiriman data mengasumsikan role sistem Alibaba Cloud AliyunLogDefaultRole untuk membaca data dari penyimpanan log. Untuk informasi selengkapnya, lihat Berikan izin ke role default.

    • Custom role: Mengizinkan pekerjaan pengiriman data mengasumsikan role RAM kustom untuk membaca data dari penyimpanan log.

      Anda harus terlebih dahulu memberikan role kustom tersebut izin yang diperlukan untuk membaca data dari penyimpanan log. Kemudian, pada bagian Read Log Service authorization, masukkan Nama Sumber Daya Alibaba Cloud (ARN) role kustom Anda. Untuk informasi selengkapnya, lihat Otorisasi role RAM untuk membaca data dari penyimpanan log.

    Write MaxCompute authorization

    Izin bagi pekerjaan pengiriman data untuk menulis data ke tabel MaxCompute (ODPS).

    Automatic Authorization

    Klik Authorize untuk secara otomatis memberikan izin role RAM agar dapat menulis data ke MaxCompute (ODPS).

    Penting
    • Jika Anda menggunakan Pengguna RAM, pengguna tersebut harus memiliki izin untuk mengelola akun MaxCompute (ODPS).

    • Jika otorisasi otomatis gagal, Anda dapat menyalin empat perintah yang disediakan ke Konsol MaxCompute (ODPS) untuk memberikan izin secara manual. Untuk informasi selengkapnya, lihat Berikan izin menggunakan tool command-line.

      USE xxxxx;
      ADD USER RAM$xxxxx:`role/xxxxx`;
      GRANT CreateInstance ON PROJECT xxxxx TO USER RAM$xxxxx:`role/xxxxx`;
      GRANT Describe, Alter, update ON TABLE xxxxx TO USER RAM$xxxxx:`role/xxxxx`;

    MaxCompute data columns

    Petakan field log ke kolom data di tabel MaxCompute (ODPS). Masukkan nama field log di kotak teks kiri dan nama kolom data yang sesuai di kotak teks kanan. Untuk informasi selengkapnya, lihat Pemetaan model data.

    Penting
    • Data dikirim dengan memetakan field log ke kolom tabel sesuai urutan yang ditentukan. Mengubah nama kolom di MaxCompute (ODPS) tidak memengaruhi pengiriman. Namun, jika Anda mengubah skema tabel, Anda harus mengonfigurasi ulang pemetaan ini.

    • Nama field log di kotak teks kiri tidak boleh mengandung tanda kutip ganda ("), tanda kutip tunggal ('), atau spasi.

    • Jika log Anda berisi nama field duplikat (misalnya, dua field bernama request_time), Layanan Log mungkin menampilkan salah satunya sebagai request_time_0 di konsol. Nama yang tersimpan di sistem tetap request_time. Gunakan nama field asli request_time saat mengonfigurasi aturan pengiriman.

      Dengan nama field duplikat, sistem hanya mengirimkan satu nilai secara acak. Hindari nama field duplikat untuk hasil yang dapat diprediksi.

    MaxCompute partition columns

    Petakan field log ke kolom kunci partisi di tabel MaxCompute (ODPS). Masukkan nama field log di kotak teks kiri dan nama kolom kunci partisi yang sesuai di kotak teks kanan. Untuk informasi selengkapnya, lihat Pemetaan model data.

    Catatan
    • Field berikut tidak dapat digunakan sebagai field partisi: _extract_others_, __extract_others__, dan __extract_others_all__.

    • Mengonfigurasi field log kunci partisi ke nilai selain __partition_time__ atau __receive_time__ dapat memengaruhi performa pengiriman.

    Time partition format

    Format partisi waktu. Untuk contoh konfigurasi dan detailnya, lihat Format partisi waktu.

    Catatan
    • Parameter ini hanya berlaku ketika nama field log di MaxCompute partition columns diatur ke __partition_time__ atau __receive_time__.

    • Jangan gunakan format tanggal yang presisinya sampai detik. Hal ini dapat menyebabkan jumlah partisi dalam satu tabel melebihi batas 60.000.

    Time zone

    Zona waktu yang digunakan untuk memformat nilai waktu dan partisi waktu. Untuk informasi selengkapnya, lihat Format zona waktu.

    Shipping mode

    Pilih pengiriman real-time atau pengiriman batch.

    • Real-time shipping: Membaca dan mengirimkan data dari penyimpanan log ke MaxCompute (ODPS) secara real-time.

    • Batch shipping: Membaca dan mengirimkan data dari penyimpanan log secara batch, memproses data yang berumur 5 hingga 10 menit.

    Untuk informasi selengkapnya, lihat Mode pengiriman.

    Start time range

    Rentang waktu data yang akan dikirim, berdasarkan waktu penerimaan log. Opsi berikut tersedia:

    • From Specific Time: Pekerjaan mulai mengirimkan data dari waktu mulai yang ditentukan dan berlanjut hingga dihentikan secara manual.

    • Specific Time Range: Pekerjaan mengirimkan data dalam rentang waktu mulai dan akhir yang ditentukan. Pekerjaan berhenti secara otomatis setelah mencapai waktu akhir.

    Catatan

    Pengiriman data historis tidak lagi didukung karena dapat dengan mudah melebihi ambang batas tulis MaxCompute (ODPS) akibat keterbatasan slot dan QPS.

    Setelah Anda membuat pekerjaan pengiriman data, data log biasanya diimpor ke MaxCompute (ODPS) dalam waktu satu jam setelah ditulis ke penyimpanan log. Anda kemudian dapat melakukan kueri terhadap data tersebut di MaxCompute (ODPS). Untuk informasi selengkapnya, lihat Bagaimana cara memeriksa integritas data setelah dikirim dari Layanan Log ke MaxCompute?

    | log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status |
    +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+
    | 10.10.*.* | 1642942213 | | 24/Jan/2022:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2022_01_23_20_50 | 200 |
    +------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+

Pemetaan model data

Untuk mengirimkan log dari Layanan Log (SLS) ke tabel MaxCompute (ODPS), Anda harus memetakan model data kedua layanan tersebut. Bagian berikut menjelaskan aturan pemetaan dan memberikan contohnya.

  • Tabel MaxCompute (ODPS) harus berisi minimal satu kolom data dan satu kolom kunci partisi.

  • Kami merekomendasikan Anda menggunakan field-field reservasi Layanan Log (SLS) berikut: __partition_time__, __source__, dan __topic__.

  • Tabel MaxCompute (ODPS) dapat memiliki maksimal 60.000 partisi. Jika batas ini terlampaui, data tidak dapat ditulis ke tabel tersebut.

  • Field reservasi sistem __extract_others__ sebelumnya bernama _extract_others_. Nama lama masih didukung demi kompatibilitas.

  • Nilai kolom kunci partisi MaxCompute (ODPS) tidak boleh berupa kata reservasi atau kata kunci MaxCompute (ODPS). Untuk informasi selengkapnya, lihat Kata reservasi dan kata kunci.

  • Partisi dalam tabel partisi MaxCompute (ODPS) tidak boleh kosong. Anda harus memetakan field tertentu, seperti field reservasi sistem atau field log, ke kolom kunci partisi. Nilai field yang dipetakan tidak boleh kosong atau null. Jika field log bertipe string, nilainya harus dapat dikonversi ke tipe data kolom kunci partisi. Jika konversi gagal dan menghasilkan kunci partisi kosong, sistem akan membuang log tersebut selama pengiriman.

  • Di Layanan Log (SLS), satu field log hanya dapat dipetakan ke satu kolom di tabel MaxCompute (ODPS), baik itu kolom data maupun kolom kunci partisi. Redundansi field tidak didukung.

Tabel berikut menunjukkan contoh hubungan pemetaan antara kolom MaxCompute (ODPS) dan field Layanan Log (SLS). Untuk informasi lebih lanjut tentang field reservasi Layanan Log (SLS), lihat Field reservasi.

Tipe kolom MaxCompute

Nama kolom (MaxCompute)

Tipe data (MaxCompute)

Nama field log (Layanan Log)

Tipe field (Layanan Log)

Deskripsi

Kolom data

log_source

string

__source__

Bidang yang dicadangkan

Sumber log.

log_time

bigint

__time__

Bidang yang Dicadangkan

Waktu log dalam format Unix timestamp. Ini sesuai dengan field waktu dalam model data.

log_topic

string

__topic__

Bidang yang Dicadangkan

Topik log.

time

string

time

Field log

Field yang diurai dari konten log, sesuai dengan pasangan kunci-nilai dalam model data. Dalam banyak kasus, nilai field __time__ yang dikumpulkan oleh Logtail sama dengan nilai field time.

ip

string

ip

Bidang log

Field yang diurai dari konten log.

thread

string

thread

Bidang Log

Field yang diurai dari konten log.

log_extract_others

string

__extract_others__

Bidang yang Dicadangkan

Sistem melakukan serialisasi field log lain yang tidak dipetakan ke objek JSON key-value flat. Objek JSON bersarang tidak didukung.

Kolom kunci partisi

log_partition_time

string

__partition_time__

Bidang yang Dicadangkan

Layanan Log (SLS) menghitung nilai ini dari field __time__ log lalu menyelaraskannya. Granularitas partisi dapat dikonfigurasi.

status

string

status

Field log

Field yang diurai dari konten log. Nilai field ini dapat dienumerasi untuk memastikan jumlah partisi tidak melebihi batas.

Format partisi waktu

Pengiriman data MaxCompute (versi baru) mendukung dua format partisi waktu: StrfTimeFormat dan SimpleDateFormat. Format partisi waktu hanya berlaku ketika field di kolom kunci partisi MaxCompute diatur ke __partition_time__ atau __receive_time__.

StrfTimeFormat

strftime adalah fungsi pustaka standar UNIX C yang memformat tanggal dan waktu. Fungsi ini menggunakan kode format yang diawali karakter % untuk mengonversi partisi waktu menjadi string. Misalnya, %Y_%m_%d merepresentasikan tahun, bulan, dan hari.

Catatan

Jika Anda membuat pekerjaan pengiriman data MaxCompute (ODPS) baru, Anda harus menggunakan StrfTimeFormat.

Format partisi waktu

Contoh partisi tabel

%Y_%m_%d_%H_%M_00

2024_12_27_20_30_00

%Y_%m_%d_%H_%M

2024_12_27_20_30

%Y_%m_%d_%H

2024_12_27_20

%Y_%m_%d

2024_12_27

%Y_%m

2024_12

%Y

2024

%Y%m%d%H%M

202412272030

%Y%m%d%H

2024122720

%Y%m%d

20241227

%Y%m

202412

SimpleDateFormat

Format waktu dalam sintaks SimpleDateFormat Java, seperti yyyy-MM-dd HH:mm. Untuk informasi selengkapnya, lihat Class SimpleDateFormat.

Catatan

SimpleDateFormat didukung demi kompatibilitas mundur saat migrasi dari versi lama. Untuk tugas MaxCompute baru, gunakan StrfTimeFormat.

Tugas migrasi lama mendukung format partisi berikut:

Format waktu partisi

Contoh partisi tabel

yyyy-MM-ddHH:mm

2024-12-2720-30

yyyy_MM_dd_HH_mm

2024_12_27_20_30

yyyy_MM_dd_HH

2024_12_27_20

yyyy-MM-dd HH:mm

2024-12-27 20:30

yyyyMMddHHmm

202412272030

yyyyMMddHH

2024122720

yyyyMMdd

20241227

yyyy_MM-dd_HH_mm

2024_12-27_20_30

yyyy-MM-dd

2024-12-27

Informasi referensi

  • Field __partition_time__

    Cara umum untuk memfilter data di MaxCompute adalah menggunakan waktu log sebagai kolom kunci partisi.

    • Format

      Field __partition_time__ berasal dari field __time__ di Layanan Log (SLS). Field ini menghasilkan string waktu berdasarkan zona waktu dan format waktu partisi. Untuk menghindari melebihi batas partisi untuk satu tabel MaxCompute, nilai kunci partisi tanggal disejajarkan ke interval 1800 detik (setengah jam).

      Misalnya, jika waktu log di Layanan Log adalah 27/Jan/2022 20:50:13 +0800, SLS menghitung field reservasi __time__ sebagai 1643287813 (Unix timestamp). Tabel berikut menunjukkan nilai kolom kunci partisi waktu untuk konfigurasi yang berbeda.

      Format waktu partisi

      __partition_time__

      %Y_%m_%d_%H_%M_00

      2022_01_27_20_30_00

      %Y_%m_%d_%H_%M

      2022_01_27_20_30

      %Y%m%d

      20220127

    • Penggunaan

      Menggunakan __partition_time__ untuk memfilter data menghindari pemindaian seluruh tabel. Misalnya, untuk mengkueri data log tanggal 26 Desember 2024:

      select * from {ODPS_TABLE_NAME} where log_partition_time >= "2024_12_26" and log_partition_time < "2024_12_27";
  • Field __receive_time__

    Cara umum untuk memfilter data di MaxCompute adalah menggunakan waktu kedatangan log sebagai kolom kunci partisi.

    • Format

      Format waktu partisi

      __receive_time__

      %Y_%m_%d_%H_%M_00

      2022_01_27_20_30_00

      %Y_%m_%d_%H_%M

      2022_01_27_20_30

      %Y%m%d

      20220127

  • Field __extract_others__ dan __extract_others_all__

    • Field __extract_others__ berisi semua field yang tidak dipetakan dari field log, tidak termasuk __topic__, __tag__:*, dan __source__.

    • Field __extract_others_all__ berisi semua field yang tidak dipetakan dari field log, termasuk __topic__, __tag__:*, dan __source__.

Mode pengiriman

Pengiriman data MaxCompute (versi baru) mendukung dua mode pengiriman: pengiriman real-time dan pengiriman batch.

  • Real-time shipping: Langsung membaca data dari Logstore dan mengirimkannya ke MaxCompute.

  • Batch shipping: Membaca data dari Logstore yang tiba 5 hingga 10 menit lalu dan mengirimkannya ke MaxCompute.

    Jika Anda mengatur Shipping mode ke Batch shipping, sejajarkan Start Time atau End Time di Start Time Range ke interval 5 menit. Misalnya, 2022-05-24 16:35:00 adalah pengaturan yang valid, tetapi 2022-05-24 16:36:00 adalah pengaturan yang tidak valid.

    Pengiriman batch juga mendukung pengiriman field __receive_time__. Field __receive_time__ menunjukkan waktu saat log diterima oleh Layanan Log (SLS). Atur formatnya menggunakan format partisi waktu. Presisi maksimum adalah setengah jam. Untuk informasi selengkapnya tentang format partisi waktu, lihat Format partisi waktu.

    Jika Anda ingin mengirimkan field ini, tambahkan ke MaxCompute partition key column.

Contoh SDK

export_odps_sink_demo.py