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.

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 SUPER data dan bahasa PartiQL, Amazon Redshift memperluas kemampuan gudang data untuk berintegrasi dengan keduanya dan Tanpa sumber data. SQL SQL 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 SUPER data dan Amazon Redshift Spectrum.

Gunakan tipe SUPER data jika Anda perlu menyisipkan atau memperbarui batch kecil JSON data dengan latensi rendah. Selain itu, gunakan SUPER saat 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 SUPER data

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

Penyisipan JSON data yang cepat dan fleksibel — Amazon Redshift mendukung transaksi cepat yang dapat JSON mengurai 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 yang masuk JSON adalah dari bentuk {“a”:.., “b”:.., “c” “...,...}. Anda dapat mempercepat kinerja penyisipan berkali-kali dengan menyimpan yang masuk JSON ke dalam tabel TJ dengan satu SUPER kolom S, alih-alih menyimpannya ke dalam tabel konvensional TR dengan kolom “a', 'b', “c ', dan seterusnya. Ketika ada ratusan atribut di dalamnyaJSON, keunggulan kinerja tipe SUPER data menjadi substansif.

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

Kueri fleksibel untuk penemuan — Setelah menyimpan data semi-terstruktur (sepertiJSON) ke dalam nilai SUPER data, 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, SUPER Anda dapat menggunakan tampilan terwujud PartiQL untuk mengintrospeksi data dan merobeknya menjadi tampilan 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 penyajian skema konvensional dari data.

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

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

Untuk informasi tentang tipe SUPER data, lihatSUPERjenis.

Untuk contoh menggunakan tipe SUPER data, lihat subbagian untuk topik ini, dimulai denganSUPERsampel dataset.

Konsep untuk penggunaan tipe SUPER data

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

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

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

SUPERKolom tidak memerlukan modifikasi skema saat menelan struktur skema yang tidak beraturan. JSON Misalnya, saat menganalisis aliran klik, Anda awalnya menyimpan di SUPER kolom “klik” struktur 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 SUPER data adalah format biner yang membutuhkan ruang lebih kecil daripada JSON nilai dalam bentuk tekstualnya. Ini memungkinkan konsumsi lebih cepat dan pemrosesan runtime SUPER nilai pada kueri.

SUPERData kueri dengan PartiQL — PartiQL adalah ekstensi yang kompatibel ke belakang SQL dari -92 yang digunakan banyak layanan saat ini. AWS Dengan penggunaan PartiQL, konstruksi yang SQL sudah dikenal dengan mulus menggabungkan akses ke data klasik, SQL tabular, 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 SQL dari mana data kolom bersarang dan tanpa skema adalah warga negara kelas satu. SUPER PartiQL tidak memerlukan semua ekspresi kueri untuk diperiksa tipe selama waktu kompilasi kueri. Pendekatan ini memungkinkan ekspresi kueri yang berisi tipe SUPER data yang akan diketik secara dinamis selama eksekusi kueri ketika jenis sebenarnya dari data di dalam SUPER kolom 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 mengekstrak, memuat, mentransfer (ELT) aplikasi di mana SQL kueri Anda mengevaluasi data yang dicerna dalam JSON kolom. SUPER

Integrasikan dengan Redshift Spectrum — Amazon Redshift mendukung berbagai aspek PartiQL saat menjalankan JSON kueri Redshift Spectrum over, Parquet, dan format lain yang memiliki data bersarang. Redshift Spectrum hanya mendukung data bersarang yang memiliki skema. Misalnya, dengan Redshift Spectrum Anda dapat mendeklarasikan bahwa JSON data Anda memiliki atribut nested_schemaful_example dalam skema < <a:, b: (5,2) >>. ARRAY STRUCT INTEGER DECIMAL 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 SUPER data 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 SUPER data, lihat berikut ini:

Pertimbangan untuk data SUPER

Saat bekerja dengan SUPER data, pertimbangkan hal berikut:

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

    Untuk informasi tentang JDBC driver, lihat Mengkonfigurasi JDBC sambungan.

    Untuk informasi tentang ODBC driver, lihat Mengkonfigurasi ODBC sambungan.

  • Temukan contoh skema yang digunakan dalam topik berikut diSUPERsampel dataset.

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

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

    • Unduh file SUPERtutorial dan SQL file TPC -H.

    • Menggunakan Amazon S3CLI, 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 SUPER konfigurasi, lihatSUPERkonfigurasi.