Google cloud platform 数据流管道从GCS读取csv并通过调用Vision和NL API写入BigBuery

Google cloud platform 数据流管道从GCS读取csv并通过调用Vision和NL API写入BigBuery,google-cloud-platform,google-cloud-dataflow,google-cloud-vision,google-cloud-nl,Google Cloud Platform,Google Cloud Dataflow,Google Cloud Vision,Google Cloud Nl,我想写一个数据流程序(Java和maven实现)。以下是我要执行的步骤: 数据流应该从google云存储中读取csv文件。csv文件的格式如下: 产品名称、图像URL、类别、说明1、说明2 樱花30062 6件套Pigma微米墨水笔,艺术,包括1支尺寸:#005(0.20mm) CCBERTER迷你热熔胶枪,带25支胶棒高温熔胶枪套件灵活触发器,适用于DIY小型工艺项目和密封及快速维修(20瓦,蓝色),安全舒适的电源开关,带LED灯模式。采用可拆卸、灵活的支撑,保持枪的稳定和直立,采用优质隔热喷

我想写一个数据流程序(Java和maven实现)。以下是我要执行的步骤:

  • 数据流应该从google云存储中读取csv文件。csv文件的格式如下:

    产品名称、图像URL、类别、说明1、说明2 樱花30062 6件套Pigma微米墨水笔,艺术,包括1支尺寸:#005(0.20mm)

    CCBERTER迷你热熔胶枪,带25支胶棒高温熔胶枪套件灵活触发器,适用于DIY小型工艺项目和密封及快速维修(20瓦,蓝色),安全舒适的电源开关,带LED灯模式。采用可拆卸、灵活的支撑,保持枪的稳定和直立,采用优质隔热喷嘴,即使在500以下长期使用,枪也不会变形℉.

    。 . .

  • 对于csv中的每一行,我需要选择图片URL并运行vision API并获取前2个标签(例如,我们从vision API中获取第一个产品/行的标签L1和L2,以及第二个产品/行的标签L3和L4)

  • 对于csv中的每一行,我需要连接产品名称、类别、description1和description2,并将其传递给NL API。根据NL API的响应,我需要选择消费品类别下的前2个实体(例如,我们从第一行获得E1和E2,第二行获得E3和E4)

  • 我需要根据检索到的响应创建以下结构:

    产品名称、主题 樱花30062 6件套Pigma微米墨水笔,L1 樱花30062 6件套Pigma微米墨水笔,L2 樱花30062 6件套Pigma微米墨水笔套装,E1 樱花30062 6件套Pigma微米墨水笔套装,E2

    CCBERTER迷你热熔胶枪,带25支胶棒高温熔胶枪套件灵活触发器,适用于DIY小型工艺项目和密封及快速维修(20瓦,蓝色),L3 CCBERTER微型热熔胶枪,带25支胶棒高温熔胶枪套件灵活触发器,适用于DIY小型工艺项目和密封及快速维修(20瓦,蓝色),L4 CCBERTER迷你热熔胶枪,带25支胶棒高温熔胶枪套件灵活触发器,适用于DIY小型工艺项目和密封及快速维修(20瓦,蓝色),E3 CCBERTER迷你热熔胶枪,带25支胶棒高温熔胶枪套件灵活触发器,适用于DIY小型工艺项目和密封及快速维修(20瓦,蓝色),E4 . . .

  • 我想将这个网格(步骤4中的结构)写入Bigquery表


  • 我是Dataflow的新手,因此非常感谢您提供的任何帮助、代码片段或整个源代码或参考资料

    您应该先阅读其中一个,然后看看其中的一些

    根据您的描述,高级大纲可能是:

  • 使用
    TextIO.read
    从地面军事系统读取内容。请注意,它不支持忽略标题,因此您可能需要自己检测并删除它
  • 编写一个
    DoFn
    ,在文件每一行的URL上使用vision API。您甚至可以将其分成多个
    DoFn
    s——一个用于将行转换为URL,然后一个用于使用vision API的DoFn,然后一个用于提取前两个标记的DoFn
  • 编写另一个执行连接并使用NL API的
    DoFn
    或一系列
    DoFn
    s
  • 编写另一个
    DoFn
    或一系列
    DoFn
    s,生成具有所需输出格式的行,如
    TableRow
    s
  • 使用
    BigQueryIO.write
    transform将它们写入BigQuery
    你应该先读一本,然后看看其中的一些

    根据您的描述,高级大纲可能是:

  • 使用
    TextIO.read
    从地面军事系统读取内容。请注意,它不支持忽略标题,因此您可能需要自己检测并删除它
  • 编写一个
    DoFn
    ,在文件每一行的URL上使用vision API。您甚至可以将其分成多个
    DoFn
    s——一个用于将行转换为URL,然后一个用于使用vision API的DoFn,然后一个用于提取前两个标记的DoFn
  • 编写另一个执行连接并使用NL API的
    DoFn
    或一系列
    DoFn
    s
  • 编写另一个
    DoFn
    或一系列
    DoFn
    s,生成具有所需输出格式的行,如
    TableRow
    s
  • 使用
    BigQueryIO.write
    transform将它们写入BigQuery