web-dev-qa-db-fra.com

Création d'un schéma avro approprié pour l'enregistrement d'horodatage

Je voudrais savoir quel serait le schéma avro approprié pour une conversion json en avro qui est dans ce format:

{"entryDate": "2018-01-26T12:00:40.930"}

Mon schéma:

{
    "type" : "record",
    "name" : "schema",
    "fields" : [{
        "name" : "entryDate",
        "type" : ["null", {
            "type" : "long",
            "logicalType" : "timestamp-micros"
        }],
        "default" : null
    }]
}

Je continue

`'Cannot convert field entryDate: Cannot resolve union: 
"2018-01-26T12:00:40.930" 
not in 
["null",{"type":"long","logicalType":"timestamp-millis"}]'`
8
koala421

C'était une erreur stupide ... évidemment, je stockais la valeur d'horodatage sous forme de chaîne, donc le schéma avro avait besoin d'une chaîne au lieu de longue pour le type.

c'est à dire.

{
    "type" : "record",
    "name" : "schema",
    "fields" : [{
        "name" : "entryDate",
        "type" : ["null", {
            "type" : `**"long"**`,
            "logicalType" : "timestamp-micros"
        }],
        "default" : null
    }]
}

devrait être

{
    "type" : "record",
    "name" : "schema",
    "fields" : [{
        "name" : "entryDate",
        "type" : ["null", {
            "type" : `**"string"**`,
            "logicalType" : "timestamp-micros"
        }],
        "default" : null
    }]
}

doh!

9
koala421