Forum Discussion
Dataflow Gen2 File Destination - JSON and Parquet Format Support Needed for Nested OData Data
- 4 months ago
Hi pwr20 ,
Currently, Microsoft Fabric Dataflow Gen2 supports only CSV/delimited formats for file-based destinations such as Lakehouse Files and ADLS Gen2. These formats do not support nested data structures, which makes them unsuitable for landing raw nested OData data without flattening.
When working with nested OData navigation properties, Dataflow Gen2 treats nested records as unsupported for tabular or file destinations. As a result, nested columns are either dropped or replaced with null values when writing to Lakehouse tables, staging destinations, or files. Fully expanding nested data within Dataflow can work for small volumes but does not scale reliably, especially when using an on‑premises data gateway, due to sequential API calls and timeout limitations.
At this time, JSON or Parquet file destinations are not available in Dataflow Gen2, and there is no built‑in, scalable solution to preserve nested OData structures end‑to‑end. This is a current product limitation, not a configuration issue.
I’d encourage you to submit your detailed feedback and ideas via Microsoft's official feedback channels, such as the Microsoft Fabric Ideas.
Feedback submitted here is often reviewed by the product teams and can lead to meaningful improvement.
Thanks,
Prashanth
Hi pwr20
The Lakehouse Files destination (currently in Preview) only supports writing CSV files. The ADLS Gen2 destination is also in Preview but limited to delimited format. You should submit this as a feature request at aka.ms/FabricIdeas
Your diagnosis is accurate. Dataflows treat nested records in columns as errors and replace them with null when writing to tabular destinations.
There is no clean solution but try this
Serialize nested columns to JSON text in M before writing to a table destination. In Power Query, use Text.FromBinary(Json.FromValue([NestedColumn])) to convert each nested column into a JSON string. Write those string columns to a Lakehouse table. Then parse them back in a Notebook downstream. This preserves the structure without needing to expand navigation properties.