Hive BigQuery中的配置单元分区布局表格式

Hive BigQuery中的配置单元分区布局表格式,hive,apache-kafka,google-bigquery,partitioning,Hive,Apache Kafka,Google Bigquery,Partitioning,在这种情况下我有很多QSN。下面是: 是否有人将Kafka的输出写入Google云存储(GCS)存储桶,以便使用“默认配置单元分区布局”对该存储桶中的数据进行分区 这样做的目的是这个外部表在BigQuery中需要是“可查询的” 谷歌的文档在这里,但想看看是否有人有一个例子() 例如,文档中说“文件遵循默认布局,键/值对以=号作为分隔符的目录排列,分区键始终以相同的顺序排列。” 不清楚的是 a) 卡夫卡是动态创建这些目录,还是我必须预先创建它们?假设我想让卡夫卡根据GCS中的日期写入目录

在这种情况下我有很多QSN。下面是:

是否有人将Kafka的输出写入Google云存储(GCS)存储桶,以便使用“默认配置单元分区布局”对该存储桶中的数据进行分区 这样做的目的是这个外部表在BigQuery中需要是“可查询的” 谷歌的文档在这里,但想看看是否有人有一个例子()

例如,文档中说“文件遵循默认布局,键/值对以=号作为分隔符的目录排列,分区键始终以相同的顺序排列。”

不清楚的是 a) 卡夫卡是动态创建这些目录,还是我必须预先创建它们?假设我想让卡夫卡根据GCS中的日期写入目录

    gs://bucket/table/dt=2020-04-07/
今晚,午夜过后,我是否已经预先创建了这个新目录gs://bucket/table/dt=2020-04-08/或者Kafka可以为我创建它?在所有这些方面,hive分区布局如何帮助我

我每天都试图将表中的数据放入这些目录中,是否需要将“dt”(来自gs://bucket/table/dt=2020-04-07/)作为一列

因为所有这些的目标都是让BigQuery查询这个外部表,它的基础是引用这个bucket中的所有数据

    gs://bucket/table/dt=2020-04-06/
    gs://bucket/table/dt=2020-04-07/
    gs://bucket/table/dt=2020-04-08/
只是想看看这是否是正确的方法。

卡夫卡本身是一个消息传递系统,允许在进程、应用程序和服务器之间交换数据,但它需要生产者和消费者(例如)移动数据。例如:

  • 生产者需要以BigQuery可以读取的格式发送数据

  • 消费者需要使用有效的配置单元布局写入数据

  • 消费者应向GCS写信,因此您需要为您的应用程序找到合适的连接器(例如,此或)。在将消息写入GCS时,您需要注意使用有效的“默认配置单元分区布局”

    例如,
    gs://bucket/table/dt=2020-04-07/
    dt
    是表的分区列,
    2020-04-07
    是表的一个值,所以要注意这一点。一旦你在GCS中有了一个有效的配置单元布局,你需要在BigQuery中创建一个表,我建议从UI中选择一个本机表,并选择Google Cloud Storage作为源并启用“源数据分区”,但你也可以使用--Hive\u partitioning\u source\u uri\u前缀并将GCS数据与BigQuery表链接

    由于所有这些过程都意味着不同层次的开发和配置,如果这个过程对您有意义,我建议您针对可能出现的任何特定错误提出新的问题


    最后但并非最不重要的一点是,如果您的用例不强制要求配置单元布局,那么从Kafka摄取到GCP将有更好的帮助

    我添加了标签,因为这更像是一个卡夫卡+蜂巢问题,而不是一个BigQuery问题。很遗憾,这个问题被关闭了,因为我可以提供答案(卡夫卡连接)。@felipehoffa,这仍然是一个BigQuery qsn。配置单元分区只是一个分区布局。这与蜂巢无关。我加入了重新开放的投票。我们还需要再投一票@RobinMoffatt(同时我会试着从朋友那里得到),我也认为这个问题可以解决。我投了赞成票。