<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>All Data Engineering posts</title>
    <link>https://community.fabric.microsoft.com/t5/Data-Engineering/bd-p/ac_dataengineering</link>
    <description>All Data Engineering posts</description>
    <pubDate>Tue, 15 Sep 2026 16:32:04 GMT</pubDate>
    <dc:creator>ac_dataengineering</dc:creator>
    <dc:date>2026-09-15T16:32:04Z</dc:date>
    <item>
      <title>Re: Need to Migrate SP written in Synapse to Fabric</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Need-to-Migrate-SP-written-in-Synapse-to-Fabric/m-p/5367071#M17955</link>
      <description>&lt;P&gt;Hi ​,&lt;/P&gt;&lt;P&gt;If these stored procedures are coming from a &lt;STRONG&gt;Synapse dedicated SQL pool&lt;/STRONG&gt;, I would not migrate them one-by-one manually as the first approach.&lt;/P&gt;&lt;P&gt;Microsoft now has a &lt;A href="https://learn.microsoft.com/en-us/fabric/data-warehouse/migration-assistant" target="_blank"&gt;Fabric Migration Assistant for Data Warehouse&lt;/A&gt; specifically designed for migrations such as Synapse dedicated SQL pool → Fabric Warehouse. It can assess and migrate database metadata including tables, views, functions and stored procedures, and then flag the T-SQL that is not compatible with Fabric.&lt;/P&gt;&lt;P&gt;You can feed it a &lt;STRONG&gt;DACPAC, SQL files or a SQL database project&lt;/STRONG&gt;, so a practical approach would be:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Extract the Synapse schema/code into a DACPAC or SQL database project.&lt;/LI&gt;&lt;LI&gt;Run it through the Migration Assistant.&lt;/LI&gt;&lt;LI&gt;Let the assistant migrate the compatible objects automatically.&lt;/LI&gt;&lt;LI&gt;Use the Fix problems step for the stored procedures that contain unsupported or different T-SQL.&lt;/LI&gt;&lt;LI&gt;Test the converted procedures side-by-side against Synapse before cutting over.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;BR /&gt;Microsoft's current &lt;A href="https://learn.microsoft.com/en-us/fabric/data-warehouse/migration-synapse-dedicated-sql-pool-warehouse" target="_blank"&gt;Synapse dedicated SQL pool migration guidance&lt;/A&gt; also recommends assessing and refactoring database code rather than assuming a completely syntax-compatible lift-and-shift.&lt;/P&gt;&lt;P&gt;Fabric Warehouse does support stored procedures, but the &lt;A href="https://learn.microsoft.com/en-us/fabric/data-warehouse/tsql-surface-area" target="_blank"&gt;current T-SQL surface area&lt;/A&gt; is not identical to Synapse/SQL Server, which is why you are seeing syntax differences. Some constructs still need refactoring, while other capabilities have improved recently - for example, MERGE is now generally available and temporary tables are supported.&lt;/P&gt;&lt;P&gt;So I would avoid manually rewriting everything until you have run the procedures through the Migration Assistant and identified exactly which patterns are incompatible.&lt;/P&gt;&lt;P&gt;One important question: are your procedures running in a &lt;STRONG&gt;Synapse dedicated SQL pool or serverless SQL pool&lt;/STRONG&gt;? The automated Migration Assistant documentation currently targets dedicated SQL pools, so the recommended path is slightly different for serverless.&lt;/P&gt;&lt;P&gt;If you can share one of the stored procedures that is producing several syntax errors, we could also look at the specific Synapse constructs that need to change in Fabric.&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;STRONG&gt;AI-assisted drafting:&lt;/STRONG&gt; AI was used to help structure and phrase this response. I reviewed and validated the technical content before posting.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Tue, 15 Sep 2026 15:20:34 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Need-to-Migrate-SP-written-in-Synapse-to-Fabric/m-p/5367071#M17955</guid>
      <dc:creator>ShivekMaharaj</dc:creator>
      <dc:date>2026-09-15T15:20:34Z</dc:date>
    </item>
    <item>
      <title>Need to Migrate SP written in Synapse to Fabric</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Need-to-Migrate-SP-written-in-Synapse-to-Fabric/m-p/5367055#M17954</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I need to migrate my stored prodecure SP from synapse to Fabric, can you please help me with best approach. I am seeing a lot of syntax changes. Suggest me some best, quickest and efficient ways to migrate.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 14:50:23 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Need-to-Migrate-SP-written-in-Synapse-to-Fabric/m-p/5367055#M17954</guid>
      <dc:creator>maxravi</dc:creator>
      <dc:date>2026-09-15T14:50:23Z</dc:date>
    </item>
    <item>
      <title>Re: Bronze data contracts for REST/API sources — workaround for Get Metadata's connector gap</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Bronze-data-contracts-for-REST-API-sources-workaround-for-Get/m-p/5367020#M17953</link>
      <description>&lt;P&gt;Thanks all. The feedback has largely confirmed my thinking that there isn't currently a native REST equivalent of Get Metadata in Fabric pipelines. My current leaning is to keep a common bronze contract pattern across source types:&lt;/P&gt;&lt;P&gt;SQL → land → obtain source schema → compare to contract&lt;/P&gt;&lt;P&gt;API → land → read Parquet schema → compare to contract&lt;/P&gt;&lt;P&gt;The goal is to keep contract validation source-agnostic once data has landed.&lt;/P&gt;&lt;P&gt;The raw JSON landing suggestion is interesting, particularly from a replay/audit perspective. I'm currently balancing that against the simplicity of landing directly to Parquet and validating the materialised schema.&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 13:10:42 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Bronze-data-contracts-for-REST-API-sources-workaround-for-Get/m-p/5367020#M17953</guid>
      <dc:creator>Damomac</dc:creator>
      <dc:date>2026-09-15T13:10:42Z</dc:date>
    </item>
    <item>
      <title>Re: Claude Code Integrate with Power Bi</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Claude-Code-Integrate-with-Power-Bi/m-p/5367010#M17952</link>
      <description>&lt;P&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1626597" data-lia-user-login="Yash8160" class="lia-mention lia-mention-user"&gt;Yash8160​&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Thank you for reaching out to Microsoft Fabric Community.&lt;/P&gt;
