lakehouse
1043 TopicsFabric pipelines audit
Hi community, I am looking for a way to log pipelines details into an audit delta table. To be more specific, I want to log the start time, end time, status, error message if any etc. Having this by activity name would be even better. I was thinking to use a notebook that's being called at the end of each pipeline, so somehow to have only a notebook that can be used in all of my pipelines (because i have a lot of them). Is this something that you were able to build? Any guidance would be very much appreciated. thanks!20Views0likes2CommentsHow to design a metadata-driven framework to run 600+ Fabric notebooks with parallel execution?
Hi Fabric Community, We are currently planning to migrate 600+ notebooks from Azure Databricks to Microsoft Fabric. Our current requirement is to build a metadata-driven orchestration framework using: Fabric Data Pipelines for orchestration SQL Database for metadata/control tables Fabric Notebooks for data processing OneLake/Lakehouse as the target storage Instead of creating separate pipelines for each notebook, we would like to have a generic metadata-driven pipeline that dynamically reads notebook information from SQL Database and executes the required notebooks. For example, our metadata table could contain: Notebook ID Notebook name/path Priority Dependency Parameters Data volume Expected runtime Compute/pool requirement Retry count Active/inactive flag Our main challenge We may need to execute approximately 40 notebooks in parallel. We would like to understand the recommended Fabric architecture for this scenario. Specifically: How should we design the metadata-driven pipeline to dynamically execute 600+ Fabric notebooks? How should we control parallelism when around 40 notebooks need to run simultaneously? Should we use a single Spark environment/pool, multiple environments/pools, or some other approach? How should we decide which Spark compute configuration should be used for each notebook based on: Data volume Memory requirement Processing time Shuffle-intensive workloads Small vs. large workloads? If 40 notebooks run simultaneously, how does Fabric manage the underlying Spark compute and capacity? Should we be concerned about resource contention or throttling? Is it recommended to classify notebooks into workload groups such as:and then control concurrency separately for each group? Small / Medium / Large / XLarge What is the recommended way to implement dependency management? For example:where Notebook B should only start after A succeeds. Notebook A → Notebook B → Notebook C What is the recommended approach for retry, failure handling, logging, and restartability for 600+ notebooks? Is there a recommended metadata-driven orchestration pattern/reference architecture in Microsoft Fabric for this scale? Are there any Fabric-specific limitations or best practices we should consider when running hundreds of Spark notebooks with high concurrency? Our main objective is to build a scalable framework where we can manage 600+ notebooks from metadata instead of maintaining hundreds of individual pipelines, while still controlling Spark compute and parallel execution efficiently. Any architectural recommendations, reference implementations, or real-world experience with similar workloads would be highly appreciated. Thanks!117Views1like11CommentsFabric Link Setup
Hello Community, I'm trying to Configure Fabric Link with FnO to sync My FnO data to Fabric. While creating Fabric Link for FnO I'm getting 2 Options as per below SS. One is F&O Entities (Caption 1) Second is F&O tables (Caption 2). I want to Understand How "FnO entities" and "FnO tables" different from each other, In which case I need to choose from second Option(F&O tables Caption 2) & in which case I need to choose from (F&O Entities Caption 1). Thank you42Views0likes2CommentsDesigning AI Agent Workflows on Modern Data Platforms
Hi everyone, I have been exploring how AI agents can work with modern data engineering platforms to automate business processes. A common architecture I see is that data pipelines collect and prepare information, AI agents analyze the context and determine the next action, workflow services execute tasks through APIs or connected systems, and the results are stored for reporting or further processing. I am interested in how teams are approaching this with Microsoft Fabric. Are you using AI agents directly with Fabric workflows, or keeping the AI layer separate? What patterns work well for connecting AI agents with Lakehouse, Data Pipelines, or notebooks? How do you manage security and permissions when AI applications need access to enterprise data? Are there recommended approaches for combining Fabric workloads with external AI services? I would be interested to hear what architecture patterns others are using and what challenges you have encountered.73Views1like5CommentsTitle: Microsoft Fabric – Impact of Enabling Case-Insensitive Collation Settings
Hi Fabric Community, We are evaluating the impact of enabling Case Insensitive (CI) settings in a Microsoft Fabric workspace. The workspace setting provides the following options: Case Sensitive: Latin1_General_100_BIN2_UTF8 Case Insensitive: Latin1_General_100_CI_AS_KS_WS_SC_UTF8 According to the documentation, these settings affect how SQL processes capitalization in object names and string data. Before enabling/using the Case Insensitive setting in our environment, we would appreciate the community's guidance on the following: Existing objects: If Case Insensitive is enabled at the workspace level, does it affect existing Warehouses or SQL Analytics Endpoints, or does it apply only to newly created objects? Existing data: Does changing the collation setting modify or transform the existing data stored in tables, or does it only change how SQL compares/processes string values? JOIN behavior: Could Case Insensitive collation change the results of existing SQL joins? For example, could the following values start matching when they previously did not? ABC vs abc Assets vs assets Project01 vs PROJECT01 WHERE conditions: Would a Case Insensitive collation change the results of existing filters such as:WHERE Account = 'ABC'when the stored value is abc? GROUP BY / DISTINCT: Could Case Insensitive collation change the results of GROUP BY, DISTINCT, or aggregation queries where values differ only by capitalization? Primary/unique keys: Are there any implications for duplicate detection or uniqueness when values such as ABC and abc exist in columns used as keys? Data pipelines / transformations: Could changing from Case Sensitive to Case Insensitive cause any unexpected behavior in Fabric Data Pipelines, Dataflows, Notebooks, or SQL transformations? Lakehouse vs Warehouse: Does this Case Sensitivity setting affect only Warehouses and SQL Analytics Endpoints, or can it also affect queries against Lakehouse tables? Power BI semantic models: Could changing the SQL collation impact Power BI semantic models, relationships, Direct Lake, Import, or DirectQuery reports? Performance: Is there any measurable performance difference between: Latin1_General_100_BIN2_UTF8 and Latin1_General_100_CI_AS_KS_WS_SC_UTF8 for large tables and joins? Recommended approach: For an enterprise Finance reporting solution where consistency of joins and mappings is critical, is it recommended to use Case Sensitive or Case Insensitive collation? Best practice for mixed requirements: If some business fields require case-insensitive comparisons while others require case-sensitive comparisons, what is the recommended approach in Fabric? Collation at column/query level: If the workspace/database is configured as Case Insensitive, is there a supported way to perform a case-sensitive comparison for specific columns or queries? Changing the setting later: If we initially create our Warehouse/SQL Analytics Endpoint using Case Sensitive collation, can we later change it to Case Insensitive, or would we need to create a new object? Production migration: If changing the collation requires recreating the Warehouse/SQL Analytics Endpoint, what is the recommended migration approach for existing production workloads? We are particularly interested in understanding whether enabling Case Insensitive collation can change query results, especially for existing SQL joins and mappings where source-system values may have differences in capitalization or leading/trailing spaces. Any guidance or real-world experience with Fabric enterprise implementations would be greatly appreciated. Thank you. AI-assisted drafting: AI was used to help structure and phrase this response. I reviewed and validated the technical content before posting.Solved47Views0likes6CommentsHow are AI agents changing modern data engineering workflows?
I am exploring how AI agents can assist data engineering teams in managing complex data workflows and reducing repetitive operational tasks. Some areas I am interested in: AI agents for monitoring data pipelines and detecting failures Automated data quality checks and anomaly detection Intelligent assistance for ETL/ELT workflow optimization Generating documentation for datasets and transformations Using AI with Fabric pipelines, notebooks, and data workflows With the growth of AI-powered automation, I would like to understand how data engineers are approaching these patterns in real-world environments. What approaches, architectures, or best practices are teams using to combine Microsoft Fabric capabilities with AI agents?31Views0likes2CommentsSharePoint Excel ingestion, Dataflow Gen2 vs shortcut + notebook CU efficiency
I need to ingest and transform multiple Excel files stored in SharePoint folders. I am comparing: Pure Dataflow Gen2 using SharePoint.Files and Power Query transformations. Lakehouse Files shortcut to the SharePoint folder, followed by all transformations in a Fabric notebook using PySpark. For the same files, transformations, output, schedule, and capacity: Is the shortcut + notebook approach expected to consume fewer Fabric Capacity Units than pure Dataflow Gen2? What is the recommended approach for SharePoint Excel-folder ingestion?118Views1like5CommentsFabric Copy Activity fails in Query mode but succeeds in Table mode through an on-premises gateway
Hi Fabric Community, I am using a Microsoft Fabric pipeline Copy Activity to copy data from a Fabric Lakehouse to an on-premises SQL Server database through a dedicated on-premises data gateway. I tested the Copy Activity using both of the following source connection types: Lakehouse connection Lakehouse SQL analytics endpoint connection With both connection types, the behavior is the same: Lookup Activity: Successful Script Activity: Successful Copy Activity using Table mode: Successful Copy Activity using Query mode: Fails When the Copy Activity source is configured with Use query = Query, it fails with the following error: ErrorCode=SqlFailedToConnect,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Cannot connect to SQL Database. Please contact SQL server team for further support. Server: 'xxxxxxxx.datawarehouse.fabric.microsoft.com', Database: 'LH_XYZ', User: ''. Check the connection configuration is correct, and make sure the SQL Database firewall allows the Data Factory runtime to access.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,Message=A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server),Source=.Net SqlClient Data Provider,SqlErrorNumber=53,Class=20,ErrorCode=-2146232060,State=0,Errors=[{Class=20,Number=53,State=0,Message=A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server),},],''Type=System.ComponentModel.Win32Exception,Message=The network path was not found,Source=,' However, when I change the source configuration from Query to Table and select the source table directly, the Copy Activity completes successfully. Has anyone encountered this behavior? Does Query mode use a different runtime, connector path, or metadata-discovery process when the Copy Activity runs through an on-premises gateway? Are there any known limitations or additional gateway requirements for using a custom query as the source? Any guidance on how to diagnose or resolve this would be appreciated.90Views0likes9CommentsCross-tenant Fabric migration (no shared account): 6 things the docs don't tell you
Sharing this rather than asking — posting my notes in case they save someone else the time. I recently had to move semantic models, reports, notebooks, pipelines and a Lakehouse between two Fabric tenants where no single account had access to both — no guest access, no cross-tenant permissions, two entirely separate sign-ins. Deployment pipelines are same-tenant only. fabric-cicd assumes one tenant and a Git repo. So this became an export-to-file / import-from-file exercise against the REST API. Six things cost me real time. Posting them in case they save someone else the same days. A semantic model's connection lives in FOUR places in model.bim I started by rewriting the M expressions and the log said "0 expressions repointed" while the model kept pointing at the old source. The connection can sit in the M code (Sql.Database(...)), in a dataSources[] entry's connectionDetails.address, in Direct Lake entity partitions, and in M parameters with a meta annotation. Rewriting only one of them silently does nothing. I ended up operating on the raw model.bim JSON text so all four are covered. PBIR report binding changed shape between schema versions definition.pbir validates differently depending on its major version. Schema v2.0+ wants connectionString and nothing else — adding pbiServiceModelId gets you "the schema does not allow additional properties". Schema 1.x wants the full legacy set: pbiServiceModelId, pbiModelVirtualServerName ("sobe_wowvirtualserver"), pbiModelDatabaseName, name: "EntityDataSource", connectionType: "pbiServiceXmlaStyleLive". Omit them and you get "Cannot resolve neither report.json nor the PBIR report content in enhanced format". Preserve the original $schema and version from the source file and branch on the major version. Don't assume one shape. The Lakehouse SQL analytics endpoint is read-only over Delta CREATE VIEW, CREATE FUNCTION and CREATE PROCEDURE all work. CREATE TABLE does not — tables only come from Spark. If you're recreating a Lakehouse structure in a target tenant, that's two separate artefacts: a .sql script for the views and a PySpark notebook for the empty table structure. They also have to run in that order. Notebook writes need ?format=ipynb Creating or updating a notebook definition without it returns "PyToIpynbFailure: Convert py to ipynb failed" with no further explanation. Add the query parameter on both createItem and updateDefinition. Only notebooks need it. Delta rejects column names with spaces or punctuation AnalysisException [DELTA_INVALID_CHARACTERS_IN_COLUMN_NAMES] for anything containing space , ; { } ( ) newline tab = The obvious fix is to sanitise the names, but don't — your views and semantic models reference the original names. Enable column mapping on those tables instead: delta.columnMapping.mode = name, minReaderVersion = 2, minWriterVersion = 5. Original names preserved, Delta happy. Premium_ASWL_Error on refresh does not mean you need a gateway Most threads will tell you to set up an on-premises data gateway. In my case the model was set to "Default: Single Sign-On" and simply needed an explicit cloud connection created and bound to it. No gateway involved. Worth checking before you go down the gateway route. Bonus: pipelines fail with a bare "UnknownError" when they reference items that aren't in the target yet. The error never says which ones. I ended up scanning pipeline definitions for GUIDs and matching them against the source inventory to list the missing items by name before attempting the deploy, and deploying master pipelines after their children. Happy to go deeper on any of these if it's useful.37Views0likes1Comment