如何将 spark 流输出推送到 oracle
how to push spark streaming output to oracle
我有一个 Spark Streaming 程序,可以在 window 15 分钟内聚合和处理数据。这个的输出需要被推送到 oracle 表。
最好的方法是什么?
如果我将我的数据写入配置单元,然后使用 sqoop 将其推送到 oracle,那么我将不得不以一定的频率安排我的 sqoop 作业,并且 sqoop 应该以某种方式理解它之前提取的数据以及什么是增量它现在应该从蜂巢中拉出来。我不确定 sqoop 是否可以做到这一点。
你有什么建议?
谢谢。
您还可以在 Spark 中连接到 Oracle DB
示例:
r2.foreachPartition {
it =>
val conn= DriverManager.getConnection(url,username,password)
val del = conn.prepareStatement ("INSERT INTO tweets (ID,Text) VALUES (?,?) ")
for (bookTitle <-it)
{
del.setString(1,bookTitle.toString)
del.setString(2,"my input")
del.executeUpdate
}
}
OR
val employees = sqlContext.load("jdbc", Map("url" -> "jdbc:oracle:thin:user/pass@//localhost:1521/single", "dbtable" -> "hr.employees"))
我有一个 Spark Streaming 程序,可以在 window 15 分钟内聚合和处理数据。这个的输出需要被推送到 oracle 表。
最好的方法是什么?
如果我将我的数据写入配置单元,然后使用 sqoop 将其推送到 oracle,那么我将不得不以一定的频率安排我的 sqoop 作业,并且 sqoop 应该以某种方式理解它之前提取的数据以及什么是增量它现在应该从蜂巢中拉出来。我不确定 sqoop 是否可以做到这一点。
你有什么建议?
谢谢。
您还可以在 Spark 中连接到 Oracle DB 示例:
r2.foreachPartition {
it =>
val conn= DriverManager.getConnection(url,username,password)
val del = conn.prepareStatement ("INSERT INTO tweets (ID,Text) VALUES (?,?) ")
for (bookTitle <-it)
{
del.setString(1,bookTitle.toString)
del.setString(2,"my input")
del.executeUpdate
}
}
OR
val employees = sqlContext.load("jdbc", Map("url" -> "jdbc:oracle:thin:user/pass@//localhost:1521/single", "dbtable" -> "hr.employees"))