What he said.
On August 30, 2018 at 13:31:54, Joe Witt ([email protected]) wrote: Wow! My apologies for the really bad response I gave linking to the same article you mentioned. I should be more careful when reading/responding on the phone! Thanks On Thu, Aug 30, 2018 at 11:01 AM Matt Burgess <[email protected]> wrote: > > V, > > Currently NiFi does not support specifying a schema in JSONSchema > format, you'll want to convert that to an Avro schema for use in > JsonTreeReader. I don't know JSONSchema that well so I'm not sure if > that "stats" schema is supposed to be included in the outgoing object. > I ran it through a utility-under-development [1] and got the following > Avro schema out: > > {"type":"record","name":"record0","fields":[{"name":"create_date","type":"long"},{"name":"id","type":"string"}]} > > This doesn't add the "stats" record and specifies "create_date" as a > long versus a BigInteger. I think you might want to use an Avro > logical type of "decimal" [2] depending on what the value is in the > actual JSON object: > > {"type":"record","name":"record0","fields":[ > {"name":"create_date","type": {"type": "bytes","logicalType": > "decimal","precision": 12,"scale": 0}}, > {"name":"id","type":"string"} > ]} > > If you have a stats object present, this might work: > > {"type":"record","name":"record0","fields":[ > {"name": "stats", "type" : > {"type":"record","name":"statsRecord","fields":[{"name":"id","type":"string"},{"name":"bin_qualifier","type":"string"}]}}, > {"name":"create_date","type": {"type": "bytes","logicalType": > "decimal","precision": 12,"scale": 0}}, > {"name":"id","type":"string"} > ]} > > I didn't validate or try these so there may be typos or other > (hopefully minor) mistakes. > > Regards, > Matt > > [1] https://github.com/fge/json-schema-avro > [2] https://avro.apache.org/docs/1.8.2/spec.html#Decimal > > On Thu, Aug 30, 2018 at 9:54 AM l vic <[email protected]> wrote: > > > > I have json file for the schema that looks like the following: > > > > { > > "$schema": "http://json-schema.org/draft-04/schema#", > > "definitions": { > > "stats": { > > "type": "object", > > "additionalProperties": false, > > "properties": { > > "id": { > > "type": "string" > > }, > > "bin_qualifier": { > > "type": "string" > > } > > } > > } > > }, > > "additionalProperties": false, > > "description": "attributes", > > "type": "object", > > "properties": { > > "id": { > > "type": "string", > > "required": true, > > }, > > "create_date": { > > "type": "integer", > > "javaType": "java.math.BigInteger", > > "required": true > > } > > } > > } > > > > > > How can I add this schema for JsonTreeReader? > > > > On Thu, Aug 30, 2018 at 9:02 AM Otto Fowler <[email protected]> wrote: > >> > >> The record readers are services, that processors use. > >> When you use a *Record* processor, you will have to select a Reader and a Writer Service, or create one ( which you can do through the UI ). > >> https://blogs.apache.org/nifi/entry/record-oriented-data-with-nifi > >> > >> > >> On August 30, 2018 at 08:48:08, l vic ([email protected]) wrote: > >> > >> So, where's JsonTreeReader? I am on nifi-1.7.1-RC1 and i don't see it in the list of available processors... > >> Thanks, > >> V > >> > >> On Thu, Aug 30, 2018 at 5:31 AM Sivaprasanna <[email protected]> wrote: > >>> > >>> Hi. Just like CSVRecordReader, we have record reader service for JSON. It's called JsonTreeReader. You can use AvroSchemaRegistry and provide an Avro schema (usually generated through InferAvroSchema processor) for your JSON. Refer: https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.json.JsonTreeReader/index.html > >>> > >>> - > >>> Sivaprasanna > >>> > >>> On Thu, 30 Aug 2018 at 2:21 PM, l vic <[email protected]> wrote: > >>>> > >>>> I need to save two different json messages according to json schemas available for each to different relational database tables. > >>>> I saw this blog: > >>>> https://blogs.apache.org/nifi/entry/record-oriented-data-with-nifi > >>>> with example using CSVRecordReader for csv->json transformation. > >>>> but what would be RecordReader for schema-based transformation from json? Is this a valid approach, or what would be best approach to solve this problem? > >>>> I am using: nifi-1.7.1-RC1... > >>>> Thank you,
