Forum Discussion

MoFabricIoT's avatar
MoFabricIoT
Regular Visitor
3 days ago

Changing Ingestions from JSON

I have an EventStream receiving IoT Data out of JSONs. In my KQL table the columns timestamp, deviceId and for example x and y exist. The data from one sensor gets ingested in the columns timestamp, deviceId and y. No x since there is no data in the JSON for that. I dont work with a Mapping because it only makes it more complicated and the names in the JSON and in the KQL table are identical.

No I changed the named for data from y to x when creating the JSON. Since there is no mapping and the column already exists in the KQL table the data should be saved now in column x.

My problem is, it doesn't the data is not in x nor in y. It seems to be gone.

Is that a bug in fabric? Can I solve this?

1 Reply

  • v-csrikanth's avatar
    v-csrikanth
    Community Support

    Hi MoFabricIoT​ 

    The value appearing in neither x nor y is the key clue.

    With no explicit mapping, Kusto uses identity mapping for JSON, matching fields to columns by name and case-sensitively. So first confirm the payload contains exactly "x" — not "X", " x", or a nested variant. That alone would reproduce this.

    Then check whether a mapping already exists (the Eventstream destination can create one even if you didn't):

    .show table <TableName> ingestion mappings

    If it still points to $.y, renaming the producer field won't update it — "Editing the schema doesn't update the mapping of incoming data to table columns during ingestion." Note that an empty .show ingestion failures result doesn't rule this out, as that command doesn't cover every ingestion stage.

    To fix, re-issue the mapping with $.x included:

    .alter table <TableName> ingestion json mapping "<MappingName>"

    .alter is a full mapping replace, so include every column with its existing path and data type — not just x.

    Finally, confirm your destination mode. Under Event processing before ingestion, that layer also shapes which fields reach the table, so the field may be dropped before mapping. And check soon: Eventstream's default retention is one day, and replay is available for Event processing but not Eventhouse (Direct Ingestion).

    Quickest path: JSON casing → ingestion mappings → ingestion mode.

    Reference links:


    Thanks,
    C Srikanth
    Community Support Team