【发布时间】:2021-07-09 11:56:40
【问题描述】:
我们可以使用雪花中的存储过程将文件从文件位置加载到内部阶段吗?我知道我们不能在这里使用 put 命令。请帮忙
【问题讨论】:
-
可以使用外部 lambda 函数,但不能使用 Snowflake 存储过程。
标签: snowflake-cloud-data-platform snowflake-schema
我们可以使用雪花中的存储过程将文件从文件位置加载到内部阶段吗?我知道我们不能在这里使用 put 命令。请帮忙
【问题讨论】:
标签: snowflake-cloud-data-platform snowflake-schema
您将无法使用 Snowflake 存储过程将文件从本地放置到内部阶段。
以下是一些链接,可能会有所帮助:
【讨论】:
您不能使用 Snowflake 存储过程。如果文件在云存储(AWS、Azure、GCP)中,那么您可以设置一个外部阶段并直接从它们中提取。如果文件是本地文件,则需要使用工具推送到 Internal Stage。例如。 Snowsql 客户端、python、.Net 或可以使用 ODBC 或 JDBC 客户端的工具。
【讨论】:
简短的回答是否定的。 原因是,该雪花正在云中运行,并且无法访问您的本地计算机。
您必须通过支持的工具将文件从本地机器上传到云存储解决方案,然后您才能使用存储过程来处理文件。
以下是一些附加信息
要将文件从计算机或虚拟机加载到雪花,您正在寻找以下两个选项之一:
aws s3 cp filename.txt s3://bucket-name
az storage blob upload \
--account-name <storage-account> \
--container-name <container> \
--name helloworld \
--file helloworld \
--auth-mode login
gsutil cp *.txt gs://my-bucket
将数据加载到阶段之后。
如果您不确定要使用哪种类型的舞台,请参阅Choosing a Stage
您通过COPY INTO 命令将数据加载到表中
如果您使用的是雪花内部阶段,则以下示例脚本是一个上传命令,用于上传您的文件。
put file:///tmp/data/mydata.csv @my_int_stage;
您可以使用适用于 python 的雪花连接器从 snowsql 或 python 运行 PUT 命令。
向我们提供您尝试使用的代码和错误消息,我们可以帮助您继续前进。
【讨论】: