0

J'ai essayé d'utiliser kafka-connect pour diffuser des données dans HDFS avec l'intégration de la ruche sur, pendant le processus.Plusieurs partitions de ruche avec kafka-connect

Mon cas d'utilisation nécessite que j'utilise le "FieldPartioner" comme classe de partitionnement.

Mon problème est que, je suis incapable d'obtenir plusieurs partitions.

Exemple:

Mon exemple JSON

{ 
    "_id": "582d666ff6e02edad83cae28", 
    "index": "ENAUT", 
    "mydate": "03-01-2016", 
    "hour": 120000, 
    "balance": "$2,705.80" 
} 

Je veux avoir des partitions sur la base de 'mydate' et 'heure'

J'ai essayé les suivantes

name=hdfs-sink 
connector.class=io.confluent.connect.hdfs.HdfsSinkConnector 
tasks.max=1 
topics=fieldPartition_test_hdfs 
hdfs.url=hdfs://quickstart.cloudera:8020 
flush.size=3 

partitioner.class=io.confluent.connect.hdfs.partitioner.FieldPartitioner 
partition.field.name={mydate,hour} 

locale=en 
timezone=GMT 

hive.database=weblogs 
hive.integration=true 
hive.metastore.uris=thrift://quickstart.cloudera:9083 
schema.compatibility=BACKWARD 

Également essayé en spécifiant partition.field.name as

partition.field.name={'mydate','hour'} 

et

partition.field.name=mydate,hour 

et beaucoup plus de telles combinaisons

Toute aide sur la question serait grandement apprécié

Merci.

Répondre

1

J'ai essayé cela de toutes les manières possibles et j'ai ensuite commencé à creuser dans le code source.

Le code de FieldPartitoner est here!

Et le dernier commit dans le fichier ici, montre « il y a 3 mois Revert 'support champs de partition multi-de »

S'il vous plaît ne laissez-moi savoir si les gars vous avez une autre solution.