从 S3 暂存区复制数据¶
将暂存文件中的数据加载到目标表中。
Load your data¶
执行 COPY INTO <table> 可将数据加载到目标表中。
以下示例从在 Create an S3 stage 中创建的命名 my_ext_stage 暂存区中的文件加载数据。使用模式匹配后,该语句仅加载名称以字符串 sales 开头的文件:
请注意,文件格式选项并未指定,因为暂存区定义中包含具名的文件格式。
以下示例使用在 准备加载数据 中创建的命名 my_csv_format 文件格式,加载 S3 桶中所有前缀为 data/files 的文件:
以下临时示例从 S3 桶中的所有文件加载数据。COPY 命令指定了文件格式选项,而不是引用命名文件格式。该示例加载的是 CSV 文件,并以竖线 (|) 作为字段分隔符。该 COPY 命令跳过了数据文件中的第一行:
Validate your data¶
在加载数据之前,您可以验证上传文件中的数据是否能正确加载。
要验证上传文件中的数据,请使用 VALIDATION_MODE 参数在验证模式下执行 COPY INTO <table>。VALIDATION_MODE 参数可返回它在文件中遇到的错误。然后,您可以修改文件中的数据,以确保其加载时没有错误。
此外,COPY INTO <table> 还提供了 ON_ERROR 复制选项,用于指定在文件加载过程中遇到错误时要执行的操作。
Monitor data loads¶
Snowflake 可保留过去 14 天内执行的 COPY INTO 命令的历史数据。元数据可用于监控和管理加载过程,包括在上传完成后删除文件:
Monitor the status of each COPY INTO <table> command on the Query History page of Snowsight.
使用 LOAD_HISTORY Information Schema 视图,检索通过 COPY INTO 命令加载到表中的数据的历史记录。
Copy files from one stage to another¶
使用 COPY FILES 命令,通过将文件从一个命名暂存区复制到另一个命名暂存区,来将数据组织到单个位置。
以下示例将所有文件从源暂存区 (src_stage) 复制到目标暂存区 (trg_stage):
您还可以指定要复制的文件名列表,或使用模式匹配复制文件。有关信息,请参阅 COPY FILES 示例。