【问题标题】:Bonobo: How to use multiple data sources?Bonobo:如何使用多个数据源?
【发布时间】:2018-04-14 18:14:29
【问题描述】:

我第一次使用Bonobo。我能够找出基本的例子。我很想知道如何在 extract 步骤中输入两种不同类型的数据?假设我正在从两个不同的站点抓取数据,如何将它们添加到管道中?

谢谢

【问题讨论】:

    标签: python-3.x etl bonobo-etl


    【解决方案1】:

    您可以有两个不同的提取步骤(或 n 个不同的步骤)。

    例如:

    import bonobo
    
    
    def extract_1():
        yield "x1", "a"
        yield "x1", "b"
        yield "x1", "c"
    
    
    def extract_2():
        yield "x2", "a"
        yield "x2", "b"
        yield "x2", "c"
    
    
    def extract_3():
        yield "x3", "a"
        yield "x3", "b"
        yield "x3", "c"
    
    
    def normalize(name, value):
        yield name.upper(), value
    
    
    def get_graph(**options):
        graph = bonobo.Graph()
        graph.add_chain(normalize, print, _input=None)
        graph.add_chain(extract_1, _output=normalize)
        graph.add_chain(extract_2, _output=normalize)
        graph.add_chain(extract_3, _output=normalize)
        return graph
    
    
    if __name__ == "__main__":
        with bonobo.parse_args() as options:
            bonobo.run(get_graph(**options))
    

    请注意,每个节点都有一个先进先出的约束,但是“规范化”将在提取器产生数据时以随机顺序获取节点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多