資料列篩選運算式中的 PartiQL 支援 - AWS Lake Formation

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

資料列篩選運算式中的 PartiQL 支援

您可以使用 PartiQL 資料類型、運算子和彙總的子集來建構資料列篩選運算式。Lake Formation 不允許在過濾器表達式中使用任何用戶定義或標準的 PartiQL 函數。您可以使用比較運算子來比較資料行與常數 (例如,views >= 10000),但無法將資料行與其他資料行進行比較。

資料列篩選器運算式可以是簡單運算式或複合運算式。運算式的總長度必須小於 2048 個字元。

簡單的表達

一個簡單的表達式將是格式: <column name > <comparison operator ><value >

  • 資料欄名稱

    它可以是最上層資料欄、分割區資料欄或資料表結構定義中的巢狀資料欄,而且必須屬於下支援的資料類型列資料欄。

  • 比較運算子

    以下是支持的運算符:=, >, <, >=, <=, <>,!=, BETWEEN, IN, LIKE, NOT, IS [NOT] NULL

  • 所有字符串比較和LIKE模式匹配都區分大小寫。您不能在分區列上使用 IS [NOT] NULL 運算符。

  • 欄值

    「欄」值必須符合資料行名稱的資料類型。

複合表達式

複合運算式的格式為:( <simple expression >) <AND/OR >(<simple expression >)。複合表達式可以使用邏輯運算符進一步組合AND/OR

支援的資料類型

參照包含不受支援資料類型之資料AWS Glue Data Catalog表的資料列篩選器會導致錯誤。下列是對應至資料類型的資料表資料行和常數所支援的Amazon Redshift資料類型:

  • STRING, CHAR, VARCHAR

  • INT, LONG, BIGINT, FLOAT, DECIMAL, DOUBLE

  • BOOLEAN

  • STRUCT

如需 Amazon Redshift 中資料類型的詳細資訊,請參閱 Amazon Redshift 資庫開發人員指南中的資料類型

列篩選運算式

以下是具有欄之資料表的有效資料列篩選運算式範例: country (String), id (Long), year (partition column of type Integer), month (partition column of type Integer)

  • year > 2010 and country != 'US'

  • (year > 2010 and country = 'US') or (month < 8 and id > 23)

  • (country between 'Z' and 'U') and (year = 2018)

  • (country like '%ited%') and (year > 2000)

以下是具有巢狀資料欄之資料表之資料列篩選運算式的有效範例:year > 2010 and customer.customerId <> 1

定義巢狀資料列層級運算式時,不應參考資料分割資料行下的巢狀欄位。

字符串常量必須用單引號括起來。

保留的關鍵字

如果您的資料列篩選運算式包含 PartiQL 關鍵字,您就會收到剖析錯誤,因為資料欄名稱可能會與關鍵字衝突。發生這種情況時,請使用雙引號逸出列名。保留關鍵字的一些例子是「第一」,「最後」,「asc」,「缺少」。如需保留關鍵字的清單,請參閱 PartiQL 規範。

PartiQL 參考

如需有關 PartiQL 的詳細資訊,請參閱https://partiql.org/