Memahami Athena MENJELASKAN hasil pernyataan - Amazon Athena

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

Memahami Athena MENJELASKAN hasil pernyataan

Topik ini memberikan panduan singkat untuk istilah operasional yang digunakan di AthenaEXPLAIN.

JELASKAN jenis keluaran pernyataan

EXPLAINoutput pernyataan dapat menjadi salah satu dari dua jenis:

  • Rencana logis - Menunjukkan rencana logis yang digunakan mesin SQL untuk mengeksekusi pernyataan. Sintaks untuk opsi iniEXPLAINatauEXPLAIN (TYPE LOGICAL).

  • Rencana terdistribusi - Menunjukkan rencana eksekusi di lingkungan terdistribusi. Output menunjukkan fragmen, yang memproses tahap. Setiap fragmen rencana diproses oleh satu atau lebih simpul. Data dapat dipertukarkan antara simpul yang memproses fragmen. Sintaks untuk opsi iniEXPLAIN (TYPE DISTRIBUTED).

    Dalam output untuk rencana terdistribusi, fragmen (tahap pemrosesan) ditunjukkan olehFragment nomor[fragment_type], tempatnomoradalah bilangan bulat berbasis-nol danfragment_typemenentukan bagaimana fragmen dijalankan oleh simpul. Jenis fragmen, yang memberikan wawasan tata letak Data Exchange, dijelaskan dalam tabel berikut.

    Jenis fragmen rencana terdistribusi
    Jenis fragmen Deskripsi
    SINGLE Fragmen dieksekusi pada satu simpul.
    HASH Fragmen dieksekusi pada sejumlah simpul tetap. Input data didistribusikan menggunakan fungsi hash.
    ROUND_ROBIN Fragmen dieksekusi pada sejumlah simpul tetap. Input data didistribusikan secara round-robin.
    BROADCAST Fragmen dieksekusi pada sejumlah simpul tetap. Input data disiarkan ke semua simpul.
    SOURCE Fragmen dijalankan pada simpul tempat perpecahan input diakses.

.exchange

Istilah terkait pertukaran menggambarkan bagaimana data dipertukarkan antara simpul pekerja. Transfer dapat berupa lokal atau remote.

LocalExchange [exchange_type]

Transfer data secara lokal dalam simpul pekerja untuk berbagai tahap kueri. Nilai untukexchange_typedapat menjadi salah satu jenis pertukaran logis atau terdistribusi seperti yang dijelaskan nanti di bagian ini.

RemoteExchange [exchange_type]

Transfer data antara simpul pekerja untuk berbagai tahap kueri. Nilai untukexchange_typedapat menjadi salah satu jenis pertukaran logis atau terdistribusi seperti yang dijelaskan nanti di bagian ini.

Jenis Pertukaran Logis

Jenis pertukaran berikut menggambarkan tindakan yang diambil selama fase pertukaran dari rencana logis.

  • GATHER— Sebuah simpul pekerja tunggal mengumpulkan output dari semua simpul pekerja lainnya. Misalnya, tahap terakhir dari kueri pilih mengumpulkan hasil dari semua simpul dan menulis hasilnya ke Amazon S3.

  • REPARTITION— Mengirim data baris ke pekerja tertentu berdasarkan skema partisi yang diperlukan untuk diterapkan ke operator berikutnya.

  • REPLICATE— Salinan data baris untuk semua pekerja.

Jenis Pertukaran Terdistribusi

Jenis pertukaran berikut menunjukkan tata letak data saat mereka dipertukarkan antara simpul dalam rencana terdistribusi.

  • HASH— Pertukaran mendistribusikan data ke beberapa tujuan menggunakan fungsi hash.

  • SINGLE— Pertukaran mendistribusikan data ke satu tujuan.

Pemindaian

Istilah berikut menjelaskan bagaimana data dipindai selama kueri.

TableScan

Memindai data sumber tabel dari Amazon S3 atau konektor Apache Hive dan berlaku pemangkasan partisi yang dihasilkan dari predikat filter.

ScanFilter

Memindai data sumber tabel dari Amazon S3 atau konektor Hive dan berlaku pemangkasan partisi yang dihasilkan dari predikat filter dan dari predikat filter tambahan tidak diterapkan melalui pemangkasan partisi.

ScanFilterProject

Pertama, memindai data sumber tabel dari Amazon S3 atau konektor Hive dan berlaku pemangkasan partisi yang dihasilkan dari predikat filter dan dari predikat filter tambahan tidak diterapkan melalui pemangkasan partisi. Kemudian, memodifikasi tata letak memori data output ke proyeksi baru untuk meningkatkan performa tahap selanjutnya.

Join

Bergabung data antara dua tabel. Bergabung dapat dikategorikan berdasarkan bergabung jenis dan jenis distribusi.

Bergabunglah dengan tipe

Bergabung jenis menentukan cara tempat bergabung operasi terjadi.

CrossJoin— Menghasilkan produk Cartesian dari dua tabel yang digabungkan.

InnerJoin— Memilih catatan yang memiliki nilai yang cocok di kedua tabel.

LeftJoin— Memilih semua catatan dari tabel kiri dan catatan yang cocok dari tabel kanan. Jika tidak ada pertandingan terjadi, hasil di sisi kanan adalah NULL.

RightJoin— Memilih semua catatan dari tabel kanan, dan catatan yang cocok dari tabel kiri. Jika tidak ada pertandingan terjadi, hasil di sisi kiri adalah NULL.

FullJoin— Memilih semua catatan di mana ada kecocokan di catatan tabel kiri atau kanan. Tabel bergabung berisi semua catatan dari kedua tabel dan mengisi NULLs untuk pertandingan hilang di kedua sisi.

catatan

Untuk alasan performa, mesin permintaan dapat menulis ulang kueri bergabung ke jenis bergabung yang berbeda untuk menghasilkan hasil yang sama. Sebagai contoh, batin bergabung kueri dengan predikat pada satu tabel dapat ditulis ulang menjadiCrossJoin. Ini mendorong predikat ke fase pemindaian tabel sehingga data yang lebih sedikit dipindai.

Bergabunglah dengan jenis distribusi

jenis distribusi menentukan bagaimana data dipertukarkan antara simpul pekerja saat bergabung operasi dilakukan.

Dipartisi— Kedua tabel kiri dan kanan hash-dipartisi di semua simpul pekerja. distribusi dipartisi mengkonsumsi lebih sedikit memori di setiap simpul. distribusi dipartisi dapat jauh lebih lambat dari direplikasi bergabung. Dipartisi bergabung cocok saat Anda bergabung dua tabel besar.

Replikasi— Satu tabel hash-dipartisi di semua simpul pekerja dan tabel lainnya direplikasi ke semua simpul pekerja untuk melakukan operasi bergabung. Distribusi direplikasi dapat jauh lebih cepat daripada dipartisi bergabung, tetapi mengkonsumsi lebih banyak memori di setiap simpul pekerja. Jika tabel yang direplikasi terlalu besar, node pekerja dapat mengalami out-of-memory kesalahan. Replikasi bergabung cocok saat salah satu tabel bergabung kecil.