How to change start offset for topic?

后端 未结 4 1057
灰色年华
灰色年华 2020-12-04 12:46

It is possible to change the start offset for a new topic? I would like to create a new topic and start reading from the offset 10000. How?

4条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-04 13:22

    Since kafka 0.11.0.0 you can use the script kafka-consumer-groups.sh Example from this answer

    kafka-consumer-groups.sh --bootstrap-server kafka-host:9092 --group my-group --reset-offsets --to-earliest --all-topics --execute
    

    Other options listed in the KIP-122: Add Reset Consumer Group Offsets tooling

    .----------------------.-----------------------------------------------.----------------------------------------------------------------------------------------------------------------------------------------------.
    |      Scenario        |                   Arguments                   |                                                                    Example                                                                   |
    :----------------------+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------:
    | Reset to Datetime    |  --to-datetime YYYY-MM-DDTHH:mm:SS.sss±hh:mm  |  Reset to first offset since 01 January 2017, 00:00:00 hrs: --reset-offsets –group test.group --topic foo --to-datetime 2017-01-01T00:00:00Z |
    :----------------------+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------:
    | Reset by Duration    |  --by-duration  PnDTnHnMnS                    |  Reset to first offset since one week ago (from current timestamp): --reset-offsets --group test.group --topic foo --by-duration P7D         |
    :----------------------+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------:
    | Reset to Earliest    |  --to-earliest                                |  Reset to earliest offset available: --reset-offsets --group test.group --topic foo --to-earliest                                            |
    :----------------------+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------:
    | Reset to Latest      |  --to-latest                                  |  Reset to latest offset available: --reset-offsets --group test.group --topic foo --to-latest                                                |
    :----------------------+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------:
    | Reset to Offset      |  --to-offset                                  |  Reset to offset 1 in all partitions: --reset-offsets --group test.group --topic foo --to-offset 1                                           |
    :----------------------+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------:
    | Shift Offset by 'n'  |  --shift-by n                                 |  Reset to current offset plus 5 positions: --reset-offsets --group test.group –topic foo --shift-by 5                                        |
    :----------------------+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------:
    | Reset from File      |  --from-file PATH_TO_FILE                     |  Reset using a file with reset plan: --reset-offsets --group test.group --from-file reset-plan.csv                                           |
    '----------------------'-----------------------------------------------'----------------------------------------------------------------------------------------------------------------------------------------------'
    

    You can also define the partition you want to reset, example:

    • Reset offset of topic foo partition 0 to 1

      --reset-offsets --group test.group --topic foo:0 --to-offset 1

    • Reset offset of topic foo partition 0,1,2 to earliest

      --reset-offsets --group test.group --topic foo:0,1,2 --to-earliest

    Reminder: don't forget the --execute flag (see the execution options in the KIP). Without this flag the script will only print out the result of the scenario by scope, for example:

    TOPIC                 PARTITION NEW-OFFSET NEW-LAG LOG-END-OFFSET CONSUMER-ID HOST CLIENT-ID
    foo                   0         90         10      100            -           -    -
    

    Credits to this answer. Table created with ascii tables

提交回复
热议问题