Hey there, are you planning to use Debezium + Kafka or Debezium Server or are you still researching?
We currently ingest data into bq with Debezium Server using the Mysql source and the Pubsub sink. We don't use the BQ CDC tables unfortunately. The way we do this is we flatten the messages with ExtractNewRecordState (which you seem to be doing as well) and then send to pubsub with a bigquery subscription and use the big query table schema. We then implement our own procedures to do the merge.
Just aliasing the column names (without needing to inspect and transform them) is pretty easy if you use ExtractNewRecordState. For example, you could do:
transforms.unwrap.add.fields=op:CHANGE_TYPE,source.ts_ns:_CHANGE_SEQUENCE_NUMBER
And then set
add.fields.prefix to be just a single underscore. So you'd then have the op named as the correct psuedo-column for pubsub and then can use a really granular timestamp like the source nanoseconds for the change sequence number. Then the only remaining challenge is mapping the more detailed OP to the CHANGE_TYPE.
Also just FYI your google doc you linked is not publicly accessible.