全部产品
Search
文档中心

E-MapReduce:Mesin Fusion

更新时间:Jan 21, 2026

Mesin Fusion adalah mesin eksekusi SQL vektorisasi berkinerja tinggi yang terintegrasi dalam EMR Serverless Spark. Mesin ini menunjukkan performa tiga kali lebih baik dibandingkan Spark open source dalam pengujian benchmark TPC-DS dan sepenuhnya kompatibel dengannya. Anda tidak perlu mengubah kode yang sudah ada. Di EMR Serverless Spark, Anda dapat mengaktifkan mesin ini dengan mengaktifkan sakelar Use Fusion Acceleration saat membuat sesi.

Skenario yang didukung

Mesin Fusion cocok untuk pekerjaan Spark SQL dan DataFrame serta dapat meningkatkan performa sebagian besar operator, ekspresi, dan tipe data. Namun, Mesin Fusion tidak mendukung akselerasi untuk pekerjaan Resilient Distributed Dataset (RDD) atau pekerjaan yang menggunakan fungsi yang ditentukan pengguna (UDF).

Format penyimpanan

Mesin Fusion mendukung format penyimpanan data berikut:

  • Parquet

  • Paimon

  • ORC (sebagian)

Operator

Mesin Fusion memberikan akselerasi untuk sebagian besar operator umum. Tabel berikut menjelaskan operator tersebut.

Jenis

Daftar Operator

Sumber

  • FileSourceScanExec

  • HiveTableScanExec

  • BatchScanExec

  • InMemoryTableScanExec

Sink

DataWritingCommandExec

Operasi umum

  • FilterExec

  • ProjectExec

  • SortExec

  • UnionExec

Agregasi

HashAggregateExec

Gabung

  • BroadcastHashJoinExec

  • ShuffledHashJoinExec

  • SortMergeJoinExec

  • BroadcastNestedLoopJoinExec

  • CartesianProductExec

Jendela

  • WindowExec

  • WindowTopK

Pertukaran

  • ShuffleExchangeExec

  • ReusedExchangeExec

  • BroadcastExchangeExec

  • CoalesceExec

Batas

  • GlobalLimitExec

  • LocalLimitExec

  • TakeOrderedAndProjectExec

Subquery

SubqueryBroadcastExec

Lainnya

  • ExpandExec

  • GenerateExec

Ekspresi

Tabel berikut menjelaskan ekspresi yang didukung oleh Mesin Fusion.

Jenis

Daftar Ekspresi

Perbandingan/Logika

=, ==, !=, <>, <, <=, >, >=, <=>, is null, is not null, between, and, or, ||, !, negative, null if

Aritmetika

%, +, -, *, /, isnan, mod, negative, not, positive, abs, acos, acosh, asin, asinh, atan, atan2, atanh, cbrt, ceil, ceiling, cos, cosh, degrees, e, exp, floor, ln, log, log10, log2, pi, pmod, pow, power, radians, rand, random, rint, round, shiftleft, shiftright, sign, signum, sin, sqrt, tan, dan tanh

Bitwise

^, |, &, ~, bit_and, bit_count, bit_or, bit_xor, dan bit_length

Ekspresi Kondisional

case, if, dan when

Set

in dan find_in_set

Kalkulasi string

ascii, char, chr, char_length, character_length, concat, instr, lcase, lower, length, locate, lower, lpad, dan ltrim

overlay, replace, reverse, rtrim, split, split_part, substr, substring, trim, ucase, upper, like, regexp, regexp_extract, regexp_extract_all, regexp_like, regexp_replace, dan rlike

Agregasi

aggregate, approx_count_distinct, avg, collect_list, collect_set, corr, count, covar_pop, covar_samp, first, first_value, kurtosis, last, last_value, max, max_by, mean, min, regr_avgx, regr_avgy, regr_count, regr_r2

regr_intercept, regr_slope, regr_sxy, regr_sxx, regr_syy, skewness, std, stddev, stddev_pop, stddev_samp, sum, var_pop, var_samp, dan variance

Jendela

cume_dist, dense_rank, lag, lead, nth_value, ntile, percent_rank, rank, dan row_number

Waktu

add_months, current_date, current_timestamp, current_timezone, date, date_add, date_format, date_from_unix_date, date_sub, datediff, day, dayofmonth, dayofweek, dayofyear, from_unixtime, from_utc_timestamp, hour, last_day, make_date, minute, month, next_day, now, quarter, second, timestamp_micros, timestamp_millis, to_date, to_unix_timestamp, unix_seconds, unix_millis, unix_micros, weekday, weekofyear, dan year

JSON

get_json_object dan json_array_length

Array

array, array_contains, array_distinct, array_except, array_intersect, array_join, array_max, array_min, array_position, array_remove, array_repeat, array_sort, arrays_overlap, arrays_zip, element_at, exists, filter, forall, flatten, shuffle, size, dan sort_array

Map

map, get_map_value, map_from_arrays, map_keys, map_values, map_zip_with, named_struct, struct, dan str_to_map

Pengodean

crc32, hash, md5, sha1, dan sha2

Lainnya

current_catalog, current_database, greatest, least, monotonically_increasing_id, nanvl, spark_partition_id, stack, uuid, dan rand

Tipe data

Mesin Fusion mendukung tipe data berikut:

  • Byte, Short, Int, dan Long

  • Boolean

  • String dan Binary

  • Decimal

  • Float dan Double

  • Date dan Timestamp

Skenario yang tidak didukung

Operator

Jenis

Operator

Agregasi

  • ObjectHashAggregateExec

  • SortAggregateExec

Pertukaran

CustomShuffleReaderExec

Pandas

  • AggregateInPandasExec

  • FlatMapGroupsInPandasExec

  • ArrowEvalPythonExec

  • MapInPandasExec

  • WindowInPandasExec

Lainnya

  • CollectLimitExec

  • RangeExec

  • SampleExec

Tipe data

  • Struct

  • Array

  • Map