我们可以使用雪花中的存储过程将文件从文件位置加载到命名内部阶段吗?

时间:2021-07-09 11:56:40

标签: snowflake-cloud-data-platform snowflake-schema

我们可以使用雪花中的存储过程将文件从文件位置加载到内部阶段吗?我知道我们不能在这里使用 put 命令。请帮忙

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您不能使用 Snowflake 存储过程。如果文件在云存储(AWS、Azure、GCP)中,那么您可以设置一个外部阶段并直接从它们中摄取。如果文件是本地文件,您将需要使用工具推送到内部阶段。例如。 Snowsql 客户端、python、.Net 或可以使用 ODBC 或 JDBC 客户端的工具。

答案 2 :(得分:0)

简短的回答是否定的。 原因是,该雪花在云端运行,无法访问您的本地计算机。

您必须通过支持的工具将文件从本地机器上传到云存储解决方案,然后您才能使用存储过程来处理文件。

以下是一些附加信息

要将文件从计算机或虚拟机加载到雪花,您正在寻找以下两个选项之一:

  1. 通过 PUT command 上传到 Snowflake 内部阶段 或
  2. 通过云提供商工具从您的计算机上传到 Snowflake External Stage,

AWS:

aws s3 cp filename.txt s3://bucket-name

Azure:

az storage blob upload \
    --account-name <storage-account> \
    --container-name <container> \
    --name helloworld \
    --file helloworld \
    --auth-mode login

GCP:

gsutil cp *.txt gs://my-bucket

将数据加载到阶段之后。

如果您不确定要使用哪种类型的舞台,请参阅Choosing a Stage

您通过 COPY INTO 命令将数据加载到您的表中

如果您使用的是雪花内部阶段,以下示例脚本是一个上传命令,用于上传您的文件。

put file:///tmp/data/mydata.csv @my_int_stage;

您可以使用用于 python 的雪花连接器从 snowsql 或 python 运行 PUT 命令。

向我们提供您尝试使用的代码和错误消息,我们可以帮助您继续前进。