All Products
Search
Document Center

Simple Log Service:Gunakan Simple Log Service SDK untuk Python untuk menggunakan fitur Dedicated SQL

Last Updated:Jul 06, 2025

Topik ini menjelaskan cara menggunakan Simple Log Service SDK untuk Python dalam mengakses fitur Dedicated SQL.

Prasyarat

Informasi latar belakang

Simple Log Service menyediakan fitur Dedicated SQL untuk meningkatkan kemampuan analisis SQL. Anda dapat menggunakan fitur ini untuk memproses ratusan miliar catatan data. Untuk informasi lebih lanjut, lihat Dedicated SQL: Solusi Optimalisasi Kueri Log Tingkat Triliun.

Simple Log Service menyediakan operasi execute_logstore_sql dan execute_project_sql. Anda dapat memanggil operasi tersebut untuk menggunakan fitur Dedicated SQL secara efisien.

  • execute_logstore_sql: menggunakan fitur Dedicated SQL di logstore tertentu. Operasi ini mendukung sintaksis SQL-92. Pernyataan kueri berada dalam format Pernyataan Pencarian|Pernyataan Analitik, dan pernyataan analitik mengikuti sintaksis SQL-92 standar.

  • execute_project_sql: menggunakan fitur Dedicated SQL di proyek tertentu. Operasi ini mendukung sintaksis SQL-92. Anda harus menentukan kondisi filter dan rentang waktu dalam klausa WHERE dari pernyataan SQL.

Catatan

Jika Anda ingin menyaring data sebelum menganalisisnya, kami sarankan Anda memanggil operasi execute_logstore_sql dan menentukan pernyataan kueri dalam format Pernyataan Pencarian|Pernyataan Analitik untuk meningkatkan efisiensi analisis.

Kode contoh untuk menggunakan fitur Dedicated SQL

Deskripsi operasi

  • Operasi execute_logstore_sql

    Anda dapat memanggil operasi execute_logstore_sql untuk menggunakan fitur Dedicated SQL. Anda harus membuat permintaan dalam format res = client.execute_logstore_sql(project, logstoreName, from, to, query, powerSql). Tabel berikut menjelaskan parameter permintaan.

    Parameter

    Tipe

    Diperlukan

    Contoh

    Deskripsi

    project_name

    String

    Ya

    N/A

    Nama proyek.

    Saat Anda membuat klien Simple Log Service, Anda harus menentukan nilai untuk parameter project_name. Oleh karena itu, Anda tidak perlu mengonfigurasi parameter ini lagi.

    logstore_name

    String

    Ya

    N/A

    Nama logstore.

    Saat Anda membuat klien Simple Log Service, Anda harus menentukan nilai untuk parameter logstore_name. Oleh karena itu, Anda tidak perlu mengonfigurasi parameter ini lagi.

    from

    Long

    Ya

    int(time.time() - 60)

    Awal rentang waktu untuk kueri. Nilainya adalah timestamp UNIX yang mewakili jumlah detik yang telah berlalu sejak waktu epoch 1 Januari 1970, 00:00:00 UTC.

    to

    Long

    Ya

    int(time.time())

    Akhir rentang waktu untuk kueri. Nilainya adalah timestamp UNIX yang mewakili jumlah detik yang telah berlalu sejak waktu epoch 1 Januari 1970, 00:00:00 UTC.

    query

    String

    Ya

    "* | select count(1) as cnt"

    Pernyataan kueri. Format: Pernyataan Pencarian|Pernyataan Analitik. Untuk informasi lebih lanjut, lihat Sintaksis.

    Secara default, Simple Log Service mengembalikan 100 baris data. Anda dapat menggunakan klausa LIMIT untuk menentukan jumlah baris data yang akan dikembalikan. Untuk informasi lebih lanjut, lihat Klausa LIMIT.

    powerSql

    Boolean

    Tidak

    True

    Menentukan apakah akan menggunakan fitur Dedicated SQL. Untuk informasi lebih lanjut, lihat Dedicated SQL: Solusi optimalisasi kueri log tingkat triliun.

    • True: Fitur Dedicated SQL digunakan.

    • False (default): Fitur Standard SQL digunakan.

  • Operasi execute_project_sql

    Anda dapat memanggil operasi execute_project_sql untuk menggunakan fitur Dedicated SQL. Anda harus membuat permintaan dalam format res = client.execute_project_sql(project, query, powerSql). Tabel berikut menjelaskan parameter permintaan.

    Parameter

    Tipe

    Diperlukan

    Contoh

    Deskripsi

    project_name

    String

    Ya

    aliyun-test-project

    Nama proyek.

    Saat Anda membuat klien Simple Log Service, Anda harus menentukan nilai untuk parameter project_name. Oleh karena itu, Anda tidak perlu mengonfigurasi parameter ini lagi.

    query

    String

    Ya

    "select count(1) as cnt from %s where __time__ > %s" % (logstore_name, int(time.time() - 60))

    Pernyataan SQL. Anda harus menentukan kondisi pencarian dalam klausa WHERE dari pernyataan SQL.

    Secara default, Simple Log Service mengembalikan 100 baris data. Anda dapat menggunakan klausa LIMIT untuk menentukan jumlah baris data yang akan dikembalikan. Untuk informasi lebih lanjut, lihat Klausa LIMIT.

    powerSql

    Boolean

    Tidak

    True

    Menentukan apakah akan menggunakan fitur Dedicated SQL. Untuk informasi lebih lanjut, lihat Dedicated SQL: Solusi optimalisasi kueri log tingkat triliun.

    • True: Fitur Dedicated SQL digunakan.

    • False (default): Fitur Standard SQL digunakan.

