We're Moving!

The Vertica Forum is moving to a new OpenText Analytics Database (Vertica) Community.

Join us there to post discussion topics, learn about

product releases, share tips, access the blog, and much more.

Create My New Community Account Now


DEFAULT values not being populated by Kafka microbatch loader — Vertica Forum

DEFAULT values not being populated by Kafka microbatch loader

We have a structured landing table
CREATE SEQUENCE IF NOT EXISTS seq_landing INCREMENT 1 START WITH 1;
CREATE TABLE IF NOT EXISTS landing (
id INT NOT NULL DEFAULT seq_landing.NEXTVAL,
payload VARCHAR(128) NOT NULL,
PRIMARY KEY(id) ENABLED
) ORDER BY id;
The Kafka message does not specify the ID field as we expect it to be generated by Vertica:
{ "payload": "data payload here"}
However we got load rejection ‘Missing or null value for column with NOT NULL constraint [id]
Wondering why Vertica does not generate the auto-key in this case..

Answers

  • SergeBSergeB - Select Field - Employee

    Hard to tell without knowing more specifics about the parser you are using.
    But when creating your target, try to specify payload as the target column
    vkconfig target --create ....... --target-columns payload
    This should add payload to the COPY statement generated for the microbach.
    COPY landing(payload) KafkaSource....

  • ThePebbleThePebble Vertica Employee Employee

    I can reproduce this with the KafkaParser. I'm not an expert on this, but I suspect the KafkaParser is explicitly setting all fields to NULL if the JSON doesn't contain those fields.

  • ThePebbleThePebble Vertica Employee Employee

    Try explicitly adding the columns you allow the parser to use so that it doesn't touch the not-null ones.
    vkconfig microbatch --update --microbatch landingBatch --target-columns payload

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file