elasticsearch,snowflake-cloud-data-platform,Python,elasticsearch,Snowflake Cloud Data Platform" /> elasticsearch,snowflake-cloud-data-platform,Python,elasticsearch,Snowflake Cloud Data Platform" />

Python 你能把JSON写到Snowflake stage吗?

Python 你能把JSON写到Snowflake stage吗?,python,elasticsearch,snowflake-cloud-data-platform,Python,elasticsearch,Snowflake Cloud Data Platform,我正在尝试将Elasticsearch数据流到Snowflake中。我正在测试一个python脚本,它最终将作为云函数/docker应用程序部署在AWS上。对于历史,我使用scrollAPI将x个数量的对象写入一个字符串,并将该字符串写入一个文件。我用了雪花的PUTfile://file.json.gz @stage但这意味着在存储到stage之前,我需要将文件临时写入磁盘。我有大量的数据要提取,我正试图尽可能多地消除这些步骤。有没有一种厚颜无耻的方式可以让我直接把文件写到舞台上?你可以用雪管。

我正在尝试将Elasticsearch数据流到Snowflake中。我正在测试一个python脚本,它最终将作为云函数/docker应用程序部署在AWS上。对于历史,我使用
scroll
API将x个数量的对象写入一个字符串,并将该字符串写入一个文件。我用了雪花的
PUTfile://file.json.gz @stage
但这意味着在存储到stage之前,我需要将文件临时写入磁盘。我有大量的数据要提取,我正试图尽可能多地消除这些步骤。有没有一种厚颜无耻的方式可以让我直接把文件写到舞台上?

你可以用雪管。您需要不断创建较小的文件,并使用snowpipe继续上载它们。您可以使用Amazon Kinesis Firehose来管理批次。
请参阅和的文档

如果您在保存到S3时创建了一个链接到S3的雪花阶段,无论您决定使用什么,它都会自动出现在雪花阶段,这样,您只需将副本发送到命令并保存一两个步骤即可

在我看来,这是一个简单方便的解决方案


如果您需要这些步骤,请告诉我,我很乐意在这里发布。

不幸的是,没有其他方法。我对此也考虑了很多,但当您将数据(文件)从一个系统移动到另一个系统时,您必须将其写入临时空间。如果有帮助的话,可以在python中使用临时文件概念。您也可以尝试任何第三方数据管道,但据我所知,它们不是免费的。让我知道这是否有帮助。谢谢你的评论。我研究了这种方法,并使用boto3在S3中创建了bucket,Snowflake中的管道具有
auto-insect=true
,然后从
''descripe pipe{}''中获得了
notification\u通道
。format(pipe)
在Snowflake中查询,使用boto3创建bucket通知。