我最近被问到这个问题,在这里我描述了一个涉及多个连接的用例,除了我在Spark中实现的一些处理之外,问题是,在使用Sqoop将数据导入到HDFS时,联接是否还没有完成?我想从体系结构的角度来理解在Sqoop中实现联接是否明智,即使可能的话。
发布于 2019-02-25 09:56:57
可以在sqoop导入中进行连接。
从体系结构的角度来看,它取决于您的usecase,sqoop主要是用于快速导入/导出的实用程序。所有的etl都可以通过火花/猪/蜂箱/黑斑羚来完成。
虽然它是可行的,但我建议不要这样做,因为它将提高您的工作的时间效率,而且它还会给您的源带来计算连接/聚合的负载,同时sqoop也主要被设计成一个结构化源的摄取工具。
发布于 2019-02-25 09:51:40
这取决于您的数据管道的基础结构,如果您将Spark用于其他目的,那么最好也使用相同的Spark导入数据。Sqoop支持联接,如果您只需要导入数据而不需要导入其他任何内容,就足够了。希望这能回答你的疑问。
发布于 2019-02-25 13:05:00
您可以使用:
但是,带联接的视图不能用于增量导入。
在当前版本的Sqoop中使用自由形式查询的功能仅限于在where子句中没有模糊投影和OR条件的简单查询。使用复杂的查询,例如具有子查询或连接导致模糊预测的查询,可能会导致意外的结果。
https://stackoverflow.com/questions/54862422
复制相似问题