Menyerap dan menanyakan data semi-terstruktur di Amazon Redshift - Amazon Redshift

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

Menyerap dan menanyakan data semi-terstruktur di Amazon Redshift

Dengan menggunakan dukungan data semi-terstruktur di Amazon Redshift, Anda dapat menyerap dan menyimpan data semi-terstruktur di gudang data Amazon Redshift. Menggunakan tipe data SUPER dan bahasa PartiQL, Amazon Redshift memperluas kemampuan gudang data untuk berintegrasi dengan sumber data SQL dan NoSQL. Dengan cara ini, Amazon Redshift memungkinkan analisis yang efisien pada data tersimpan relasional dan semi-terstruktur seperti JSON.

Amazon Redshift menawarkan dua bentuk dukungan data semi-terstruktur: tipe data SUPER dan Amazon Redshift Spectrum.

Gunakan tipe data SUPER jika Anda perlu memasukkan atau memperbarui batch kecil data JSON dengan latensi rendah. Selain itu, gunakan SUPER ketika kueri Anda membutuhkan konsistensi yang kuat, kinerja kueri yang dapat diprediksi, dukungan kueri yang kompleks, dan kemudahan penggunaan dengan skema yang berkembang dan data tanpa skema.

Sebaliknya, gunakan Amazon Redshift Spectrum dengan format file terbuka jika kueri data Anda memerlukan integrasi dengan layanan AWS lain dan dengan data yang terutama disimpan di Amazon S3 untuk tujuan pengarsipan.

Kasus penggunaan untuk tipe data SUPER

Dukungan data semi-terstruktur menggunakan tipe data SUPER di Amazon Redshift memberikan kinerja, fleksibilitas, dan kemudahan penggunaan yang unggul. Kasus penggunaan berikut membantu menunjukkan bagaimana Anda dapat menggunakan dukungan data semi-terstruktur dengan SUPER.

Penyisipan data JSON yang cepat dan fleksibel - Amazon Redshift mendukung transaksi cepat yang dapat mengurai JSON dan menyimpannya sebagai nilai SUPER. Transaksi insert dapat beroperasi hingga lima kali lebih cepat daripada melakukan penyisipan yang sama ke dalam tabel yang telah merobek-robek atribut SUPER ke dalam kolom konvensional. Misalnya, anggaplah JSON yang masuk adalah dari bentuk {“a”:.., “b”:.., “c” “...,...}. Anda dapat mempercepat kinerja penyisipan berkali-kali dengan menyimpan JSON yang masuk ke dalam tabel TJ dengan satu kolom SUPER S, alih-alih menyimpannya ke dalam tabel konvensional TR dengan kolom “a', 'b', “c ', dan seterusnya. Ketika ada ratusan atribut di JSON, keunggulan kinerja tipe data SUPER menjadi besar.

Juga, tipe data SUPER tidak memerlukan skema biasa. Anda tidak perlu introspeksi dan membersihkan JSON yang masuk sebelum menyimpannya. Misalnya, JSON yang masuk memiliki atribut string “c” dan lainnya yang memiliki atribut integer “c”, tanpa tipe data SUPER. Dalam hal ini, Anda harus memisahkan kolom c_string dan c_int atau membersihkan data. Sebaliknya, dengan tipe data SUPER, semua data JSON disimpan selama konsumsi tanpa kehilangan informasi. Kemudian, Anda dapat menggunakan ekstensi PartiQL SQL untuk menganalisis informasi.

Kueri fleksibel untuk penemuan — Setelah Anda menyimpan data semi-terstruktur (seperti JSON) ke dalam nilai data SUPER, Anda dapat menanyakannya tanpa memaksakan skema. Anda dapat menggunakan pengetikan dinamis PartiQL dan semantik longgar untuk menjalankan kueri dan menemukan data yang sangat bersarang yang Anda butuhkan, tanpa perlu memaksakan skema sebelum kueri.

Kueri fleksibel untuk operasi ekstrak, muat, transformasi (ETL) menjadi tampilan terwujud konvensional — Setelah Anda menyimpan data tanpa skema dan semi-terstruktur menjadi SUPER, Anda dapat menggunakan tampilan terwujud PartiQL untuk mengintrospeksi data dan merobeknya menjadi tampilan yang terwujud.

