{ "name": "dataflow5", "properties": { "type": "MappingDataFlow", "typeProperties": { "sources": [ { "dataset": { "referenceName": "Json1", "type": "DatasetReference" }, "name": "source1" }, { "dataset": { "referenceName": "Json1", "type": "DatasetReference" }, "name": "source2" } ], "sinks": [ { "dataset": { "referenceName": "AzureSqlTable2", "type": "DatasetReference" }, "name": "sink1" } ], "transformations": [ { "name": "Flatten1" }, { "name": "Flatten2" }, { "name": "Flatten3" }, { "name": "Flatten4" }, { "name": "Join1" } ], "script": "source(output(\n\t\tstory_count as string,\n\t\tnext as string,\n\t\tprevious as string,\n\t\tresults as (id as string, title as string, summary as string, source_url as string, source_name as string, pub_date as string, image_url as string, attachments as string[], Triggers as (id as string, name as string, logo as string)[], Firms as (id as string, name as string, logo as string)[], {Duns Number} as (id as string, name as string, logo as string)[], Channels as (id as string, name as string, logo as string)[], {Content Types} as (id as string, name as string, logo as string)[], Sources as (id as string, name as string, logo as string)[], previews as string[], duplicates as (id as string, title as string, summary as string, source_url as string, source_name as string)[], duplicate_count as string)[]\n\t),\n\tallowSchemaDrift: true,\n\tvalidateSchema: false,\n\tignoreNoFilesFound: false,\n\tdocumentForm: 'arrayOfDocuments') ~> source1\nsource(output(\n\t\tstory_count as string,\n\t\tnext as string,\n\t\tprevious as string,\n\t\tresults as (id as string, title as string, summary as string, source_url as string, source_name as string, pub_date as string, image_url as string, attachments as string[], Triggers as (id as string, name as string, logo as string)[], Firms as (id as string, name as string, logo as string)[], {Duns Number} as (id as string, name as string, logo as string)[], Channels as (id as string, name as string, logo as string)[], {Content Types} as (id as string, name as string, logo as string)[], Sources as (id as string, name as string, logo as string)[], previews as string[], duplicates as (id as string, title as string, summary as string, source_url as string, source_name as string)[], duplicate_count as string)[]\n\t),\n\tallowSchemaDrift: true,\n\tvalidateSchema: false,\n\tignoreNoFilesFound: false,\n\tdocumentForm: 'arrayOfDocuments') ~> source2\nsource1 foldDown(unroll(results, results),\n\tmapColumn(\n\t\tstory_count,\n\t\tnext,\n\t\tprevious,\n\t\tresults_id = results.id,\n\t\tresults = results\n\t),\n\tskipDuplicateMapInputs: false,\n\tskipDuplicateMapOutputs: false) ~> Flatten1\nFlatten1 foldDown(unroll(results.Triggers),\n\tmapColumn(\n\t\tstory_count,\n\t\tnext,\n\t\tprevious,\n\t\tid = results.Triggers.id,\n\t\tresults_id = results_id\n\t),\n\tskipDuplicateMapInputs: false,\n\tskipDuplicateMapOutputs: false) ~> Flatten2\nsource2 foldDown(unroll(results, results),\n\tmapColumn(\n\t\tstory_count,\n\t\tnext,\n\t\tprevious,\n\t\tresults_id = results.id,\n\t\tresults\n\t),\n\tskipDuplicateMapInputs: false,\n\tskipDuplicateMapOutputs: false) ~> Flatten3\nFlatten3 foldDown(unroll(results.Firms),\n\tmapColumn(\n\t\tstory_count,\n\t\tnext,\n\t\tprevious,\n\t\tresults_id = results_id,\n\t\tFirmsID = results.Firms.id\n\t),\n\tskipDuplicateMapInputs: false,\n\tskipDuplicateMapOutputs: false) ~> Flatten4\nFlatten2, Flatten4 join(Flatten2@story_count == Flatten4@story_count\n\t&& Flatten2@results_id == Flatten4@results_id,\n\tjoinType:'inner',\n\tbroadcast: 'auto')~> Join1\nJoin1 sink(allowSchemaDrift: true,\n\tvalidateSchema: false,\n\tdeletable:false,\n\tinsertable:true,\n\tupdateable:false,\n\tupsertable:false,\n\trecreate:true,\n\tformat: 'table',\n\tskipDuplicateMapInputs: true,\n\tskipDuplicateMapOutputs: true,\n\terrorHandlingOption: 'stopOnFirstError') ~> sink1" } } }