可以使用Sqoop在IMPORT上执行连接吗?

问题描述 投票:2回答:4

最近我被问到这个问题我在描述一个涉及多个连接的用例,除了我在Spark中实现的一些处理之外,问题是,在使用Sqoop将数据导入HDFS时是否还没有完成连接?我想从架构的角度理解是否可以在Sqoop中实现连接,即使它是可能的。

apache-spark hadoop import bigdata sqoop
4个回答
4
投票

可以在sqoop导入中进行连接。

从体系结构的角度来看,它取决于您的用例,sqoop主要是用于快速导入/导出的实用程序。所有的etl都可以通过火花/猪/蜂巢/黑斑羚来完成。

虽然它是可行的,但我建议不要这样做,因为它会增加你的工作时间效率加上它会加重你的计算连接/聚合的来源以及sqoop主要被设计为结构化源的摄取工具。


0
投票

这取决于数据管道的基础结构,如果您将Spark用于其他目的,那么最好使用相同的Spark来导入数据。 Sqoop支持加入,如果你只需要导入数据就足够了。希望这能回答您的疑问。


0
投票

您可以使用:

  • DBMS中的一个视图,其中读取使用sqoop eval在DB中设置参数,可选。
  • 自定义SQL for sqoop wher JOIN已定义

但是,使用JOIN的视图不能用于增量导入。

在当前版本的Sqoop中使用自由格式查询的功能仅限于简单查询,其中WHERE子句中没有不明确的投影和OR条件。使用复杂查询(例如具有子查询或连接的查询导致模糊投影)可能会导致意外结果。


0
投票

Sqoop导入工具支持加入。它可以使用--query选项存档(不要将此选项与--table / --column一起使用)。

© www.soinside.com 2019 - 2024. All rights reserved.