Tampilan yang terwujud dengan data yang diparut adalah contoh yang baik dari keunggulan kinerja dan kegunaan untuk kasus analitik klasik Anda. Saat Anda melakukan analitik pada data yang diparut, organisasi kolumnar tampilan terwujud Amazon Redshift memberikan kinerja yang lebih baik. Selain itu, pengguna dan alat intelijen bisnis (BI) yang memerlukan skema konvensional untuk data yang dicerna dapat menggunakan tampilan (baik terwujud atau virtual) sebagai presentasi skema konvensional dari data.

Setelah tampilan terwujud PartiQL Anda mengekstrak data yang ditemukan di JSON atau SUPER ke dalam tampilan materialisasi kolumnar konvensional, Anda dapat menanyakan tampilan yang terwujud. Untuk informasi selengkapnya tentang cara kerja tipe data SUPER dengan tampilan terwujud, lihatMenggunakan tipe data SUPER dengan tampilan terwujud.

Anda dapat menerapkan kebijakan masking data dinamis ke scalar nilai pada jalur kolom tipe SUPER. Untuk informasi selengkapnya tentang masking data dinamis, lihatPenutupan data dinamis. Untuk informasi tentang penggunaan masking data dinamis dengan tipe data SUPER, lihatMenggunakan masking data dinamis dengan jalur tipe data SUPER. (pratinjau)

Untuk informasi tentang tipe data SUPER, lihatTipe SUPER.

Untuk contoh menggunakan tipe data SUPER, lihat subbagian untuk topik ini, dimulai denganDataset sampel SUPER.

Konsep untuk penggunaan tipe data SUPER

Berikut ini, Anda dapat menemukan beberapa konsep tipe data Amazon Redshift SUPER.

Pahami tipe data SUPER di Amazon Redshift — Tipe data SUPER adalah tipe data Amazon Redshift yang memungkinkan penyimpanan array dan struktur tanpa skema yang berisi skalar Amazon Redshift dan kemungkinan array dan struktur bersarang. Tipe data SUPER dapat menyimpan berbagai format data semi-terstruktur, seperti JSON atau data yang berasal dari sumber berorientasi dokumen. Anda dapat menambahkan kolom SUPER baru untuk menyimpan data semi-terstruktur dan menulis kueri yang mengakses kolom SUPER, bersama dengan kolom skalar biasa. Untuk informasi selengkapnya tentang tipe data SUPER, lihatTipe SUPER.

Menyerap JSON tanpa skema menjadi SUPER — Dengan tipe data SUPER semi-terstruktur yang fleksibel, Amazon Redshift dapat menerima dan menyerap JSON tanpa skema menjadi nilai SUPER. Misalnya, Amazon Redshift dapat menyerap nilai JSON [10,5, “pertama"] ke dalam nilai SUPER [10,5, 'pertama'], yaitu array yang berisi desimal Amazon Redshift 10.5 dan varchar 'pertama'. Amazon Redshift dapat menyerap JSON ke dalam nilai SUPER menggunakan perintah COPY atau fungsi parse JSON, seperti json_parse ('[10.5, “first"]'). Baik COPY dan json_parse ingest JSON menggunakan semantik parsing yang ketat secara default. Anda juga dapat membangun nilai SUPER termasuk array dan struktur, menggunakan data database itu sendiri.

Kolom SUPER tidak memerlukan modifikasi skema saat menelan struktur tidak beraturan dari JSON tanpa skema. Misalnya, saat menganalisis aliran klik, Anda awalnya menyimpan di struktur “klik” kolom SUPER dengan atribut “IP” dan “waktu”. Anda dapat menambahkan atribut “id pelanggan” tanpa mengubah skema Anda untuk menyerap perubahan tersebut.

Format asli yang digunakan untuk tipe data SUPER adalah format biner yang membutuhkan ruang lebih kecil daripada nilai JSON dalam bentuk tekstualnya. Ini memungkinkan konsumsi lebih cepat dan pemrosesan runtime nilai SUPER pada kueri.

