我在这里阅读了所有已回答的问题,其中 5 个。而且它们现在都已经过时了可用的 AWS 产品。
因此,作为 AWS 的新手,我想知道如何解决我的问题,或者仅使用 AWS 解决方案来解决我的问题的最佳方法是什么。我想避免任何第三方。我知道我将引用我在谷歌上搜索的一种方法,但只是参考它。
无论如何,我有一个目标要实现,这基本上是用仅使用 AWS 产品的东西替换我的 SQL Server 2012 集成服务。现在我正在访问一个 FTP 服务器并将一堆 CSV 文件下载到我的驱动器,读取它们,将它们转换为我的数据集并将它们加载到我指定的表中。此过程计划每天执行 3 次。
我最初的建议是将文件上传到 S3,使用 AWS Glue Crawlers 来抓取我的文件并填充我自己创建的 AWS Glue 数据目录,它们 ETL 到我的 RDS。到目前为止,我可以实现我的 Lambda 函数来连接我的 FTP 并上传到我的 S3,我还可以使用 AWS Athena 检索我的数据,看看是否一切正常。
但是现在,我正在努力将我的 ETL 复制/创建我的表到 RDS 并写入数据。我在同一个 RDS VPC、子网和安全组下创建了我的胶水连接,我的安全组也有来自任何地方的所有 TCP 入站(我知道,我不会离开这个,它只是为了测试)并且我正在使用 JDBC,编写以下 JDBC URL:
jdbc:sqlserver://my-database-name.xsdfxsdsfsfsx.us-east-1.rds.amazonaws.com:1433;databaseName=my-database-name
我可以使用 AWS Glue 中的“测试连接”来测试我创建的连接,并且效果很好。但是在使用 Job 教程创建我的 Job 并运行它之后,在我的日志错误中我可以看到:
com.amazon.ws.emr.hadoop.fs.shaded.org.apache.http.conn.HttpHostConnectException: Connect to 167.254.77.1:8088 [/167.254.77.1] failed: Connection refused (Connection refused)
我尝试使用Amazon RDS选项创建连接,但在选择实例后的第二个屏幕上,我收到以下错误:
Unable to find a suitable security group. Change connection type to JDBC and retry adding your connection.
我检查了我的 IAM,我确实在AWS 服务中拥有AWSGlueServiceRoleDefault角色:如文档中所述,为 AWS 托管策略粘合可信服务和AWSGlueServiceRole。
我想知道我缺少什么或如何修复它以使其正常工作。或者即使有更好的方法来实现我的目标。