Kode contoh

Kode contoh berikut memberikan contoh tentang cara menggunakan fitur Dedicated SQL. Untuk informasi lebih lanjut, lihat aliyun-log-python-sdk.

# encoding: utf-8
from __future__ import print_function

import time
import os
from aliyun.log import *


def main():
    # Tentukan titik akhir Simple Log Service.
    endpoint = 'ap-southeast-1.log.aliyuncs.com'
    # Konfigurasikan variabel lingkungan. Dalam contoh ini, ID AccessKey dan Rahasia AccessKey diperoleh dari variabel lingkungan.
    access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
    access_key = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
    # Nama proyek.
    project_name = 'aliyun-test-project'
    # Nama logstore.
    logstore_name = 'aliyun-test-logstore'

    # Buat klien Simple Log Service.
    client = LogClient(endpoint, access_key_id, access_key)

    # Jalankan pernyataan SQL di logstore yang ditentukan.
    print("===sample_execute_logstore_sql===")
    res = client.execute_logstore_sql(project_name, logstore_name,
                                      int(time.time() - 60),int(time.time()),
                                      "* | select count(1) as cnt",True)
    # Tampilkan statistik tentang hasil analisis.
    res.log_print()
    # Jumlah baris data log yang diproses.
    print("processed_rows: %s" % res.get_processed_rows())
    # Waktu yang dikonsumsi untuk menjalankan pernyataan SQL.
    print("elapsed_mills: %s" % res.get_elapsed_mills())
    # Tampilkan apakah pernyataan SQL digunakan.
    print("has_sql: %s" % res.get_has_sql())
    # Klausa WHERE yang mendahului tanda vertikal (|).
    print("where_query: %s" % res.get_where_query())
    # Pernyataan SELECT yang mengikuti tanda vertikal (|). Pernyataan SELECT berisi fungsi agregat.
    print("agg_query: %s" % res.get_agg_query())
    # Waktu CPU yang dikonsumsi untuk menjalankan pernyataan SQL setelah fitur Dedicated SQL diaktifkan. Unit: detik. Anda dikenakan biaya untuk fitur Dedicated SQL berdasarkan waktu CPU. Untuk informasi lebih lanjut, lihat topik yang terkait dengan item yang dapat ditagih.
    print("cpu_sec: %s" % res.get_cpu_sec())
    # Jumlah core CPU yang digunakan untuk menjalankan pernyataan SQL setelah fitur Dedicated SQL diaktifkan.
    print("cpu_cores: %s" % res.get_cpu_cores())


    # Jalankan pernyataan SQL di proyek yang ditentukan.
    print("===sample_execute_project_sql===")
    res = client.execute_project_sql(project_name,"select count(1) as cnt from %s where __time__ > %s"
                                     % (logstore_name, int(time.time() - 60)),True)
    # Tampilkan statistik tentang hasil analisis.
    res.log_print()
    # Jumlah baris data log yang diproses.
    print("processed_rows: %s" % res.get_processed_rows())
    # Waktu yang dikonsumsi untuk menjalankan pernyataan SQL.
    print("elapsed_mills: %s" % res.get_elapsed_mills())
    # Tampilkan apakah pernyataan SQL digunakan.
    print("has_sql: %s" % res.get_has_sql())
    # Klausa WHERE yang mendahului tanda vertikal (|).
    print("where_query: %s" % res.get_where_query())
    # Pernyataan SELECT yang mengikuti tanda vertikal (|). Pernyataan SELECT berisi fungsi agregat.
    print("agg_query: %s" % res.get_agg_query())
    # Waktu CPU yang dikonsumsi untuk menjalankan pernyataan SQL setelah fitur Dedicated SQL diaktifkan. Unit: detik. Anda dikenakan biaya untuk fitur Dedicated SQL berdasarkan waktu CPU. Untuk informasi lebih lanjut, lihat topik yang terkait dengan item yang dapat ditagih.
    print("cpu_sec: %s" % res.get_cpu_sec())
    # Jumlah core CPU yang digunakan untuk menjalankan pernyataan SQL setelah fitur Dedicated SQL diaktifkan.
    print("cpu_cores: %s" % res.get_cpu_cores())