Kueri data SUPER dengan PartiQL — PartiQL adalah ekstensi SQL-92 yang kompatibel ke belakang yang digunakan banyak layanan saat ini. AWS Dengan penggunaan PartiQL, konstruksi SQL yang sudah dikenal dengan mulus menggabungkan akses ke data SQL tabular klasik dan data semi-terstruktur SUPER. Anda dapat melakukan navigasi objek dan array dan array unnest. PartiQL memperluas bahasa SQL standar untuk mengekspresikan dan memproses data bersarang dan multivaluasi secara deklaratif.

PartiQL adalah perpanjangan dari SQL di mana data bersarang dan tanpa skema kolom SUPER adalah warga kelas satu. PartiQL tidak memerlukan semua ekspresi kueri untuk diperiksa tipe selama waktu kompilasi kueri. Pendekatan ini memungkinkan ekspresi kueri yang berisi tipe data SUPER untuk diketik secara dinamis selama eksekusi kueri ketika tipe aktual data di dalam kolom SUPER diakses. Juga, PartiQL beroperasi dalam mode longgar di mana inkonsistensi tipe tidak menyebabkan kegagalan tetapi mengembalikan null. Kombinasi pemrosesan kueri tanpa skema dan longgar membuat PartiQL ideal untuk aplikasi ekstrak, muat, transfer (ELT) di mana kueri SQL Anda mengevaluasi data JSON yang dicerna di kolom SUPER.

Integrasikan dengan Redshift Spectrum — Amazon Redshift mendukung berbagai aspek PartiQL saat menjalankan kueri Redshift Spectrum melalui JSON, Parket, dan format lain yang memiliki data bersarang. Redshift Spectrum hanya mendukung data bersarang yang memiliki skema. Misalnya, dengan Redshift Spectrum Anda dapat mendeklarasikan bahwa data JSON Anda memiliki atribut nested_schemaful_example dalam skema ARRAY<STRUCT>. <a:INTEGER, b:DECIMAL (5,2) > Skema atribut ini menentukan bahwa data selalu berisi array, yang berisi struktur dengan integer a dan desimal b. Jika data berubah untuk menyertakan lebih banyak atribut, jenisnya juga berubah. Sebaliknya, tipe data SUPER tidak memerlukan skema. Anda dapat menyimpan array dengan elemen struktur yang memiliki atribut atau tipe yang berbeda. Juga, beberapa nilai dapat disimpan di luar array.

Untuk informasi tentang fungsi yang mendukung tipe data SUPER, lihat berikut ini:

Pertimbangan untuk data SUPER

Saat bekerja dengan data SUPER, pertimbangkan hal berikut:

  • Gunakan driver JDBC versi 1.2.50, driver ODBC versi 1.4.17 atau yang lebih baru, dan driver Amazon Redshift Python versi 2.0.872 atau yang lebih baru.

    Untuk informasi tentang driver JDBC, lihat Mengonfigurasi koneksi JDBC.

    Untuk informasi tentang driver ODBC, lihat Mengonfigurasi koneksi ODBC.

  • Temukan contoh skema yang digunakan dalam topik berikut diDataset sampel SUPER.

  • Semua contoh kode SQL yang digunakan dalam topik berikut disertakan dengan awalan S3 yang sama untuk diunduh. Ini termasuk bahasa definisi data (DDL) dan pernyataan COPY, dan juga kueri modifikasi TPC-H tertentu yang bekerja dengan SUPER.

    Untuk melihat atau mengunduh file SQL, lakukan salah satu hal berikut:

    • Unduh file SQL tutorial SUPER dan file TPC-H.

    • Menggunakan Amazon S3 CLI, jalankan perintah berikut. Anda dapat menggunakan jalur target Anda sendiri.

      aws s3 cp s3://redshift-downloads/semistructured/tutorialscripts/semistructured-tutorial.sql /target/path aws s3 cp s3://redshift-downloads/semistructured/tutorialscripts/super_tpch_queries.sql /target/path

Untuk informasi selengkapnya tentang konfigurasi SUPER, lihatKonfigurasi SUPER.