Fusion engine adalah mesin eksekusi SQL vektorisasi yang terintegrasi dalam EMR Serverless Spark. Performanya tiga kali lebih baik dibandingkan Spark open source berdasarkan pengujian benchmark TPC-DS. Fusion engine sepenuhnya kompatibel dengan Spark open source, sehingga tidak memerlukan perubahan kode. Aktifkan fitur ini dengan mengaktifkan sakelar Use Fusion Acceleration saat membuat sesi.
Fusion engine mempercepat pekerjaan Spark SQL dan DataFrame serta meningkatkan performa untuk sebagian besar operator, ekspresi, dan tipe data.
Batasan
Fusion engine tidak mempercepat jenis pekerjaan berikut:
Resilient Distributed Dataset (RDD) jobs
Pekerjaan yang menggunakan user-defined functions (UDFs)
Format penyimpanan yang didukung
Parquet
Paimon
ORC (dukungan parsial)
Operator yang didukung
Type | Operators |
Source | FileSourceScanExec, HiveTableScanExec, BatchScanExec, InMemoryTableScanExec |
Sink | DataWritingCommandExec |
Common operation | FilterExec, ProjectExec, SortExec, UnionExec |
Aggregation | HashAggregateExec |
Join | BroadcastHashJoinExec, ShuffledHashJoinExec, SortMergeJoinExec, BroadcastNestedLoopJoinExec, CartesianProductExec |
Window | WindowExec, WindowTopK |
Exchange | ShuffleExchangeExec, ReusedExchangeExec, BroadcastExchangeExec, CoalesceExec |
Limit | GlobalLimitExec, LocalLimitExec, TakeOrderedAndProjectExec |
Subquery | SubqueryBroadcastExec |
Others | ExpandExec, GenerateExec |
Operator yang tidak didukung
Type | Operators |
Aggregation | ObjectHashAggregateExec, SortAggregateExec |
Exchange | CustomShuffleReaderExec |
Pandas | AggregateInPandasExec, FlatMapGroupsInPandasExec, ArrowEvalPythonExec, MapInPandasExec, WindowInPandasExec |
Others | CollectLimitExec, RangeExec, SampleExec |
Ekspresi yang didukung
Type | Expressions |
Comparison/Logic |
|
Arithmetic |
|
Bitwise |
|
Conditional |
|
Set |
|
String |
|
Aggregation |
|
Window |
|
Time |
|
JSON |
|
Array |
|
Map |
|
Encoding |
|
Others |
|
Tipe data yang didukung
Byte, Short, Int, dan Long
Boolean
String dan Binary
Decimal
Float dan Double
Date dan Timestamp
Tipe data yang tidak didukung
Struct
Array
Map
Aktifkan dan gunakan Fusion engine
Anda dapat mengaktifkan Fusion engine menggunakan salah satu metode berikut.
Metode 1: Aktifkan di manajemen session
Saat membuat sesi SQL, Notebook, atau Spark Thrift Server, aktifkan opsi Use Fusion Acceleration. Saat menjalankan tugas, pilih sesi yang telah diaktifkan akselerasi Fusion untuk menggunakan Fusion engine.
Untuk informasi selengkapnya, lihat Manage sessions.
Metode 2: Konfigurasikan template parameter Spark
Di konsol EMR Serverless Spark, buka Configurations > Task Templates dan tambahkan parameter terkait Fusion (spark.emr.serverless.fusion atau spark.emr.serverless.fusion.enabled) dalam template konfigurasi. Untuk daftar lengkap parameter Spark, lihat Custom Spark parameters.
Untuk informasi selengkapnya, lihat Mengelola templat konfigurasi Spark.
Metode 3: Konfigurasikan parameter Spark di DataWorks
Anda dapat mengonfigurasi parameter Spark di tingkat ruang kerja atau tingkat node.
Konfigurasi global
Konfigurasikan parameter Spark tingkat ruang kerja untuk modul DataWorks yang menjalankan tugas EMR. Tambahkan parameter spark.emr.serverless.fusion atau spark.emr.serverless.fusion.enabled dan atur nilainya menjadi true. Untuk daftar lengkap parameter Spark, lihat Custom Spark parameters.
Untuk petunjuknya, lihat Configure global Spark parameters.
Konfigurasi tingkat node
Untuk node Spark di Data Studio, konfigurasikan parameter Spark di pengaturan penjadwalan pada sisi kanan halaman pengeditan node. Tambahkan parameter spark.emr.serverless.fusion atau spark.emr.serverless.fusion.enabled dan atur nilainya menjadi true. Untuk daftar lengkap parameter Spark, lihat Custom Spark parameters.
Untuk petunjuknya, lihat Configure node Spark parameters.