Kueri tabel yang dikonfigurasi menggunakan template analisis SQL - AWS Clean Rooms

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

Kueri tabel yang dikonfigurasi menggunakan template analisis SQL

Prosedur ini menunjukkan cara menggunakan templat analisis di AWS Clean Rooms konsol untuk menanyakan tabel yang dikonfigurasi dengan aturan Analisis kustom.

Untuk menggunakan template analisis SQL untuk menanyakan tabel yang dikonfigurasi dengan aturan Analisis kustom
  1. Masuk ke AWS Management Console dan buka AWS Clean Rooms konsol di https://console.aws.amazon.com/cleanrooms.

  2. Di panel navigasi kiri, pilih Kolaborasi.

  3. Pilih kolaborasi yang memiliki status kemampuan anggota Anda dari Menjalankan kueri.

  4. Pada tab Analisis, di bawah bagian Tabel, lihat tabel dan jenis aturan analisis terkait (Aturan analisis kustom).

    catatan

    Jika Anda tidak melihat tabel yang Anda harapkan dalam daftar, mungkin karena alasan berikut:

  5. Di bawah bagian Analisis, untuk mode Analisis, pilih Jalankan templat analisis dan kemudian pilih templat analisis dari daftar dropdown.

  6. Parameter membentuk template analisis SQL akan secara otomatis terisi dalam Definisi.

  7. (Hanya mesin analitik percikan) Tentukan jenis Pekerja yang didukung dan Jumlah pekerja.

    Gunakan tabel berikut untuk menentukan jenis dan nomor atau pekerja yang Anda butuhkan untuk kasus penggunaan Anda.

    Jenis pekerja vCPU Memori (GB) Penyimpanan (GB) Jumlah pekerja Total Unit Pemrosesan Kamar Bersih (CRPU)
    CR.1X (standar) 4 30 100 4 8
    128 256
    CR.4X 16 120 400 4 32
    32 256
    catatan

    Jenis pekerja yang berbeda dan jumlah pekerja memiliki biaya terkait. Untuk mempelajari lebih lanjut tentang harga, lihat AWS Clean Rooms harga.

  8. (Hanya mesin analitik percikan) Tentukan properti Spark yang didukung.

    1. Pilih Tambahkan properti Spark.

    2. Pada kotak dialog properti Spark, pilih nama Properti dari daftar dropdown dan masukkan Nilai.

    Tabel berikut memberikan definisi untuk setiap properti.

    Untuk informasi selengkapnya tentang properti Spark, lihat Spark Properties di dokumentasi Apache Spark.

    Nama Properti Deskripsi nilai default

    Spark.Task.MaxFailures

    Mengontrol berapa kali berturut-turut tugas dapat gagal sebelum pekerjaan gagal. Membutuhkan nilai yang lebih besar dari atau sama dengan 1. Jumlah percobaan ulang yang diizinkan sama dengan nilai ini dikurangi 1. Hitungan kegagalan diatur ulang jika ada upaya yang berhasil. Kegagalan di berbagai tugas tidak menumpuk menuju batas ini.

    4

    spark.sql.file. maxPartitionBytes

    Menetapkan jumlah maksimum byte untuk dikemas ke dalam satu partisi ketika membaca dari sumber berbasis file seperti Parquet, JSON, dan ORC.

    128MB

    Spark.hadoop.fs.s3.maxRetries

    Menetapkan jumlah maksimum percobaan ulang untuk operasi file Amazon S3.

    spark.network.timeout

    Menetapkan batas waktu default untuk semua interaksi jaringan. Mengganti pengaturan batas waktu berikut jika tidak dikonfigurasi:

    • spark.storage. blockManagerHeartbeatTimeoutMs

    • spark.shuffle.io.connectionTimeout

    • Spark.rpc.askTimeout

    • Spark.rpc.lookupTimeout

    Akan Ditentukan Kemudian

    spark.rdd.compress

    Menentukan apakah untuk mengompres partisi RDD serial menggunakan spark.io.compression.codec. Berlaku StorageLevel untuk.MEMORY_ONLY_SER di Java dan Scala, atau .MEMORY_ONLY dengan Python. StorageLevel Mengurangi ruang penyimpanan tetapi membutuhkan waktu pemrosesan CPU tambahan.

    SALAH

    spark.shuffle.spill.compress

    Menentukan apakah untuk mengompres data tumpahan shuffle menggunakan spark.io.compression.codec.

    BETUL

    spark.sql.adaptif. advisoryPartitionSizeInBytes

    Menetapkan ukuran target dalam byte untuk partisi acak selama pengoptimalan adaptif ketika spark.sql.adaptive.enabled benar. Mengontrol ukuran partisi saat menggabungkan partisi kecil atau memisahkan partisi miring.

    (nilai spark.sql.adaptive.shuffle. targetPostShuffleInputSize)

    spark.sql.adaptif. autoBroadcastJoinAmbang

    Menetapkan ukuran tabel maksimum dalam byte untuk penyiaran ke node pekerja selama bergabung. Berlaku hanya dalam kerangka adaptif. Menggunakan nilai default yang sama seperti spark.sql. autoBroadcastJoinAmbang batas. Setel ke -1 untuk menonaktifkan penyiaran.

    (tidak ada)

    spark.sql.adaptive.coalescepartitions.enabled

    Menentukan apakah akan menggabungkan partisi shuffle bersebelahan berdasarkan spark.sql.adaptive. advisoryPartitionSizeInBytes untuk mengoptimalkan ukuran tugas. Membutuhkan spark.sql.adaptive.enabled agar benar.

    BETUL

    Spark.sql.adaptive.CoalescePartitions. initialPartitionNum

    Mendefinisikan jumlah awal partisi shuffle sebelum penggabungan. Memerlukan spark.sql.adaptive.enabled dan spark.sql.adaptive.CoalescePartitions.enabled untuk menjadi true. Default ke nilai spark.sql.shuffle.partitions.

    (tidak ada)

    Spark.sql.adaptive.CoalescePartitions. minPartitionSize

    Menetapkan ukuran minimum untuk partisi shuffle yang digabungkan untuk mencegah partisi menjadi terlalu kecil selama optimasi adaptif.

    1 MB

    spark.sql.adaptive.coalescepartitions.parallelismFirst

    Menentukan apakah untuk menghitung ukuran partisi berdasarkan paralelisme cluster bukan spark.sql.adaptive. advisoryPartitionSizeInBytes selama penggabungan partisi. Menghasilkan ukuran partisi yang lebih kecil dari ukuran target yang dikonfigurasi untuk memaksimalkan paralelisme. Kami merekomendasikan pengaturan ini ke false pada cluster sibuk untuk meningkatkan pemanfaatan sumber daya dengan mencegah tugas-tugas kecil yang berlebihan.

    BETUL

    spark.sql.adaptive.enabled

    Menentukan apakah akan mengaktifkan eksekusi kueri adaptif untuk mengoptimalkan kembali rencana kueri selama eksekusi kueri, berdasarkan statistik runtime yang akurat.

    BETUL

    spark.sql.adaptif. forceOptimizeSkewedBergabunglah

    Menentukan apakah akan memaksa mengaktifkan OptimizeSkewedJoin bahkan jika memperkenalkan shuffle tambahan.

    SALAH

    spark.sql.adaptif. localShuffleReader.diaktifkan

    Menentukan apakah akan menggunakan pembaca shuffle lokal ketika partisi shuffle tidak diperlukan, seperti setelah mengonversi dari gabungan sort-merge ke broadcast-hash bergabung. Membutuhkan spark.sql.adaptive.enabled agar benar.

    BETUL

    spark.sql.adaptif. maxShuffledHashJoinLocalMapThreshold

    Menetapkan ukuran partisi maksimum dalam byte untuk membangun peta hash lokal. Memprioritaskan gabungan hash yang diacak daripada gabungan sort-merge saat:

    • Nilai ini sama atau melebihi spark.sql.adaptive. advisoryPartitionSizeInBytes

    • Semua ukuran partisi berada dalam batas ini

    Mengesampingkan spark.sql.join. preferSortMergeBergabunglah dengan pengaturan.

    0 byte

    spark.sql.adaptif. optimizeSkewsInRebalancePartitions.diaktifkan

    Menentukan apakah akan mengoptimalkan partisi shuffle miring dengan membaginya menjadi partisi yang lebih kecil berdasarkan spark.sql.adaptive. advisoryPartitionSizeInBytes. Membutuhkan spark.sql.adaptive.enabled agar benar.

    BETUL

    spark.sql.adaptif. rebalancePartitionsSmallPartitionFactor

    Mendefinisikan faktor ambang ukuran untuk menggabungkan partisi selama pemisahan. Partisi yang lebih kecil dari faktor ini dikalikan dengan spark.sql.adaptive. advisoryPartitionSizeInBytes digabung.

    0,2

    Spark.sql.adaptive.skewjoin.enabled

    Menentukan apakah untuk menangani data miring dalam bergabung diacak dengan memisahkan dan opsional mereplikasi partisi miring. Berlaku untuk gabungan hash sort-merge dan shuffled. Membutuhkan spark.sql.adaptive.enabled agar benar.

    BETUL

    Spark.sql.adaptive.skewJoin. skewedPartitionFactor

    Menentukan faktor ukuran yang menentukan kemiringan partisi. Partisi miring ketika ukurannya melebihi keduanya:

    • Faktor ini dikalikan dengan ukuran partisi median

    • Nilai spark.sql.adaptive.skewJoin. skewedPartitionThresholdInBytes

    5

    Spark.sql.adaptive.skewJoin. skewedPartitionThresholdInBytes

    Menetapkan ambang ukuran dalam byte untuk mengidentifikasi partisi miring. Partisi miring ketika ukurannya melebihi keduanya:

    • Ambang batas ini

    • Ukuran partisi median dikalikan dengan spark.sql.adaptive.skewJoin. skewedPartitionFactor

    Kami merekomendasikan pengaturan nilai ini lebih besar dari spark.sql.adaptive. advisoryPartitionSizeInBytes.

    256MB

    spark.sql. autoBroadcastJoinAmbang

    Menetapkan ukuran tabel maksimum dalam byte untuk penyiaran ke node pekerja selama bergabung. Setel ke -1 untuk menonaktifkan penyiaran.

    10MB

    Spark.Sql.BroadcastTimeout

    Mengontrol periode batas waktu dalam hitungan detik untuk operasi siaran selama siaran bergabung.

    300 detik

    spark.sql.cbo.enabled

    Menentukan apakah akan mengaktifkan optimasi berbasis biaya (CBO) untuk estimasi statistik rencana.

    SALAH

    Spark.sql.cbo.joinreorder.dp.star.filter

    Menentukan apakah akan menerapkan heuristik filter star-join selama enumerasi bergabung berbasis biaya.

    SALAH

    Spark.sql.cbo.joinreorder.dp.Threshold

    Menetapkan jumlah maksimum node bergabung yang diizinkan dalam algoritma pemrograman dinamis.

    12

    Spark.sql.cbo.joinreOrder.enabled

    Menentukan apakah akan mengaktifkan pengurutan ulang bergabung dalam optimasi berbasis biaya (CBO).

    SALAH

    Spark.sql.cbo.planstats.enabled

    Menentukan apakah untuk mengambil jumlah baris dan statistik kolom dari katalog selama pembuatan rencana logis.

    SALAH

    spark.sql.cbo. starSchemaDetection

    Menentukan apakah akan mengaktifkan pengurutan ulang gabungan berdasarkan deteksi skema bintang.

    SALAH

    Spark.Sql.CrossJoin.diaktifkan

    spark.sql.file. maxPartitionNum

    Menetapkan jumlah maksimum target partisi file split untuk sumber berbasis file (Parket, JSON, dan ORC). Rescales partisi ketika hitungan awal melebihi nilai ini. Ini adalah target yang disarankan, bukan batas yang dijamin.

    (tidak ada)

    spark.sql.file. maxRecordsPerBerkas

    Menetapkan jumlah maksimum catatan untuk menulis ke satu file. Tidak ada batasan yang berlaku saat disetel ke nol atau nilai negatif.

    0

    spark.sql.file. minPartitionNum

    Menetapkan jumlah minimum target partisi file terpisah untuk sumber berbasis file (Parket, JSON, dan ORC). Default ke spark.sql. leafNodeDefaultParalelisme. Ini adalah target yang disarankan, bukan batas yang dijamin.

    (tidak ada)

    spark.sql. inMemoryColumnarStorage.batchsize

    Mengontrol ukuran batch untuk caching kolumnar. Meningkatkan ukuran meningkatkan pemanfaatan memori dan kompresi tetapi meningkatkan risiko out-of-memory kesalahan.

    10000

    spark.sql. inMemoryColumnarpenyimpanan.dikompresi

    Menentukan apakah akan secara otomatis memilih codec kompresi untuk kolom berdasarkan statistik data.

    BETUL

    spark.sql. inMemoryColumnarPenyimpanan. enableVectorizedReader

    Menentukan apakah untuk mengaktifkan pembacaan vektor untuk caching kolumnar.

    BETUL

    spark.sql.legacy. allowHashOnMapType

    Menentukan apakah untuk memungkinkan operasi hash pada struktur data tipe peta. Pengaturan lama ini mempertahankan kompatibilitas dengan penanganan jenis peta versi Spark yang lebih lama.

    spark.sql.legacy. allowNegativeScaleOfDecimal

    Menentukan apakah untuk memungkinkan nilai skala negatif dalam definisi tipe desimal. Setelan lama ini mempertahankan kompatibilitas dengan versi Spark lama yang mendukung skala desimal negatif.

    spark.sql.legacy. castComplexTypesToString.diaktifkan

    Menentukan apakah akan mengaktifkan perilaku warisan untuk casting tipe kompleks untuk string. Menjaga kompatibilitas dengan aturan konversi tipe versi Spark yang lebih lama.

    spark.sql.legacy. charVarcharAsTali

    Menentukan apakah untuk memperlakukan jenis CHAR dan VARCHAR sebagai tipe STRING. Pengaturan lama ini menyediakan kompatibilitas dengan penanganan tipe string versi Spark yang lebih lama.

    spark.sql.legacy. createEmptyCollectionUsingStringType

    Menentukan apakah untuk membuat koleksi kosong menggunakan elemen tipe string. Setelan lama ini mempertahankan kompatibilitas dengan perilaku inisialisasi koleksi versi Spark yang lebih lama.

    spark.sql.legacy. exponentLiteralAsDesimal. Diaktifkan

    Menentukan apakah untuk menafsirkan literal eksponensial sebagai tipe desimal. Pengaturan lama ini mempertahankan kompatibilitas dengan penanganan literal numerik versi Spark yang lebih lama.

    spark.sql.legacy.json. allowEmptyString.diaktifkan

    Menentukan apakah untuk mengizinkan string kosong dalam pengolahan JSON. Pengaturan lama ini mempertahankan kompatibilitas dengan perilaku penguraian JSON versi Spark yang lebih lama.

    spark.sql.legacy.parquet.int96 RebaseModelRead

    Menentukan apakah akan menggunakan mode rebase INT96 stempel waktu lama saat membaca file Parket. Pengaturan lama ini mempertahankan kompatibilitas dengan penanganan stempel waktu versi Spark yang lebih lama.

    spark.sql.legacy. timeParserPolicy

    Mengontrol perilaku penguraian waktu untuk kompatibilitas mundur. Pengaturan lama ini menentukan bagaimana stempel waktu dan tanggal diuraikan dari string.

    Spark.sql.legacy.typeCoercion. datetimeToString.diaktifkan

    Menentukan apakah akan mengaktifkan perilaku pemaksaan tipe warisan saat mengonversi nilai datetime ke string. Menjaga kompatibilitas dengan aturan konversi datetime versi Spark yang lebih lama.

    spark.sql. maxSinglePartitionByte

    Menetapkan ukuran partisi maksimum dalam byte. Perencana memperkenalkan operasi shuffle untuk partisi yang lebih besar untuk meningkatkan paralelisme.

    128m

    Spark.sql.metadatacache TTLSeconds

    Mengontrol time-to-live (TTL) untuk cache metadata. Berlaku untuk metadata file partisi dan cache katalog sesi. Membutuhkan:

    • Nilai positif lebih besar dari nol

    • Spark.sql.CatalogImplementation diatur ke sarang

    • spark.sql.hive. filesourcePartitionFileCacheSize lebih besar dari nol

    • spark.sql.hive. manageFilesourcePartitions disetel ke true

    -1000ms

    spark.sql.optimizer. collapseProjectAlwaysSebaris

    Menentukan apakah untuk menciutkan proyeksi yang berdekatan dan ekspresi inline, bahkan ketika itu menyebabkan duplikasi.

    SALAH

    spark.sql.optimizer. dynamicPartitionPruning.diaktifkan

    Menentukan apakah untuk menghasilkan predikat untuk kolom partisi yang digunakan sebagai kunci bergabung.

    BETUL

    spark.sql.optimizer. enableCsvExpressionOptimasi

    Menentukan apakah akan mengoptimalkan ekspresi CSV dalam pengoptimal SQL dengan memangkas kolom yang tidak perlu dari operasi from_csv.

    BETUL

    spark.sql.optimizer. enableJsonExpressionOptimasi

    Menentukan apakah untuk mengoptimalkan ekspresi JSON dalam pengoptimal SQL dengan:

    • Memangkas kolom yang tidak perlu dari operasi from_json

    • Menyederhanakan kombinasi from_json dan to_json

    • Mengoptimalkan operasi named_struct

    BETUL

    Spark.sql.optimizer.excludedrules

    Mendefinisikan aturan pengoptimal untuk dinonaktifkan, diidentifikasi dengan nama aturan yang dipisahkan koma. Beberapa aturan tidak dapat dinonaktifkan karena diperlukan untuk kebenaran. Pengoptimal mencatat aturan mana yang berhasil dinonaktifkan.

    (tidak ada)

    Spark.sql.Optimizer.Runtime.BloomFilter. applicationSideScanSizeThreshold

    Menetapkan ukuran pemindaian agregat minimum dalam byte yang diperlukan untuk menyuntikkan filter Bloom di sisi aplikasi.

    10GB

    Spark.sql.Optimizer.Runtime.BloomFilter. creationSideThreshold

    Mendefinisikan ambang batas ukuran maksimum untuk menyuntikkan filter Bloom di sisi pembuatan.

    10MB

    Spark.sql.Optimizer.Runtime.BloomFilter.enabled

    Menentukan apakah akan menyisipkan filter Bloom untuk mengurangi data shuffle ketika satu sisi gabungan shuffle memiliki predikat selektif.

    BETUL

    Spark.sql.Optimizer.Runtime.BloomFilter. expectedNumItems

    Mendefinisikan jumlah default item yang diharapkan dalam filter Bloom runtime.

    1000000

    Spark.sql.Optimizer.Runtime.BloomFilter. maxNumBits

    Menetapkan jumlah maksimum bit yang diizinkan dalam filter Bloom runtime.

    67108864

    Spark.sql.Optimizer.Runtime.BloomFilter. maxNumItems

    Menetapkan jumlah maksimum item yang diharapkan yang diizinkan dalam filter Bloom runtime.

    4000000

    spark.sql.optimizer.runtime.bloomfilter.number.threshold

    Membatasi jumlah maksimum filter runtime non-DPP yang diizinkan per kueri untuk mencegah out-of-memory kesalahan pada driver.

    10

    spark.sql.optimizer.runtime.bloomfilter.numbits

    Mendefinisikan jumlah default bit yang digunakan dalam filter Bloom runtime.

    8388608

    spark.sql.optimizer.runtime. rowlevelOperationGroupFilter.enabled

    Menentukan apakah akan mengaktifkan penyaringan grup runtime untuk operasi tingkat baris. Memungkinkan sumber data untuk:

    • Pangkas seluruh kelompok data (seperti file atau partisi) menggunakan filter sumber data

    • Jalankan kueri runtime untuk mengidentifikasi catatan yang cocok

    • Buang grup yang tidak perlu untuk menghindari penulisan ulang yang mahal

    Pembatasan:

    • Tidak semua ekspresi dapat dikonversi ke filter sumber data

    • Beberapa ekspresi memerlukan evaluasi Spark (seperti subquery)

    BETUL

    Spark.Sql.Optimizer.RuntimeFilter. semiJoinReduction.diaktifkan

    Menentukan apakah akan menyisipkan semi-join untuk mengurangi data shuffle ketika salah satu sisi gabungan shuffle memiliki predikat selektif.

    SALAH

    Spark.sql.parquet.AggregatePushdown

    Menentukan apakah akan menekan agregat ke Parket untuk optimasi. Mendukung:

    • MIN dan MAX untuk jenis boolean, integer, float, dan tanggal

    • COUNT untuk semua tipe data

    Melempar pengecualian jika statistik hilang dari footer file Parket apa pun.

    SALAH

    spark.sql.parket. columnarReaderBatchUkuran

    Mengontrol jumlah baris di setiap batch pembaca vektor Parket. Pilih nilai yang menyeimbangkan overhead kinerja dan penggunaan memori untuk mencegah out-of-memory kesalahan.

    4096

    Spark.sql.Session.Timezone

    Mendefinisikan zona waktu sesi untuk menangani stempel waktu dalam literal string dan konversi objek Java. Menerima:

    • Berbasis wilayah IDs dalam area/city format (seperti Amerika/Los_Angeles)

    • Offset zona dalam format (+/-) HH, (+/-) HH: mm, atau (+/-) HH: mm: SS (seperti -08 atau + 01:00)

    • UTC atau Z sebagai alias untuk + 00:00

    (nilai zona waktu lokal)

    spark.sql.shuffle.partisi

    Menetapkan jumlah default partisi untuk pengocokan data selama bergabung atau agregasi. Tidak dapat diubah antara restart kueri streaming terstruktur dari lokasi pos pemeriksaan yang sama.

    200

    spark.sql. shuffledHashJoinFaktor

    Mendefinisikan faktor perkalian yang digunakan untuk menentukan kelayakan bergabung hash shuffle. Gabungan hash shuffle dipilih ketika ukuran data sisi kecil dikalikan dengan faktor ini kurang dari ukuran data sisi besar.

    3

    spark.sql.sources. parallelPartitionDiscovery.ambang

    Menetapkan jumlah maksimum jalur untuk daftar file sisi driver dengan sumber berbasis file (Parket, JSON, dan ORC). Ketika terlampaui selama penemuan partisi, file terdaftar menggunakan pekerjaan terdistribusi Spark terpisah.

    32

    spark.sql.statistics.histogram.enabled

    Menentukan apakah akan menghasilkan histogram equi-height selama perhitungan statistik kolom untuk meningkatkan akurasi estimasi. Membutuhkan pemindaian tabel tambahan di luar yang dibutuhkan untuk statistik kolom dasar.

    SALAH

  9. Pilih Jalankan.

    catatan

    Anda tidak dapat menjalankan kueri jika anggota yang dapat menerima hasil belum mengonfigurasi setelan hasil kueri.

  10. Lanjutkan untuk menyesuaikan parameter dan jalankan kueri Anda lagi, atau pilih tombol + untuk memulai kueri baru di tab baru.