

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Tutorial: Menggunakan kemampuan SQL generatif Amazon Q dengan data TICKIT
<a name="query-editor-v2-generative-ai-example"></a>

Untuk membuat prompt yang efisien untuk menghasilkan SQL, Anda harus belajar tentang skema database dan data Anda. Data TICKIT terdiri dari tujuh tabel: dua tabel fakta dan lima dimensi. Data sampel berisi catatan tentang penjualan kepada petugas acara hiburan yang terjadi pada tahun 2008. Untuk informasi selengkapnya tentang skema data TICKIT, lihat [Contoh database](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) di Panduan Pengembang Database *Amazon Redshift*. Anda dapat memuat data TICKIT ke dalam database dengan berbagai metode di konsol Amazon Redshift dan editor kueri v2. Query editor v2 menyediakan metode untuk memuat data TICKIT ke dalam database`sample_data_dev`. Untuk informasi, lihat [Memuat data ke dalam database](query-editor-v2-loading.md). Editor kueri v2 juga menyediakan contoh prompt untuk data TICKIT. Skenario berikut menjelaskan percakapan dengan SQL generatif untuk menghasilkan SQL tentang data sampel TICKIT. Dalam skenario ini, data sampel TICKIT sudah dibuat dalam `dev` database di cluster Amazon Redshift. 

**catatan**  
Contoh ini adalah untuk menggambarkan percakapan. Tanggapan dari SQL generatif mungkin tidak cocok dengan hasil Anda menggunakan prompt yang sama.

**Contoh percakapan dengan SQL generatif Amazon Q**

1. Di **Editor**, sambungkan ke cluster atau workgroup yang berisi data sampel TICKIT.

1. Buat buku catatan kosong dan pilih ikon ![\[Generative SQL\]](http://docs.aws.amazon.com/id_id/redshift/latest/mgmt/images/qev2-amazon-q.png) Generative SQL untuk membuka panel obrolan.

1. Masukkan prompt berikut untuk menghasilkan SQL untuk memverifikasi jumlah catatan dalam `VENUE` tabel:

   ```
   How many venues are there?
   ```

   ```
   SELECT
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   ```

   Pilih **Tambahkan ke buku catatan** untuk menambahkan dua sel ke buku catatan yang terbuka. Satu sel Markdown “Ada berapa tempat?” dan satu berisi SQL yang dihasilkan.

   Di sel SQL, pilih **Jalankan** untuk menerima hasilnya:

   ```
   count
   ------
   202
   ```

1. Untuk meminta versi SQL lain, pilih **Regenerate SQL** dan terima jawaban berikut:

   ```
   SELECT
     venuestate,
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   GROUP BY
     venuestate
   ```

   Pilih **Tambahkan ke buku catatan** untuk menambahkan dua sel lagi ke buku catatan yang terbuka. Satu sel Markdown “Ada berapa tempat?” dan satu berisi SQL yang dihasilkan.

   Di sel SQL, pilih **Jalankan** untuk menerima status tempat daftar hasil berdasarkan nomor:

   ```
   venuestate num_venues
   ----------------------
   MA         4	
   OH         8	
   MI         5	
   ...
   ```

1. Asisten SQL generatif dapat membuat asumsi tentang apa yang Anda tanyakan. Meskipun tidak ada widget dalam database, Anda masih bisa bertanya. Dalam hal ini, ini memberi Anda pesan bahwa itu tidak dapat menghasilkan SQL.

   ```
   How many widgets are there?
   ```

   ```
   I was not able to generate any SQL
   ```

1. Saat Anda mempelajari lebih lanjut tentang database Anda, Anda dapat mengajukan pertanyaan yang lebih spesifik untuk menghasilkan SQL. Misalnya, Anda menyadari bahwa database berisi data penjualan selama beberapa bulan di tahun 2008. Masukkan prompt berikut untuk menghasilkan SQL untuk menemukan jumlah penjualan pada bulan November 2008:

   ```
   How many sales were there in November 2008?
   ```

   ```
   SELECT
     COUNT(*) AS num_sales
   FROM
     tickit.sales s
     JOIN tickit.date d ON s.dateid = d.dateid
   WHERE
     d.month = 'November'
     AND d.year = 2008
   ```

   Pilih **Tambahkan ke buku catatan** untuk menambahkan dua sel ke buku catatan yang terbuka. Satu sel penurunan harga “Berapa banyak penjualan yang ada pada November 2008?” dan satu berisi SQL yang dihasilkan.

   Di sel SQL, pilih **Jalankan** untuk menerima hasilnya:

   ```
   num_sales
   -----
   0
   ```

   Anda menyadari ini bukan hasil yang Anda harapkan.

1. Anda melihat bahwa predikat `date.month='November'` mengharapkan bulan dalam tabel DATE diwakili oleh singkatan dari nama bulan. Anda mengubah predikat ke `d.month='NOV'` dan menjalankan kembali SQL.

   ```
   SELECT
     COUNT(*)
   FROM
     sales
     JOIN date ON sales.dateid = date.dateid
   WHERE
     date.month = 'NOV'
     AND date.year = 2008
   ```

   Di sel SQL, pilih **Jalankan** untuk mendapatkan hasil baru.

   ```
   count
   -----
   14261
   ```

1. Jika Anda mengajukan pertanyaan yang mencoba mengubah database yang terhubung, pesan peringatan dikembalikan bersama dengan SQL yang direkomendasikan. Masukkan prompt berikut untuk menghasilkan SQL untuk memasukkan data ke dalam tabel:

   ```
   Insert 1 into the venue table.
   ```

   ```
   INSERT
   ,
   UPDATE
     OR delete data
   FROM
     the database AS that could potentially change the data.Please provide a query that ONLY selects data
   ```

   ```
   I was not able to generate the correct SQL code. I generated SQL, but you'll have to edit it to work with your database.
   ```

   Jika Anda memilih **Tambahkan ke notebook** untuk menambahkan dua sel ke notebook yang terbuka dan menjalankan SQL, maka SQL gagal.

   ```
   ERROR: syntax error at or near "," Position: 132 [ErrorId: 1-6546764a-011df2691778846219ce6ec2]
   ```

Skenario ini hanya menggambarkan beberapa cara dasar untuk berinteraksi dengan SQL generatif Amazon Q. Anda dapat bereksperimen lebih banyak lagi dengan teknologi AI generatif ini untuk membantu Anda mulai membuat SQL untuk menanyakan database Anda.