CREATE EXTERNAL TABLE
Вызов CREATE EXTERNAL TABLE
создает внешнюю таблицу с указанной схемой данных.
CREATE EXTERNAL TABLE table_name (
column1 type1,
column2 type2 NOT NULL,
...
columnN typeN NULL
) WITH (
DATA_SOURCE="data_source_name",
LOCATION="path",
FORMAT="format_name",
COMPRESSION="compression_name"
);
Где:
column1 type1
,columnN typeN NULL
- колонка данных и ее тип;data_source_name
- имя подключения к S3 (Object Storage).path
- путь внутри бакета с данными. Путь должен вести на существующий каталог внутри бакета.format_name
- один из допустимых типов хранения данных.compression_name
- один из допустимых алгоритмов сжатия.
Допускается использование только ограниченного подмножества типов данных:
Bool
.Int8
,Uint8
,Int16
,Uint16
,Int32
,Uint32
,Int64
,Uint64
.Float
,Double
.Date
,DateTime
.String
,Utf8
.
Без дополнительных модификаторов колонка приобретает опциональный тип тип, и допускает запись NULL
в качестве значений. Для получения неопционального типа необходимо использовать NOT NULL
.
Пример
Cледующий SQL-запрос создает внешнюю таблицу с именем s3_test_data
, в котором расположены файлы в формате CSV
со строковыми полями key
и value
, находящиеся внутри бакета по пути test_folder
, при этом для указания реквизитов подключения используется объект подключение bucket
:
CREATE EXTERNAL TABLE s3_test_data (
key Utf8 NOT NULL,
value Utf8 NOT NULL
) WITH (
DATA_SOURCE="bucket",
LOCATION="folder",
FORMAT="csv_with_names",
COMPRESSION="gzip"
);