Teradata Access Module for Kafkaは、Kafkaトピックにデータを書き込む場合の複数Dataconnectorインスタンスをサポートしています。
ユーザーはTeradataからデータをエクスポートし、TPT DCオペレータの複数インスタンスを使用して複数のKafkaトピックに並列的にデータを書き込むことができるため、スループットが向上します。
Teradata Access Module for Kafkaは、Kafkaトピック パーティションをTPT FileWriterの複数インスタンスに均等に分配するので、DBSから受け取ったデータを複数のKafkaトピック パーティションに並列的にエクスポートできます。
例
この例では、8つのFILE_WRITERインスタンスと16個のパーティションを使用しています。
DEFINE JOB EXPORT_FROM_TERADATA DESCRIPTION 'Export data from Teradata to Kafka topic partitions using Multiple FileWriter instances' ( STEP EXPORT_THE_DATA ( APPLY TO OPERATOR ( $FILE_WRITER()[8] ATTR ( AccessModuleName = 'libkafkaaxsmod.so', AccessModuleInitStr = '-M P -T <TopicName> -B <BrokerID> -P [0-15] -S y -BKSZ 1200' ) ) SELECT * FROM OPERATOR ( $EXPORT ATTR ( SelectStmt = 'SELECT * FROM S3W001_src;' ) ); ); );
実行する手順
tbuild -C -f kafka_multi.tpt -v jobvar_multiinstance -j kafka15 -Cコマンド ライン オプションは、トピック間でデータを均等に分散する場合は必須です。デフォルトでは、TPTはデータ ストリームからファイル ライターの複数のインスタンスにデータをラウンドロビン方式では分配しません。Dataconnectorの複数インスタンスを実行するTPT-Kafkaエクスポート ジョブでは、tbuildで"-C"を使用します。
AccessModuleKafkaは、ユーザーがインスタンス数よりも少ないパーティション数を指定している場合に、次のエラーを返して終了します。
Dataconnector Instances: %d are greater than total partition count: %d
AccessModuleKafkaは、合計16個のパーティションを振り分けて、2個のパーティションを8つのTPT FileWriterインスタンスに均等に分配します。
KAFKA_AXSMOD: Running in Multi-Instance mode. This is Instance 8 of 8 KAFKA_AXSMOD: Partition : 1 and Instance number : 8 KAFKA_AXSMOD: Partition : 0 and Instance number : 8 KAFKA_AXSMOD: Running in Multi-Instance mode. This is Instance 3 of 8 KAFKA_AXSMOD: Partition : 11 and Instance number : 3 KAFKA_AXSMOD: Partition : 10 and Instance number : 3 KAFKA_AXSMOD: Running in Multi-Instance mode. This is Instance 6 of 8 KAFKA_AXSMOD: Partition : 5 and Instance number : 6 KAFKA_AXSMOD: Partition : 4 and Instance number : 6 KAFKA_AXSMOD: Running in Multi-Instance mode. This is Instance 2 of 8 KAFKA_AXSMOD: Partition : 13 and Instance number : 2 KAFKA_AXSMOD: Partition : 12 and Instance number : 2 KAFKA_AXSMOD: Running in Multi-Instance mode. This is Instance 4 of 8 KAFKA_AXSMOD: Partition : 9 and Instance number : 4 KAFKA_AXSMOD: Partition : 8 and Instance number : 4 KAFKA_AXSMOD: Running in Multi-Instance mode. This is Instance 5 of 8 KAFKA_AXSMOD: Partition : 7 and Instance number : 5 KAFKA_AXSMOD: Partition : 6 and Instance number : 5 KAFKA_AXSMOD: Running in Multi-Instance mode. This is Instance 7 of 8 KAFKA_AXSMOD: Partition : 3 and Instance number : 7 KAFKA_AXSMOD: Partition : 2 and Instance number : 7 KAFKA_AXSMOD: Running in Multi-Instance mode. This is Instance 1 of 8 KAFKA_AXSMOD: Partition : 15 and Instance number : 1 KAFKA_AXSMOD: Partition : 14 and Instance number : 1