全部产品
Search
文档中心

Elasticsearch:Metode penggunaan

更新时间:Jul 02, 2025

Plug-in aliyun-sql digunakan untuk mengurai kueri SQL. Setelah memasang plug-in ini di kluster Alibaba Cloud Elasticsearch, Anda dapat menjalankan pernyataan SQL untuk menanyakan data dalam kluster tersebut. Plug-in ini tidak lagi tersedia. Sebagai gantinya, gunakan plug-in x-pack-sql yang disediakan oleh Elastic.

Catatan

Plug-in aliyun-sql tidak lagi tersedia untuk pengguna baru. Pengguna yang sudah ada masih dapat menggunakannya. Untuk menjalankan pernyataan SQL pada kluster Elasticsearch Anda, gunakan plug-in x-pack-sql dari Elastic. Informasi lebih lanjut tentang plug-in x-pack-sql dapat ditemukan di sql-search-api.

Prasyarat

  • Kluster Alibaba Cloud Elasticsearch telah dibuat dengan versi V6.7.0 atau lebih baru tetapi lebih awal dari V7.10.0.

  • Plug-in aliyun-sql telah dipasang.

    Anda dapat memeriksa status pemasangan plug-in di halaman konfigurasi plug-in kluster.

Peringatan

  • Sebelum menggunakan plug-in, pastikan parameter aliyun.sql.enabled diatur ke true untuk kluster Elasticsearch Anda. Parameter ini dapat dikonfigurasi di konsol Kibana. Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.

  • Anda dapat menghapus plug-in secara manual. Sebelum menghapusnya, jalankan perintah berikut di konsol Kibana untuk menonaktifkan plug-in dengan mengatur aliyun.sql.enabled menjadi null. Berikut adalah contoh konfigurasi:

    PUT _cluster/settings
    {
      "persistent": {
        "aliyun.sql.enabled": null
      }
    }

    Penghapusan plug-in akan memicu restart kluster. Jika Anda tidak menonaktifkan plug-in sebelum penghapusan, kluster mungkin macet selama proses restart. Dalam situasi ini, jalankan perintah berikut untuk membersihkan konfigurasi arsip dan melanjutkan restart:

    PUT _cluster/settings
    {
      "persistent": {
        "archived.aliyun.sql.enabled": null
      }
    }

Ikhtisar sintaksis

Plug-in aliyun-sql menggunakan sintaksis MySQL 5.0 dan mendukung berbagai fungsi serta ekspresi. Untuk informasi lebih lanjut, lihat Fungsi dan Ekspresi Lainnya.

  • Kueri Dasar

    SELECT [DISTINCT] (* | expression) [[AS] alias] [, ...]
    FROM table_name
    [WHERE condition]
    [GROUP BY expression [, ...]
     [HAVING condition]]
    [ORDER BY expression [ ASC | DESC ] [, ...]]
    [LIMIT [offset, ] size]
  • Kueri Gabungan

    SELECT
      expression
    FROM table_name
    JOIN table_name 
     ON expression
    [WHERE condition]
    Penting
    • Saat melakukan kueri gabungan, Alibaba Cloud Elasticsearch membatasi jumlah maksimum entri data yang dapat ditanyakan dari satu tabel. Nilai defaultnya adalah 10.000. Anda dapat menyesuaikan batas ini dengan mengonfigurasi parameter max.join.size. Contohnya, jalankan perintah berikut di konsol Kibana untuk menyetel nilai maksimum menjadi 20.000:

      PUT /_cluster/settings
      {
        "transient": {
          "max.join.size": 20000
        }
      }
    • Kueri gabungan yang Anda lakukan merupakan kueri inner join. Secara internal, plug-in aliyun-sql menggunakan merge join untuk kueri tersebut. Saat melakukan kueri gabungan, pastikan nilai-nilai bidang dalam tabel yang ingin digabungkan sesuai dengan ID dokumen Elasticsearch. Kueri gabungan hanya dapat dilakukan pada bidang tipe data numerik.

Prosedur

  1. Masuk ke konsol Kibana kluster Elasticsearch Anda dan buka halaman utama konsol Kibana sesuai panduan.

    Untuk informasi lebih lanjut tentang cara masuk ke konsol Kibana, lihat Masuk ke Konsol Kibana.

    Catatan

    Contoh ini menggunakan kluster Elasticsearch V6.7.0. Operasi pada versi lain mungkin berbeda. Pastikan untuk mengikuti operasi aktual di konsol yang berlaku.

  2. Di panel navigasi sisi kiri halaman yang muncul, klik Dev Tools.

  3. Pada tab Console, jalankan perintah berikut untuk mengaktifkan plug-in:

    PUT _cluster/settings
    {
      "transient": {
        "aliyun.sql.enabled": true
      }
    }
  4. Tulis data.

    Catatan

    Plug-in aliyun-sql tidak mendukung permintaan tulis. Hanya permintaan kueri yang didukung. Oleh karena itu, kode berikut menggunakan permintaan bulk untuk menulis data.

    • Data informasi siswa

      PUT stuinfo/_doc/_bulk?refresh
      {"index":{"_id":"1"}}
      {"id":572553,"name":"xiaoming","age":"22","addr":"addr1"}
      {"index":{"_id":"2"}}
      {"id":572554,"name":"xiaowang","age":"23","addr":"addr2"}
      {"index":{"_id":"3"}}
      {"id":572555,"name":"xiaoliu","age":"21","addr":"addr3"}
    • Data peringkat siswa

      PUT sturank/_doc/_bulk?refresh
      {"index":{"_id":"1"}}
      {"id":572553,"score":"90","sorder":"5"}
      {"index":{"_id":"2"}}
      {"id":572554,"score":"92","sorder":"3"}
      {"index":{"_id":"3"}}
      {"id":572555,"score":"86","sorder":"10"}
  5. Jalankan pernyataan SQL.

    Lakukan kueri gabungan untuk menanyakan nama dan peringkat seorang siswa.

    POST /_alisql
    {
      "query":"select stuinfo.name,sturank.sorder from stuinfo join sturank on stuinfo.id=sturank.id"
    }

    Jika pernyataan berhasil dijalankan, plug-in aliyun-sql mengembalikan informasi tabel. Bidang columns berisi nama kolom dan tipe data. Bidang rows berisi data baris.

    {
      "columns" : [
        {
          "name" : "name",
          "type" : "text"
        },
        {
          "name" : "sorder",
          "type" : "text"
        }
      ],
      "rows" : [
        [
          "xiaoming",
          "5"
        ],
        [
          "xiaowang",
          "3"
        ],
        [
          "xiaoliu",
          "10"
        ]
      ]
    }