日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

內建函數概述

更新時間:

MaxCompute自身預置了諸多函數,可以滿足大部分業務場景的數據處理需求。本文為您介紹MaxCompute提供的函數類型及函數使用相關說明。

背景信息

MaxCompute預置的函數類型如下。

函數類型

說明

日期與時間函數

支持處理DATE、DATETIME、TIMESTAMP等日期類型數據,實現加減日期、計算日期差值、提取日期字段、獲取當前時間、轉換日期格式等業務處理能力。

數學函數

支持處理BIGINT、DOUBLE、DECIMAL、FLOAT等數值類型數據,實現轉換進制、數學運算、四舍五入、獲取隨機數等業務處理能力。

窗口函數

支持在指定的開窗列中,實現求和、求最大最小值、求平均值、求中間值、數值排序、數值偏移、抽樣等業務處理能力。

聚合函數

支持將多條輸入記錄聚合成一條輸出值,實現求和、求平均值、求最大最小值、求平均值、參數聚合、字符串連接等業務處理能力。

字符串函數

支持處理STRING類型字符串,實現截取字符串、替換字符串、查找字符串、轉換大小寫、轉換字符串格式等業務處理能力。

復雜類型函數

支持處理MAP、ARRAY、STRUCT及JSON類型數據,實現去重元素、聚合元素、元素排序、合并元素等業務處理能力。其中JSON函數的使用限制請參見JSON函數的使用限制

加密函數

支持處理STRING、BINARY類型的表數據,實現加密、解密等業務處理能力。

其他函數

除上述函數之外,提供支持其他業務場景的函數。

各類型函數與開源函數的對照關系,請參見與Hive、MySQL、Oracle內建函數對照表

注意事項

在使用內建函數時,需要注意:

  • 內建函數的入參類型、入參數量、函數格式必須滿足函數語法要求,否則MaxCompute無法成功解析函數,SQL運行會報錯。

  • 如果內建函數的入參涉及2.0新數據類型(例如TINYINT、SMALLINT、INT、FLOAT、VARCHAR、TIMESTAMP或BINARY),您需要打開2.0新數據類型開關,否則運行會報錯。開關打開方式如下:

    • Session級別:您需要在SQL語句前加上set odps.sql.type.system.odps2=true;,與SQL語句一起提交執行。該配置僅對本次運行的SQL有效。

    • Project級別:Project Owner可根據需要對MaxCompute項目進行設置,等待10~15分鐘后才會生效。該配置對后續運行的所有SQL有效。

      setproject odps.sql.type.system.odps2=true;
  • 當MaxCompute項目打開2.0新數據類型開關時,部分隱式類型轉換會被禁用,包括STRING轉換為BIGINT、STRING轉換為DATETIME、DOUBLE轉換為BIGINT、DECIMAL轉換為DOUBLE、DECIMAL轉換為BIGINT,都有精度損失或報錯的風險。此時,您可以通過CAST函數執行強制轉換解決該問題,或關閉2.0新數據類型開關。

  • 當自定義函數的名稱與內建函數的名稱相同時,自定義函數會覆蓋同名的內建函數。例如,MaxCompute中存在一個名稱為CONCAT的自定義函數,則系統默認會調用自定義的CONCAT,不會調用內建函數CONCAT。如果您希望調用內建函數,需要在內建函數前增加::符號,例如select ::concat('ab', 'c');

  • 如果MaxCompute項目的全局屬性設置不同,內建函數運行的結果可能會不一致,您可以通過setproject;命令查看項目的全局屬性信息。

JSON函數的使用限制

  • 目前支持的開發工具包括odpscmd客戶端和Studio,暫不支持DataWorks,Dataphin等外圍生態,如果需要跟外部系統做組合使用時,請先確認后再使用。使用odpscmd客戶端和Studio時需要關注以下內容。

    使用odpscmd客戶端

    使用Studio

    • 需要將客戶端升級到最新版本,否則無法使用desc json_table命令。

    • 需要將客戶端安裝路徑下的conf\odps_config.ini文件中的參數use_instance_tunnel設置為false,否則查詢會報錯

    Studio只支持查詢JSON類型的操作,不支持上傳、下載JSON類型數據。

  • 如果表存在其他引擎讀取情況,比如Hologres等,目前不支持讀取JSON數據類型。

  • 暫不支持對一張表新增JSON列。

  • 暫不支持對JSON類型的比較操作,也不支持對JSON類型進行ORDER BYGROUP BY或作為JOIN的key等。

  • 目前JSON NUMBER的整數和小數分別使用BIGINT和DOUBLE類型進行存儲。當整數部分超出BIGINT范圍時會溢出,小數轉為DOUBLE時會損失精度。

  • 生成JSON類型數據所用的字符串里不支持UNICODE\u0000

  • Java UDF和Python UDF暫不支持JSON類型。

  • 目前JSON類型不支持Cluster表。

字符串函數的使用限制

以下函數只支持英文字符的轉換:

  • TRIM/RTRIM/LTRIM:trimChars只支持英文字符。

  • REVERSE:在Hive模式下只支持英文字符。

  • SOUNDEX:僅轉換英文字符。

  • TOLOWER:將字符串中的英文字符轉換為小寫形式。

  • TOUPPER:將字符串中的英文字符轉換為大寫形式。

  • INITCAP:將字符串中每個單詞首字母(英文字符)轉化為大寫形式,其余為小寫。