首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从亚马逊网络服务DataLake到远程数据服务

从亚马逊网络服务DataLake到远程数据服务
EN

Stack Overflow用户
提问于 2019-11-08 19:21:58
回答 3查看 202关注 0票数 1

我对DataLakes比较陌生,我正在为一个亚马逊网络服务项目做一些研究。

我已经创建了一个DataLake,并从胶水爬虫中生成了表,我可以在S3中查看数据并使用雅典娜进行查询。到目前一切尚好。

需要将存储在datalake中的部分数据转换为RDS,以便应用程序读取数据。从S3 DataLake到RDS的ETL的最佳解决方案是什么?

我见过的大多数帖子都谈到了从RDS到S3的ETL,而不是反过来。

EN

回答 3

Stack Overflow用户

发布于 2019-11-08 23:39:02

通过使用Spark作业类型创建Glue作业,我能够使用我的S3表作为数据源,使用Aurora/MariaDB作为目的地。

尝试对python作业类型执行相同的操作时,我无法在胶水作业向导屏幕上查看任何S3表。

票数 1
EN

Stack Overflow用户

发布于 2020-01-14 03:54:38

一旦数据放入Spark DataFrame的胶水DataFrame中,就可以很直接地将其写出来。使用RDBMS作为数据接收器。

例如,要写入Redshift DB,

代码语言:javascript
运行
复制
// Write data to staging table in Redshift
glueContext.getJDBCSink(
  catalogConnection = "redshift-glue-connections-test",
  options = JsonOptions(Map(
    "database" -> "conndb",
    "dbtable" -> staging,
    "overwrite" -> "true",
    "preactions" -> "<another SQL queries>",
    "postactions" -> "<some SQL queries>"
  )),
  redshiftTmpDir = tempDir,
  transformationContext = "redshift-output"
).writeDynamicFrame(datasetDf)

如上所示,使用您创建的JDBC Connection来写入数据。

票数 1
EN

Stack Overflow用户

发布于 2020-12-10 06:34:00

你可以用胶水作业来完成这项工作。示例代码:

代码语言:javascript
运行
复制
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext, SparkConf
from awsglue.context import GlueContext
from awsglue.job import Job
import time
from pyspark.sql.types import StructType, StructField, IntegerType, StringType

sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session

file_paths = ['path']


df = glueContext.create_dynamic_frame_from_options("s3", {'paths': file_paths}, format="csv", format_options={"separator": ",", "quoteChar": '"', "withHeader": True})


df.printSchema()

df.show(10)

options = {
'user': 'usr',
'password': 'pwd', 
'url': 'url',
'dbtable': 'tabl'}


glueContext.write_from_options(frame_or_dfc=df, connection_type="mysql", connection_options=options)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58765608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档