&lt;P&gt;For this POC, you can integrate Claude code with power bi using Microsoft’s Power BI Authoring skill for Fabric. This allows Claude code to work with power bi report and semantic model artifacts.&lt;/P&gt;
&lt;P&gt;There is no fixed number of Claude code credits or tokens per power bi report or page. The consumption depends on the Claude model used and the complexity of the authoring task. So, build one representative report page, record its token usage, and use it as a baseline to estimate the remaining POC, including some allowance for testing and rework&lt;/P&gt;
&lt;P&gt;For reference, follow the below documentation:&lt;BR /&gt;&lt;A href="https://github.com/microsoft/skills-for-fabric" target="_blank"&gt;Skills for Fabric&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/fundamentals/skills-for-fabric-install" target="_blank"&gt;Install Skills for Fabric&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Thanks and regards,&lt;BR /&gt;Anjan Kumar Chippa&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 12:23:21 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Claude-Code-Integrate-with-Power-Bi/m-p/5367010#M17952</guid>
      <dc:creator>v-achippa</dc:creator>
      <dc:date>2026-09-15T12:23:21Z</dc:date>
    </item>
    <item>
      <title>Is it possible connect via a guest account to a Delta table in a Lakehouse from another tenant.</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Is-it-possible-connect-via-a-guest-account-to-a-Delta-table-in-a/m-p/5366990#M17951</link>
      <description>&lt;P&gt;We have the following architecture in Microsoft Fabric:&lt;/P&gt;&lt;LI-CODE lang=""&gt;Open Mirroring Database         ↓ Notebook         ↓ Materialized Delta Tables (Lakehouse)         ↓ Shortcuts into Connection Lakehouse         ↓ Power BI Desktop (Azure Data Lake Storage Gen2 connector)         ↓ DeltaLake.Table()&lt;/LI-CODE&gt;&lt;LI-CODE lang="powerquery"&gt;Source =     AzureStorage.DataLake(         "https://onelake.dfs.fabric.microsoft.com/&amp;lt;workspace-id&amp;gt;/&amp;lt;lakehouse-id&amp;gt;/Tables",         [HierarchicalNavigation = true]     ),  dbo = Source{[Name="dbo"]}[Content], TableName = dbo{[Name="&amp;lt;table_name&amp;gt;"]}[Content], Data = DeltaLake.Table(TableName)&lt;/LI-CODE&gt;&lt;H3&gt;What works&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;Internal users in the hosting tenant can successfully create the connection.&lt;/LI&gt;&lt;LI&gt;At least one external Entra B2B Guest user can successfully create the connection.&lt;/LI&gt;&lt;LI&gt;If we create and publish the semantic model ourselves, external customers can copy/use the model successfully.&lt;/LI&gt;&lt;LI&gt;Existing reports refresh successfully once deployed.&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;What fails&lt;/H3&gt;&lt;P&gt;Several external customer users that have been invited into our tenant as Entra B2B Guests receive a &lt;STRONG&gt;404 error&lt;/STRONG&gt; when attempting to create a new Azure Data Lake Storage Gen2 connection directly from Power BI Desktop.&lt;/P&gt;&lt;P&gt;The users have:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Accepted the guest invitation.&lt;/LI&gt;&lt;LI&gt;Been granted access to the Fabric workspace(Contributor)&lt;/LI&gt;&lt;LI&gt;Been granted access to the Lakehouse.&lt;/LI&gt;&lt;LI&gt;Been added as Guest users in Entra ID.&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;Observations&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;The issue is affecting multiple customers, not just a single user.&lt;/LI&gt;&lt;LI&gt;The same Lakehouse, shortcut tables, and Power Query logic work for other users.&lt;/LI&gt;&lt;LI&gt;A Guest account from one customer tenant works, while Guest accounts from several other customer tenants receive a 404.&lt;/LI&gt;&lt;LI&gt;This suggests the issue may be related to cross-tenant authentication, OneLake access resolution, or the ADLS Gen2 connector rather than permissions on the Fabric artifacts themselves.&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;Questions&lt;/H3&gt;&lt;OL&gt;&lt;LI&gt;Are there known limitations or issues with Azure Data Lake Storage Gen2 connections to OneLake for some Entra B2B Guest users?&lt;/LI&gt;&lt;LI&gt;Are there specific cross-tenant access settings, trust settings, or Conditional Access configurations that can cause a 404 during OneLake path resolution?&lt;/LI&gt;&lt;LI&gt;Is there a recommended approach for external customers connecting directly to OneLake Delta tables via the ADLS Gen2 connector?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Any guidance would be appreciated.&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 11:21:00 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Is-it-possible-connect-via-a-guest-account-to-a-Delta-table-in-a/m-p/5366990#M17951</guid>
      <dc:creator>FabricEnjoyer</dc:creator>
      <dc:date>2026-09-15T11:21:00Z</dc:date>
    </item>
    <item>
      <title>Re: Bronze data contracts for REST/API sources — workaround for Get Metadata's connector gap</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Bronze-data-contracts-for-REST-API-sources-workaround-for-Get/m-p/5366956#M17950</link>
      <description>&lt;P&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="760485" data-lia-user-login="damo_mac85" class="lia-mention lia-mention-user"&gt;damo_mac85​&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Thank you for reaching out to Microsoft Fabric Community.&lt;/P&gt;
