本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

1.0資料類型版本

更新時間:2025-02-14 19:16

MaxCompute 1.0資料類型版本是MaxCompute三種資料類型版本之一,該資料類型版本僅支援1.0資料類型。本文為您介紹1.0資料類型版本的設定方法、支援的資料類型以及與其它資料類型版本的差異。

定義

專案空間選擇資料類型版本為1.0資料類型版本時,專案的資料類型屬性定義如下。

setproject odps.sql.type.system.odps2=false; --關閉MaxCompute 2.0資料類型。
setproject odps.sql.decimal.odps2=false; --關閉Decimal 2.0資料類型。
setproject odps.sql.hive.compatible=false; --關閉Hive相容模式。

適用情境

適用於早期的MaxCompute專案,且該專案依賴的產品組件不支援2.0資料類型版本。

資料類型

類型

常量樣本

描述

類型

常量樣本

描述

BIGINT

100000000000L、-1L

64位有符號整型。

取值範圍:-263+1~263-1。

DOUBLE

3.14159261E+7

64位二進位浮點型。

DECIMAL

3.5BD、99999999999.9999999BD

10進位精確數字類型。預設為decimal(54,18),precision和scale不可調整。整型部分取值範圍:-1036+1~1036-1,小數部分精確到10-18

STRING

"abc"、'bcd'、"alibaba"、'inc'

字串類型。

長度限制為8 MB。

DATETIME

DATETIME'2017-11-11 00:00:00'

日期時間類型。

取值範圍:0000年1月1日~9999年12月31日。

BOOLEAN

True、False

BOOLEAN類型。

取值範圍:True或False。

資料類型說明如下:

  • 上述資料類型均可以為NULL。

  • 整型常量的語義預設為BIGINT類型。如果常量超過了BIGINT的範圍(例如1,000,000,000,000,000,000,000,000),會被作為DOUBLE類型處理。例如SELECT 1 + a;中的整型常量1會被作為BIGINT類型處理。

  • 如果參數涉及2.0資料類型的內建函數,無法在1.0資料類型版本正常使用。

  • 分區表的分區列的資料類型只支援STRING類型。

  • 支援串連STRING常量。例如,abc和xyz會解析為abcxyz。

  • 向DECIMAL欄位插入常量時,常量的寫法需要與常量定義中的格式保持一致。例如範例程式碼中的3.5BD

    INSERT INTO test_tb(a) VALUES (3.5BD);
  • DATETIME查詢顯示的時間值不包含毫秒。Tunnel通過-dfp指定時間格式,可以指定顯示到毫秒,例如tunnel upload -dfp 'yyyy-MM-dd HH:mm:ss.SSS'。Tunnel詳情請參見Tunnel命令參考

與其它資料類型版本差異說明

  • 1.0資料類型版本的LIMIT、ORDER BY、DISTRIBUTE BY、SORT BY和CLUSTER BY操作與2.0資料類型版本不同。

    例如,LIMIT動作陳述式SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT 10;

    • 1.0資料類型版本:SELECT * FROM t1 UNION ALL SELECT * FROM ( SELECT * FROM t2 LIMIT 10) t2;

    • 2.0資料類型版本:SELECT * FROM (SELECT * FROM t1 UNION ALL SELECT * FROM t2 ) t LIMIT 10;

  • 1.0資料類型版本的IN運算式與2.0資料類型版本不同。

    例如a IN (1, 2, 3)

    • 1.0資料類型版本:IN括弧裡的所有實值型別必須一致。

    • 2.0資料類型版本:IN括弧裡的所有值支援通過隱式類型轉換為一致類型。

複雜資料類型

類型

定義方法

構造方法

類型

定義方法

構造方法

ARRAY

  • ARRAY<BIGINT>

  • ARRAY<STRUCT<a:BIGINT, b:STRING>>

  • ARRAY(1, 2, 3)

  • ARRAY(NAMED_STRUCT('a', 1, 'b', '2'), NAMED_STRUCT('a', 3, 'b', '4'))

MAP

  • MAP<STRING, STRING>

  • MAP<BIGINT, ARRAY<STRING>>

  • MAP("k1", "v1", "k2", "v2")

  • MAP(1L, ARRAY('a', 'b'), 2L, ARRAY('x', 'y'))

STRUCT

  • STRUCT<'x', BIGINT, 'y', BIGINT>

  • STRUCT<'field1', BIGINT, 'field2', ARRAY<BIGINT>, 'field3', MAP<BIGINT>>

  • NAMED_STRUCT('x', 1, 'y', 2)

  • NAMED_STRUCT('field1', 100L, 'field2', ARRAY(1, 2), 'field3', MAP(1, 100, 2, 200))

說明

MaxCompute的複雜資料類型可以被嵌套使用,相關的內建函數說明請參見ARRAYMAPSTRUCT

  • 本頁導讀 (1, M)
  • 定義
  • 適用情境
  • 資料類型
  • 與其它資料類型版本差異說明
  • 複雜資料類型
文檔反饋
phone 聯絡我們

立即和Alibaba Cloud在線服務人員進行交談,獲取您想了解的產品信息以及最新折扣。

alicare alicarealicarealicare