透過下推功能改善效能 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

透過下推功能改善效能

Spark 連接器會自動套用述詞和查詢下推功能,以針對效能進行最佳化。此支援表示如果您在查詢中使用支援的函數,Spark 連接器會將函數轉換為SQL查詢,並在 Amazon Redshift 中執行查詢。此最佳化可減少所擷取的資料,因此 Apache Spark 可以處理較少的資料,獲得較好的效能。依預設,系統會自動啟動下推功能。若要加以停用,請將 autopushdown 設定為 false。

import sqlContext.implicits._val sample= sqlContext.read .format("io.github.spark_redshift_community.spark.redshift") .option("url",jdbcURL ) .option("tempdir", tempS3Dir) .option("dbtable", "event") .option("autopushdown", "false") .load()

下推功能支援下列函數。如果您使用的函數不在此清單中,Spark 連接器會在 Spark 中執行此函數,而不是在 Amazon Redshift 中執行,因此無法獲得最佳效能。如需 Spark 中函數的完整清單,請參閱內建函數

  • 彙總函數

    • avg

    • count

    • max

    • min

    • sum

    • stddev_samp

    • stddev_pop

    • var_samp

    • var_pop

  • 布林值運算子

    • in

    • isnull

    • isnotnull

    • contains

    • endswith

    • startswith

  • 邏輯運算子

    • 以及

    • not (or !)

  • 數學函式

    • +

    • -

    • *

    • /

    • - (unary)

    • abs

    • acos

    • asin

    • atan

    • ceil

    • cos

    • exp

    • floor

    • greatest

    • least

    • log10

    • pi

    • pow

    • round

    • sin

    • sqrt

    • tan

  • 其他函數

    • cast

    • coalesce

    • decimal

    • in

  • 關係運算子

    • !=

    • =

    • >

    • >=

    • <

    • <=

  • 字串函數

    • ascii

    • lpad

    • rpad

    • translate

    • upper

    • lower

    • length

    • trim

    • ltrim

    • rtrim

    • like

    • substring

    • concat

  • 日期和時間函數

    • add_months

    • date

    • date_add

    • date_sub

    • date_trunc

    • timestamp

    • trunc

  • 數學運算

    • CheckOverflow

    • PromotePrecision

  • 關係運算

    • Aliases (例如 AS)

    • CaseWhen

    • Distinct

    • InSet

    • Joins 和 cross joins

    • 限制

    • Unions, union all

    • ScalarSubquery

    • Sorts (遞增和遞減)

    • UnscaledValue