[英]syntax error with COPY INTO snowflake command
I am trying to populate a table in Snowflake from a file in an s3 bucket.我正在尝试从 s3 存储桶中的文件填充 Snowflake 中的表。 I have verified that the Storage Integration is working and so according to the docs, I don't need an External Stage.
我已经验证存储集成正在工作,因此根据文档,我不需要外部阶段。
It also seems that in order to populate a table using a Parquet file format, I need to specify the columns in the copy command, per posts in Snowflake community forum.似乎为了使用 Parquet 文件格式填充表,我需要在复制命令中指定列,每个帖子都在雪花社区论坛中。
My command is giving a syntax error no matter what changes I make.无论我进行什么更改,我的命令都会出现语法错误。 If I remove the '(' after the s3 bucket url, I get the error
如果我在 s3 存储桶 url 之后删除“(”,则会收到错误消息
"unexpected SELECT"
but if I leave it in, I get the error但如果我把它留在里面,我会得到错误
"unexpected '(' "
My code:我的代码:
COPY INTO MYTABLE
FROM s3://bucket/folder2/File.snappy.parquet (
SELECT
O_ID: NUMBER(19,0),
O_TYPE:VARCHAR(48),
C_ID:NUMBER(19,0),
ON_ID:FLOAT,
SE_ID:NUMBER(19,0),
C_MATCH:BOOLEAN
)
STORAGE_INTEGRATION = MY_INTEGRATION
FILE_FORMAT=(
TYPE = 'PARQUET'
SNAPPY_COMPRESSION = TRUE
)
;
Can someone tell me how to fix the syntax here?有人可以告诉我如何在这里修复语法吗?
I believe your command should be like我相信你的命令应该像
COPY INTO MYTABLE (
O_ID: NUMBER(19,0),
O_TYPE:VARCHAR(48),
C_ID:NUMBER(19,0),
ON_ID:FLOAT,
SE_ID:NUMBER(19,0),
C_MATCH:BOOLEAN
)
FROM (
SELECT
$1,
$2,
$3,
$4,
$5,
$6
FROM s3://bucket/folder2/File.snappy.parquet
)
STORAGE_INTEGRATION = MY_INTEGRATION
FILE_FORMAT=(
TYPE = 'PARQUET'
SNAPPY_COMPRESSION = TRUE
)
;
```
Please try and let me know if it works.
Table needs to be created before COPY INTO:在 COPY INTO 之前需要创建表:
CREATE OR REPLACE TABLE MYTABLE (
O_ID NUMBER(19,0),
O_TYPE VARCHAR(48),
C_ID NUMBER(19,0),
ON_ID FLOAT,
SE_ID NUMBER(19,0),
C_MATCH BOOLEAN
);
COPY INTO MYTABLE (
O_ID,
O_TYPE,
C_ID,
ON_ID,
SE_ID
)
FROM s3://bucket/folder2/File.snappy.parquet
STORAGE_INTEGRATION = MY_INTEGRATION
FILE_FORMAT = (
TYPE = 'PARQUET'
SNAPPY_COMPRESSION = TRUE
)
;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.