&lt;P&gt;Thank you &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="38" data-lia-user-login="GilbertQ" class="lia-mention lia-mention-user"&gt;GilbertQ​&lt;/a&gt; and &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1270137" data-lia-user-login="ShivekMaharaj" class="lia-mention lia-mention-user"&gt;ShivekMaharaj​&lt;/a&gt; for the prompt response.&lt;/P&gt;
&lt;P&gt;As we haven’t heard back from you, we wanted to kindly follow up to check if the solution provided by the user's for the issue worked? or let us know if you need any further assistance.&lt;/P&gt;
&lt;P&gt;Thanks and regards,&lt;BR /&gt;Anjan Kumar Chippa&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 09:57:27 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Bronze-data-contracts-for-REST-API-sources-workaround-for-Get/m-p/5366956#M17950</guid>
      <dc:creator>v-achippa</dc:creator>
      <dc:date>2026-09-15T09:57:27Z</dc:date>
    </item>
    <item>
      <title>Re: Pure Python Notebook: authenticate to Azure DevOps Artifacts using Fabric Workspace Identity</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Pure-Python-Notebook-authenticate-to-Azure-DevOps-Artifacts/m-p/5366953#M17949</link>
      <description>&lt;P&gt;Python notebook in Fabric has no step that turns its Workspace Identity into an Azure DevOps / Azure Artifacts token for pip install --index-url, and the simple path is reading a PAT from Azure Key Vault and giving that value to pip.&lt;/P&gt;&lt;P&gt;The token API only gives audiences like storage, pbi, keyvault, and kusto, and Python notebooks do not take part in the Environment flow that Spark uses for Azure Artifacts. The Python kernel has no credential provider capable of producing an Azure DevOps audience token. This is a structural limitation of the current Python kernel architecture, not a missing feature in the documentation.　&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 09:55:46 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Pure-Python-Notebook-authenticate-to-Azure-DevOps-Artifacts/m-p/5366953#M17949</guid>
      <dc:creator>Kagiyama_yutaka</dc:creator>
      <dc:date>2026-09-15T09:55:46Z</dc:date>
    </item>
    <item>
      <title>Claude Code Integrate with Power Bi</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Claude-Code-Integrate-with-Power-Bi/m-p/5366951#M17948</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;I’m working on a POC for Power BI + Claude Integration, specifically the Report Authoring skill.We need to use Claude Code to create the required report pages and visuals. I’m currently trying to estimate the Claude Code credit/token consumption and approximate cost for completing this POC.&lt;/P&gt;&lt;P&gt;Has anyone worked on a similar POC using Claude Code? If so, could you please share:&lt;/P&gt;&lt;P&gt;Approximate credits/tokens consumed&lt;/P&gt;&lt;P&gt;Estimated cost&lt;/P&gt;&lt;P&gt;Any recommendations for estimating the usage before starting&lt;/P&gt;&lt;P&gt;Any guidance or experience would be really helpful. Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 09:54:54 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Claude-Code-Integrate-with-Power-Bi/m-p/5366951#M17948</guid>
      <dc:creator>Yash8160</dc:creator>
      <dc:date>2026-09-15T09:54:54Z</dc:date>
    </item>
    <item>
      <title>Re: FTL4 Trial Spark failing - InvalidRequestClusterFromFabricDenyList - Cluster Cancelled before Ready</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/FTL4-Trial-Spark-failing-InvalidRequestClusterFromFabricDenyList/m-p/5366943#M17947</link>
      <description>&lt;P&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1779098" data-lia-user-login="pritwade" class="lia-mention lia-mention-user"&gt;pritwade​&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;As we haven’t heard back from you, we wanted to kindly follow up to check if your issue is resolved? or have you raised a support ticket?&lt;/P&gt;