if __name__ == '__main__':
    main()

Kode contoh untuk membuat, memodifikasi, dan menanyakan instans SQL

Setelah fitur Dedicated SQL diaktifkan, Anda dapat membuat instans SQL untuk menentukan jumlah CU. Anda dapat mengubah jumlah CU untuk mengontrol biaya fitur Dedicated SQL. Untuk informasi lebih lanjut, lihat Dedicated SQL: Solusi Optimalisasi Kueri Log Tingkat Triliun.

Kode contoh berikut memberikan contoh tentang cara membuat, memodifikasi, dan menanyakan instans SQL. Untuk informasi lebih lanjut, lihat aliyun-log-python-sdk.

# encoding: utf-8
from __future__ import print_function

import time
import os
from aliyun.log import *

def main():
    # Titik akhir Simple Log Service. Untuk informasi lebih lanjut, lihat Titik akhir. Dalam contoh ini, titik akhir Simple Log Service untuk wilayah China (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir yang sebenarnya.
    endpoint = 'ap-southeast-1.log.aliyuncs.com'
    # Konfigurasikan variabel lingkungan. Dalam contoh ini, ID AccessKey dan Rahasia AccessKey diperoleh dari variabel lingkungan.
    access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
    access_key = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
    # Nama proyek.
    project_name = 'aliyun-test-project'
    # Nama logstore.
    logstore_name = 'aliyun-test-logstore'

    # Buat klien Simple Log Service.
    client = LogClient(endpoint, access_key_id, access_key)

    # Buat instans SQL. Anda dapat menentukan jumlah CU untuk instans SQL. Nilai valid: 0 hingga 1000.
    print("===sample_create_sql_instance===")
    res = client.create_sql_instance(project_name, 500)
    res.log_print()

    # Modifikasi konfigurasi instans SQL. Anda dapat mengubah jumlah CU untuk instans SQL. Nilai valid: 0 hingga 1000.
    print("===sample_update_sql_instance===")
    res = client.update_sql_instance(project_name, 800)
    res.log_print()

    # Tanyakan konfigurasi instans SQL.
    print("===sample_list_sql_instance===")
    res = client.list_sql_instance(project_name)
    res.log_print()


if __name__ == '__main__':
    main()