用于雪花批量加载的 AUTOINCREMENT 主键
AUTOINCREMENT primary key for snowflake bulk loading
我想将数据上传到 snowflake table。雪花 table 有一个带 AUTOINCREMENT 的主键字段。
当我尝试在没有主键字段的情况下将数据上传到雪花时,我收到了以下错误消息:
The COPY failed with error: Number of columns in file (2) does not
match that of the corresponding table (3), use file format option
error_on_column_count_mismatch=false to ignore this error
有谁知道我是否可以将数据批量加载到具有 AUTOINCREMENT 主键的 table 中?
知泽
文档中有以下示例表明可以这样做:
https://docs.snowflake.net/manuals/user-guide/data-load-transform.html#include-autoincrement-identity-columns-in-loaded-data
-- Omit the sequence column in the COPY statement
copy into mytable (col2, col3)
from (
select ,
from @~/myfile.csv.gz t
)
;
你能试试这个语法,看看它是否适合你吗?
您可以查询使用文件格式加载数据的阶段文件。我创建了如下示例 table。第一列设置自动增量:
-- Create the target table
create or replace table Employee (
empidnumber autoincrement start 1 increment 1,
name varchar,
salary varchar
);
我已经将一个示例文件暂存到雪花内部阶段以将数据加载到 table 并且我使用以下 查询了暂存文件然后我执行了以下复制命令:
copy into mytable (name, salary )from (select , from @test/test.csv.gz );
它加载了 table 增量值。
创建目标table
create or replace table mytable (
col1 number autoincrement start 1 increment 1,
col2 varchar,
col3 varchar
);
在内部用户阶段暂存数据文件
put file:///tmp/myfile.csv @~;
查询暂存数据文件
select , from @~/myfile.csv.gz t;
+-----+-----+
| | |
|-----+-----|
| abc | def |
| ghi | jkl |
| mno | pqr |
| stu | vwx |
+-----+-----+
省略COPY语句中的sequence列
copy into mytable (col2, col3)
from (
select ,
from @~/myfile.csv.gz t
)
;
select * from mytable;
+------+------+------+
| COL1 | COL2 | COL3 |
|------+------+------|
| 1 | abc | def |
| 2 | ghi | jkl |
| 3 | mno | pqr |
| 4 | stu | vwx |
+------+------+------+
我想将数据上传到 snowflake table。雪花 table 有一个带 AUTOINCREMENT 的主键字段。
当我尝试在没有主键字段的情况下将数据上传到雪花时,我收到了以下错误消息:
The COPY failed with error: Number of columns in file (2) does not match that of the corresponding table (3), use file format option error_on_column_count_mismatch=false to ignore this error
有谁知道我是否可以将数据批量加载到具有 AUTOINCREMENT 主键的 table 中?
知泽
文档中有以下示例表明可以这样做: https://docs.snowflake.net/manuals/user-guide/data-load-transform.html#include-autoincrement-identity-columns-in-loaded-data
-- Omit the sequence column in the COPY statement
copy into mytable (col2, col3)
from (
select ,
from @~/myfile.csv.gz t
)
;
你能试试这个语法,看看它是否适合你吗?
您可以查询使用文件格式加载数据的阶段文件。我创建了如下示例 table。第一列设置自动增量:
-- Create the target table
create or replace table Employee (
empidnumber autoincrement start 1 increment 1,
name varchar,
salary varchar
);
我已经将一个示例文件暂存到雪花内部阶段以将数据加载到 table 并且我使用以下
copy into mytable (name, salary )from (select , from @test/test.csv.gz );
它加载了 table 增量值。
创建目标table
create or replace table mytable (
col1 number autoincrement start 1 increment 1,
col2 varchar,
col3 varchar
);
在内部用户阶段暂存数据文件
put file:///tmp/myfile.csv @~;
查询暂存数据文件
select , from @~/myfile.csv.gz t;
+-----+-----+
| | |
|-----+-----|
| abc | def |
| ghi | jkl |
| mno | pqr |
| stu | vwx |
+-----+-----+
省略COPY语句中的sequence列
copy into mytable (col2, col3)
from (
select ,
from @~/myfile.csv.gz t
)
;
select * from mytable;
+------+------+------+
| COL1 | COL2 | COL3 |
|------+------+------|
| 1 | abc | def |
| 2 | ghi | jkl |
| 3 | mno | pqr |
| 4 | stu | vwx |
+------+------+------+