本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 1:創建包含巢狀資料的外部資料表
若要建立此教學課程的外部資料表,請執行以下命令。
CREATE EXTERNAL TABLE spectrum.customers ( id int, name struct<given:varchar(20), family:varchar(20)>, phones array<varchar(20)>, orders array<struct<shipdate:timestamp, price:double precision>> ) STORED AS PARQUET LOCATION 's3://awssampledbuswest2/nested_example/customers/';
在上述範例中,外部資料表 spectrum.customers
使用 struct
和 array
資料類型來定義具有巢狀資料的資料欄。Amazon Redshift Spectrum 支援查詢 Parquet、ORC、JSON 和 Ion 檔案格式的巢狀資料。LOCATION
參數必須參考包含巢狀資料或檔案的 Amazon S3 資料夾。
Amazon Redshift 不支援 Amazon Redshift 資料表中的複雜資料類型。您只可以對 Redshift Spectrum 外部資料表使用複雜資料類型。
您可以在任何層級將 array
和 struct
類型形成巢狀。例如,您可以如以下範例所示定義名為 toparray
的資料欄。
toparray array<struct<nestedarray: array<struct<morenestedarray: array<string>>>>>
您也可以如以下範例中的資料欄 x
所示,將 struct
類型形成巢狀。
x struct<a: string, b: struct<c: integer, d: struct<e: string> > >