&lt;P&gt;Thanks and regards,&lt;BR /&gt;Anjan Kumar Chippa&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 09:44:26 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/FTL4-Trial-Spark-failing-InvalidRequestClusterFromFabricDenyList/m-p/5366943#M17947</guid>
      <dc:creator>v-achippa</dc:creator>
      <dc:date>2026-09-15T09:44:26Z</dc:date>
    </item>
    <item>
      <title>Re: Background CU used in Fabric Capacity Metrics</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Background-CU-used-in-Fabric-Capacity-Metrics/m-p/5366878#M17946</link>
      <description>&lt;P&gt;If you don’t mind, could you add a little more detail about how your pipelines and notebooks are running? For example, it helps to know roughly how many activities are running at the same time, and whether your notebooks are using autoscale or fixed Spark settings. This makes it easier to understand whether the background CU is coming from parallel pipeline runs, Spark sessions that stayed alive, or carry‑forward from previous workloads.&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 06:14:05 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Background-CU-used-in-Fabric-Capacity-Metrics/m-p/5366878#M17946</guid>
      <dc:creator>Kagiyama_yutaka</dc:creator>
      <dc:date>2026-09-15T06:14:05Z</dc:date>
    </item>
    <item>
      <title>Re: Approach for automating Dataflow Gen2 connection binding across Dev/Prod?</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Approach-for-automating-Dataflow-Gen2-connection-binding-across/m-p/5366853#M17945</link>
      <description>&lt;P&gt;Dataflow Gen2 keeps the connection tied to the workspace, and CI/CD doesn’t move it, and there’s no REST or SPN way to rebind it after a deploy.&lt;/P&gt;&lt;P&gt;Just make the same connection in Prod ahead of time, push the flow, open each query and pick that Prod connection yourself. For bigger flows people usually split the dataflow so the reconnect work stays manageable.　&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 05:00:02 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Approach-for-automating-Dataflow-Gen2-connection-binding-across/m-p/5366853#M17945</guid>
      <dc:creator>Kagiyama_yutaka</dc:creator>
      <dc:date>2026-09-15T05:00:02Z</dc:date>
    </item>
    <item>
      <title>Re: Background CU used in Fabric Capacity Metrics</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Background-CU-used-in-Fabric-Capacity-Metrics/m-p/5366841#M17944</link>
      <description>&lt;P&gt;HI &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1781640" data-lia-user-login="dinhhoa" class="lia-mention lia-mention-user"&gt;dinhhoa​&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Checking in to see if your issue has been resolved. let us know if you still need any assistance.&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 04:27:51 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Background-CU-used-in-Fabric-Capacity-Metrics/m-p/5366841#M17944</guid>
      <dc:creator>v-saisrao-msft</dc:creator>
      <dc:date>2026-09-15T04:27:51Z</dc:date>
    </item>
    <item>
      <title>Approach for automating Dataflow Gen2 connection binding across Dev/Prod?</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Approach-for-automating-Dataflow-Gen2-connection-binding-across/m-p/5366781#M17943</link>
      <description>&lt;P&gt;We're deploying Dataflow Gen2 from Dev to Prod via fabric-cicd with all destination Lakehouse IDs and source parameters fully parameterized.&amp;nbsp;Definitions deploy cleanly.&lt;/P&gt;&lt;P&gt;The blocker: every query's data source connection has to be manually reconfigured in the target workspace — "Configure connection" doesn't auto-bind to an existing connection object even when one already exists for that connector, and this has to be repeated per query/table, not once per Dataflow. Docs confirm this is expected ("connections are statically bound... can't be altered using workspace variables or parameterization"), but that leaves genuine automation impossible for Dataflows with many tables (~47 in our case).&lt;/P&gt;&lt;P&gt;And it is even not possible to update connection. It seems that each table has to be created fresh in Prod.&lt;/P&gt;&lt;P&gt;Has anyone found a real workaround — Service Principal-based automation, REST API call to bind connections post-deploy etc.&lt;/P&gt;&lt;P&gt;What's actually working for people running CI/CD from Dev to Prod at scale here?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Mon, 14 Sep 2026 19:53:22 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Approach-for-automating-Dataflow-Gen2-connection-binding-across/m-p/5366781#M17943</guid>
      <dc:creator>lavginqo2</dc:creator>
      <dc:date>2026-09-14T19:53:22Z</dc:date>
    </item>
    <item>
      <title>Re: Pure Python Notebook: authenticate to Azure DevOps Artifacts using Fabric Workspace Identity</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Pure-Python-Notebook-authenticate-to-Azure-DevOps-Artifacts/m-p/5366778#M17942</link>
      <description>&lt;P&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1783442" data-lia-user-login="llueg" class="lia-mention lia-mention-user"&gt;llueg​&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;I think you have found a real gap between the current &lt;STRONG&gt;pure Python notebook&lt;/STRONG&gt; experience and the newer Workspace Identity support for Azure Artifacts.&lt;/P&gt;&lt;P&gt;As far as the current documentation goes, I don't see a supported way for a pure Python notebook to directly request an Azure DevOps/Azure Artifacts access token from its Workspace Identity and pass that token to &lt;STRONG&gt;pip&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;The reason is that &lt;A href="https://learn.microsoft.com/en-us/fabric/data-engineering/notebookutils/notebookutils-credentials" target="_blank"&gt;NotebookUtils credential token acquisition&lt;/A&gt; currently documents only &lt;STRONG&gt;storage&lt;/STRONG&gt;, &lt;STRONG&gt;pbi&lt;/STRONG&gt;, &lt;STRONG&gt;keyvault &lt;/STRONG&gt;and &lt;STRONG&gt;kusto &lt;/STRONG&gt;as supported token audiences. Azure DevOps isn't exposed as a documented audience, so I wouldn't rely on passing an Azure DevOps resource ID to &lt;STRONG&gt;getToken()&lt;/STRONG&gt; as an undocumented workaround.&lt;/P&gt;&lt;P&gt;There is, however, a newer PAT-less path that gets very close to what you want. Fabric now supports authenticating an &lt;STRONG&gt;Azure Artifact Feed&lt;/STRONG&gt; connection with the Workspace Identity. The Workspace Identity can be added to the Azure DevOps feed with at least &lt;STRONG&gt;Feed Reader&lt;/STRONG&gt;, and Fabric then uses that authenticated connection when resolving packages in a Fabric Environment.&lt;/P&gt;&lt;P&gt;Microsoft documents that flow under &lt;A href="https://learn.microsoft.com/en-us/fabric/data-engineering/environment-manage-library" target="_blank"&gt;library management for Fabric Environments&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;The limitation for your scenario is that the current &lt;A href="https://learn.microsoft.com/en-us/fabric/data-engineering/using-python-experience-on-notebook" target="_blank"&gt;pure Python notebook documentation&lt;/A&gt; explicitly lists &lt;STRONG&gt;Environment integration as unavailable for Python notebooks&lt;/STRONG&gt;. That Workspace Identity → Azure Artifacts flow therefore currently helps Spark notebooks using Fabric Environments, but it doesn't give a pure Python notebook a token that can be handed directly to &lt;STRONG&gt;pip install --index-url&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;There is also the newer &lt;A href="https://learn.microsoft.com/en-us/fabric/data-engineering/fabric-connection-with-notebook" target="_blank"&gt;Fabric Connection integration for notebooks&lt;/A&gt;, which supports Workspace Identity authentication and is currently in Preview, but I haven't found Microsoft documentation showing an Azure Artifact Feed connection credential being exposed for direct &lt;STRONG&gt;pip &lt;/STRONG&gt;authentication in a pure Python notebook.&lt;/P&gt;&lt;P&gt;So at the moment I would describe it as:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Spark notebook + Fabric Environment&lt;/STRONG&gt;: Workspace Identity → Azure Artifacts is supported.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Pure Python notebook + direct pip install&lt;/STRONG&gt;: I don't see a documented Workspace Identity-based Azure DevOps token flow yet.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;BR /&gt;For pure Python, your Key Vault-backed PAT remains the documented practical option unless Microsoft extends the Environment/Azure Artifact Feed integration to the Python kernel or exposes Azure DevOps as a supported notebook credential audience.&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;STRONG&gt;AI-assisted drafting:&lt;/STRONG&gt; AI was used to help structure and phrase this response. I reviewed and validated the technical content before posting.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Mon, 14 Sep 2026 19:42:36 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Pure-Python-Notebook-authenticate-to-Azure-DevOps-Artifacts/m-p/5366778#M17942</guid>
      <dc:creator>ShivekMaharaj</dc:creator>
      <dc:date>2026-09-14T19:42:36Z</dc:date>
    </item>
    <item>
      <title>Re: New Browser Tab Opening to Previous or Existing Session</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/New-Browser-Tab-Opening-to-Previous-or-Existing-Session/m-p/5366757#M17941</link>
      <description>&lt;P&gt;This seems to be a "feature" rolled out over the summer and it drives me crazy. We actually need different tabs within the same workspace (dealing with items from different source systems) and the number of tabs takes up too much real estate and can cause notebook connections to go weird. Then I'm jumping through 10 tabs to see where the problem is. Has slowed down me and my teams' productivity.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Sep 2026 18:16:31 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/New-Browser-Tab-Opening-to-Previous-or-Existing-Session/m-p/5366757#M17941</guid>
      <dc:creator>KentKMishra</dc:creator>
      <dc:date>2026-09-14T18:16:31Z</dc:date>
    </item>
    <item>
      <title>Re: GraphQL update... mutation for Fabric SQL DB failing</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/GraphQL-update-mutation-for-Fabric-SQL-DB-failing/m-p/5366677#M17940</link>
      <description>&lt;P&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1550082" data-lia-user-login="Kagiyama_yutaka" class="lia-mention lia-mention-user"&gt;Kagiyama_yutaka​&lt;/a&gt;,&amp;nbsp;&lt;BR /&gt;the update mutation requires the pk column as the query's first argument so it can identify the row to update. The PK column itself is not updated in the update snippet I posted initially.&amp;nbsp;&lt;BR /&gt;I only send the writable column or am I misreading something?&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Best&lt;BR /&gt;Martin&lt;/P&gt;</description>
      <pubDate>Mon, 14 Sep 2026 13:47:20 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/GraphQL-update-mutation-for-Fabric-SQL-DB-failing/m-p/5366677#M17940</guid>
      <dc:creator>msturzen</dc:creator>
      <dc:date>2026-09-14T13:47:20Z</dc:date>
    </item>
    <item>
      <title>Re: Is a table ordinary, or special (= from a shortcut, a system table or materialized lake view table)?</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Is-a-table-ordinary-or-special-from-a-shortcut-a-system-table-or/m-p/5366675#M17939</link>
      <description>&lt;P&gt;Thank you, &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="819528" data-lia-user-login="v-aatheeque" class="lia-mention lia-mention-user"&gt;v-aatheeque​&lt;/a&gt;. Your response is helpful. Hopefully, an easier--and unified--way to get these details will be added in the future. Thanks, again, for your help!&lt;/P&gt;</description>
      <pubDate>Mon, 14 Sep 2026 13:43:14 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Is-a-table-ordinary-or-special-from-a-shortcut-a-system-table-or/m-p/5366675#M17939</guid>
      <dc:creator>Ben-Dev</dc:creator>
      <dc:date>2026-09-14T13:43:14Z</dc:date>
    </item>
    <item>
      <title>Re: GraphQL update... mutation for Fabric SQL DB failing</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/GraphQL-update-mutation-for-Fabric-SQL-DB-failing/m-p/5366672#M17938</link>
      <description>&lt;P&gt;Sorry for being unresponsive for the last 2 weeks. Had to take a few days off.&amp;nbsp;&lt;BR /&gt;I raised a support ticket that is currently being worked on. I'll post updates asap.&amp;nbsp;&lt;BR /&gt;Best&lt;BR /&gt;Martin&lt;/P&gt;</description>
      <pubDate>Mon, 14 Sep 2026 13:38:30 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/GraphQL-update-mutation-for-Fabric-SQL-DB-failing/m-p/5366672#M17938</guid>
      <dc:creator>msturzen</dc:creator>
      <dc:date>2026-09-14T13:38:30Z</dc:date>
    </item>
    <item>
      <title>From On-Premises SQL Server to Microsoft Fabric with a Metadata-Driven Medallion Pipeline</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/From-On-Premises-SQL-Server-to-Microsoft-Fabric-with-a-Metadata/m-p/5366641#M17937</link>
      <description>&lt;P&gt;In this demo, I use DataCoolie to move WideWorldImporters data from an on-premises SQL Server into Microsoft Fabric. The pipeline is driven by one &lt;STRONG&gt;&lt;SPAN class="lia-text-color-21"&gt;metadata.json&lt;/SPAN&gt;&lt;/STRONG&gt; file and follows the Bronze, Silver, and Gold pattern.&lt;/P&gt;&lt;P&gt;The focus here is the Fabric execution flow, not the earlier development process.&lt;/P&gt;&lt;P&gt;The complete sample is available in the &lt;A href="https://github.com/datacoolie/dc-demo-fabric" target="_blank"&gt;datacoolie/dc-demo-fabric repository&lt;/A&gt;.&lt;/P&gt;&lt;H2&gt;Architecture&lt;/H2&gt;&lt;P&gt;The SQL Server remains on-premises, so ingestion runs from an external Polars runner. Downstream processing runs inside Fabric:&lt;/P&gt;&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Stage&lt;/th&gt;&lt;th&gt;Runtime&lt;/th&gt;&lt;th&gt;Output&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;source2bronze&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;On-premises Polars&lt;/td&gt;&lt;td&gt;Parquet in &lt;STRONG&gt;Files/bronze&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;bronze2silver&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Fabric Python 3.12 notebook with Polars and delta-rs&lt;/td&gt;&lt;td&gt;Delta tables in &lt;STRONG&gt;silver&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;silver2gold&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Fabric Spark notebook&lt;/td&gt;&lt;td&gt;Delta tables in &lt;STRONG&gt;gold&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;&lt;img /&gt;&lt;P&gt;The workspace uses two Lakehouses:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;lh_wwi_medallion_demo&lt;/STRONG&gt;&lt;BR /&gt;├── Files/bronze&lt;BR /&gt;├── Tables/silver&lt;BR /&gt;└── Tables/gold&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;lh_etl&lt;/STRONG&gt;&lt;BR /&gt;└── Files/control/test-fabric&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── metadata/current/metadata.json&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── logs&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; └── watermarks&lt;/P&gt;&lt;P&gt;This keeps operational state separate from business data while allowing every runtime to use the same metadata and watermarks.&lt;/P&gt;&lt;img /&gt;&lt;H2&gt;One metadata file, three stages&lt;/H2&gt;&lt;P&gt;The final metadata contains four connections, 68 dataflows, and shared schema hints. Each dataflow declares its stage, source, destination, load type, watermark, merge keys, or SQL query. The runner remains generic: it reads this file and receives only the stage name it should execute.&lt;/P&gt;&lt;P&gt;The Fabric environment maps logical connections to:&lt;/P&gt;&lt;P&gt;bronze_parquet → Files/bronze&amp;nbsp;&lt;BR /&gt;silver_delta → Tables/silver&lt;BR /&gt;gold_delta → Tables/gold&lt;/P&gt;&lt;img /&gt;&lt;P&gt;Note: An AI agent will assist in generating the metadata.json file.&lt;/P&gt;&lt;H2&gt;Uploading the artifacts with Fabric CLI&lt;/H2&gt;&lt;P&gt;After creating the two Lakehouses, install the Fabric CLI, authenticate, upload the metadata, and import the two notebooks:&lt;/P&gt;&lt;LI-CODE lang="powershell"&gt;pip install --upgrade ms-fabric-cli fab auth login  $workspace = 'wwi_medallion_demo_test_fabric.Workspace' $etl = "$workspace/lh_etl.Lakehouse"  fab mkdir "$etl/Files/control/test-fabric/metadata/current" fab cp '.\metadata.json' `   "$etl/Files/control/test-fabric/metadata/current/metadata.json" -f  fab import "$workspace/run_fabric_polars.Notebook" `   -i '.\runners\run_fabric_polars.ipynb' --format ipynb -f fab import "$workspace/run_fabric_spark.Notebook" `   -i '.\runners\run_fabric_spark.ipynb' --format ipynb -f&lt;/LI-CODE&gt;&lt;H2&gt;Stage 1: SQL Server to Bronze&lt;/H2&gt;&lt;P&gt;The on-premises runner reads 31 business tables and appends raw Parquet batches to OneLake. Every table has a watermark: ValidFrom, LastEditedWhen, or VehicleTemperatureID. Timestamp-based flows reread a one-day overlap to reduce the chance of missing late records.&lt;/P&gt;&lt;P&gt;Bronze files are organized by ingestion date:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Files/bronze/&amp;lt;schema&amp;gt;__&amp;lt;table&amp;gt;/YYYY/MM/DD/&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;This stage still runs on-premises because it requires SQL Server connectivity:&lt;/P&gt;&lt;LI-CODE lang="powershell"&gt;$control = 'abfss://wwi_medallion_demo_test_fabric@onelake.dfs.fabric.microsoft.com/lh_etl.Lakehouse/Files/control/test-fabric'  python '.\runners\run_fabric_polars_azure_sdk.py' `   --metadata-path "$control/metadata/current/metadata.json" `   --watermark-base-path "$control/watermarks" `   --base-log-path "$control/logs" `   --stage source2bronze --max-workers 4&lt;/LI-CODE&gt;&lt;img /&gt;&lt;H2&gt;Stage 2: Bronze to Silver&lt;/H2&gt;&lt;P&gt;A Fabric Python notebook runs this stage with Polars and delta-rs, without Spark. It reads new Bronze files through &lt;STRONG&gt;__file_modification_time&lt;/STRONG&gt;, removes duplicate source keys, and performs a Delta &lt;STRONG&gt;merge_upsert &lt;/STRONG&gt;for all 31 tables.&lt;/P&gt;&lt;P&gt;The result is a current-state Silver replica while Bronze keeps the raw append history.&lt;/P&gt;&lt;P&gt;After Bronze is ready, start the notebook with Fabric CLI. The Lakehouse configuration binds the notebook to &lt;STRONG&gt;lh_wwi_medallion_demo&lt;/STRONG&gt;:&lt;/P&gt;&lt;LI-CODE lang="powershell"&gt;$lakehouseConfig = '{"defaultLakehouse":{"name":"lh_wwi_medallion_demo","id":"&amp;lt;lakehouse-id&amp;gt;","workspaceId":"&amp;lt;workspace-id&amp;gt;"}}'  fab job run "$workspace/run_fabric_polars.Notebook" `   -P "STAGE:string=bronze2silver,_inlineInstallationEnabled:bool=true" `   -C $lakehouseConfig --timeout 3600&lt;/LI-CODE&gt;&lt;img /&gt;&lt;H2&gt;Stage 3: Silver to Gold&lt;/H2&gt;&lt;P&gt;The final stage runs in a Fabric Spark notebook. SQL queries stored in metadata read two-level names such as &lt;STRONG&gt;silver.Sales__InvoiceLines&lt;/STRONG&gt; and create six Gold products:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;DimDate&lt;/LI&gt;&lt;LI&gt;DimGeography&lt;/LI&gt;&lt;LI&gt;DimProduct&lt;/LI&gt;&lt;LI&gt;DimPerson&lt;/LI&gt;&lt;LI&gt;DimDeliveryMethod&lt;/LI&gt;&lt;LI&gt;FactInvoiceLineProfitability&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The source instance had no customer data, so customer-dependent Gold models were intentionally excluded.&lt;/P&gt;&lt;P&gt;Run Gold only after the Silver notebook succeeds:&lt;/P&gt;&lt;LI-CODE lang="powershell"&gt;fab job run "$workspace/run_fabric_spark.Notebook" `   -P "STAGE:string=silver2gold,_inlineInstallationEnabled:bool=true" `   -C $lakehouseConfig --timeout 3600&lt;/LI-CODE&gt;&lt;img /&gt;&lt;H2&gt;Monitoring the complete flow&lt;/H2&gt;&lt;P&gt;Fabric Monitoring shows notebook status, duration, and execution details. DataCoolie writes dataflow-level logs and watermarks to &lt;STRONG&gt;lh_etl&lt;/STRONG&gt;, allowing DataCoolie Studio to display metadata, assets, lineage, jobs, and individual dataflow runs across all three stages.&lt;/P&gt;&lt;img /&gt;&lt;img /&gt;&lt;H2&gt;Result&lt;/H2&gt;&lt;P&gt;The completed pipeline has 31 incremental Bronze flows, 31 key-merged Silver tables, and six Gold products. The runner stays generic; metadata defines the tables, watermarks, merge keys, paths, and SQL transformations.&lt;/P&gt;&lt;P&gt;This separation makes the pipeline easier to extend and keeps the hybrid on-premises/Fabric workflow observable as one system.&lt;/P&gt;&lt;H2&gt;Further reading&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/onelake/onelake-access-api" target="_blank"&gt;Connect to Microsoft OneLake&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-schemas" target="_blank"&gt;Lakehouse schemas in Microsoft Fabric&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/rest/api/fabric/articles/fabric-command-line-interface" target="_blank"&gt;Microsoft Fabric command-line interface&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Mon, 14 Sep 2026 10:48:56 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/From-On-Premises-SQL-Server-to-Microsoft-Fabric-with-a-Metadata/m-p/5366641#M17937</guid>
      <dc:creator>ezalor</dc:creator>
      <dc:date>2026-09-14T10:48:56Z</dc:date>
    </item>
    <item>
      <title>Re: DataFlow Gen2 Issue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/DataFlow-Gen2-Issue/m-p/5366462#M17936</link>
      <description>&lt;P&gt;You are likely correct that this is a firewall issue. The error&amp;nbsp;The underlying connection was closed: An unexpected error occurred on a send&amp;nbsp;typically indicates that the request from the Dataflow service is being blocked before it can complete the handshake with the Fabric Lakehouse API.&lt;/P&gt;&lt;P&gt;Because you can access the Lakehouse from Notebooks (which run directly within the Fabric environment) but&amp;nbsp;&lt;EM&gt;cannot&lt;/EM&gt;&amp;nbsp;from Dataflow Gen2 (which may route metadata or data traffic differently via the on-premises data gateway or specific outbound IP ranges), it strongly suggests a&amp;nbsp;one-way firewall rule&amp;nbsp;is currently in place.&lt;/P&gt;&lt;P&gt;To resolve this, the firewall configuration must be changed to allow&amp;nbsp;two-way traffic. It is not enough to simply allow outbound traffic from your network; the connection requires a request-and-response cycle. The firewall must explicitly permit the return traffic from the Power BI/Fabric API endpoints back to the Dataflow service or the data gateway.&lt;/P&gt;</description>
      <pubDate>Sat, 12 Sep 2026 22:43:37 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/DataFlow-Gen2-Issue/m-p/5366462#M17936</guid>
      <dc:creator>EduardoCastro</dc:creator>
      <dc:date>2026-09-12T22:43:37Z</dc:date>
    </item>
  </channel>
</rss>

