全部产品
Search
文档中心

E-MapReduce:Mesin Fusion

更新时间:Jun 24, 2025

Mesin Fusion adalah mesin eksekusi SQL vektor berperforma tinggi yang terintegrasi dalam E-MapReduce (EMR) Serverless Spark. Mesin ini tiga kali lebih cepat dibandingkan Apache Spark dalam pengujian benchmark TPC-DS dan sepenuhnya kompatibel dengan Apache Spark, sehingga tidak diperlukan modifikasi pada kode yang ada. Untuk mengaktifkan Mesin Fusion, cukup nyalakan sakelar Use Fusion Acceleration saat membuat sesi.

Tindakan pencegahan

Mesin Fusion menggunakan memori di luar heap dari Spark. Saat membuat sesi, Anda harus mengonfigurasi spark.memory.offHeap.enabled=true untuk parameter Spark Configuration agar memori di luar heap Spark dapat diaktifkan. Anda juga dapat mengonfigurasi parameter spark.memory.offHeap.size untuk menentukan ukuran memori di luar heap sesuai kebutuhan bisnis Anda.

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

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

Ekspresi

Perbandingan/Logika

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

Algoritma

%, +, -, *, /, 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

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, dan regr_2

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

Enkode

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

Skema 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