Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将json文件从s3导入postgres RDS_Json_Postgresql_Amazon Web Services_Amazon Rds - Fatal编程技术网

将json文件从s3导入postgres RDS

将json文件从s3导入postgres RDS,json,postgresql,amazon-web-services,amazon-rds,Json,Postgresql,Amazon Web Services,Amazon Rds,我想制作一个脚本(可能是lambda?),因此上传到此s3的每个新json文件也会直接上传到位于PostgreSQL RDS中的postgres表中 json是嵌套的,内部包含json列表,因此在Postgres中解析它并不是那么简单。此外,它的列数不断变化,因此新文件可能会向表中添加新列。(如果一个文件有一个尚未出现的新列,我想添加它并为表的其余值放置null对象) 如何有效地执行此操作?正如建议的那样,您可以编写lambda来侦听S3事件,并在上载新文件时触发函数 触发一个事件,您需要读取

我想制作一个脚本(可能是lambda?),因此上传到此s3的每个新json文件也会直接上传到位于
PostgreSQL RDS
中的postgres表中

json是嵌套的,内部包含json列表,因此在Postgres中解析它并不是那么简单。此外,它的列数不断变化,因此新文件可能会向表中添加新列。(如果一个文件有一个尚未出现的新列,我想添加它并为表的其余值放置null对象)


如何有效地执行此操作?

正如建议的那样,您可以编写lambda来侦听S3事件,并在上载新文件时触发函数

触发一个事件,您需要读取并解析该文件


现在连接到数据库并在从对象生成sql查询后运行它们

对于第一部分:您可以侦听s3事件并在putObject上调用lambda:我认为您在第二部分没有提供足够的详细信息来正确回答(尽管我没有资格回答这个问题)我添加了一些信息,这有点复杂,所以可以一步一步地回答:)您对导入RDS流程有什么建议吗?因为我不知道我正在运行的文件中有多少列,而且它可能包含我说过的新列。这对我来说是个复杂的部分,你不能在postgre上盲目导入。这就是为什么直接json/csv不起作用的原因。在使用直接导入或sql插入之前,需要根据现有的目标表解析数据。您可以始终检查对象键以标识文件中存在的列,或者如果所有列都与postgre表模式不匹配,则可以使用noSql数据库。