查询暂存区(Stage)中的 CSV 文件
语法:
教程
步骤一:创建外部暂存区(Stage)
创建一个外部暂存区(Stage),并配置您自己的 S3 存储桶和凭证,CSV 文件就存储在该存储桶中。
CREATE STAGE csv_query_stage
URL = 's3://load/csv/'
CONNECTION = (
ACCESS_KEY_ID = '<your-access-key-id>'
SECRET_ACCESS_KEY = '<your-secret-access-key>'
);
步骤二:创建自定义 CSV 文件格式
CREATE FILE FORMAT csv_query_format
TYPE = CSV,
RECORD_DELIMITER = '\n',
FIELD_DELIMITER = ',',
COMPRESSION = AUTO,
SKIP_HEADER = 1; -- 如果 CSV 文件包含表头,查询时跳过第一行
- 更多 CSV 文件格式选项,请参阅 CSV 文件格式选项
步骤三:查询 CSV 文件
SELECT $1, $2, $3
FROM @csv_query_stage
(
FILE_FORMAT => 'csv_query_format',
PATTERN => '.*[.]csv'
);
如果 CSV 文件使用 gzip 压缩,可使用以下查询:
SELECT $1, $2, $3
FROM @csv_query_stage
(
FILE_FORMAT => 'csv_query_format',
PATTERN => '.*[.]csv[.]gz'
);
查询并包含元数据
直接从暂存区(Stage)查询 CSV 文件,并包含 METADATA$FILENAME
和 METADATA$FILE_ROW_NUMBER
等元数据列:
SELECT
METADATA$FILENAME,
METADATA$FILE_ROW_NUMBER,
$1, $2, $3
FROM @csv_query_stage
(
FILE_FORMAT => 'csv_query_format',
PATTERN => '.*[.]csv'
);