<?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>topic Re: DLT pipeline cannot read from a Unity Catalog foreign catalog in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/149890#M53199</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/215581"&gt;@QueryingQuail&lt;/a&gt;&amp;nbsp;.&lt;/P&gt;&lt;P&gt;Is it possible that you are under some of these limitations?&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/databricks/query-federation/onelake#limitations" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/en-us/azure/databricks/query-federation/onelake#query-onelake-data.&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-03-05 alle 11.24.24.png" style="width: 860px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/24580i5D553A5F8CB7280E/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-03-05 alle 11.24.24.png" alt="Screenshot 2026-03-05 alle 11.24.24.png" /&gt;&lt;/span&gt;&lt;/A&gt;&lt;/P&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;Did you try using only SQL?&lt;/P&gt;</description>
    <pubDate>Thu, 05 Mar 2026 10:29:25 GMT</pubDate>
    <dc:creator>Ale_Armillotta</dc:creator>
    <dc:date>2026-03-05T10:29:25Z</dc:date>
    <item>
      <title>DLT pipeline cannot read from a Unity Catalog foreign catalog</title>
      <link>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/149885#M53197</link>
      <description>&lt;P&gt;We are having some difficulties working with Onelake connections.&lt;/P&gt;&lt;P&gt;What we have done:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Set up a Databricks connection to Onelake&lt;/LI&gt;&lt;LI&gt;Created a foreign catalog&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;We try to read using:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import dlt

@dlt.table
def fabric_test():
    return spark.read.table("fabric.dbo.nnit_buildingcase")&lt;/LI-CODE&gt;&lt;P&gt;&lt;SPAN&gt;And we then get the error:&lt;/SPAN&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;error:
Message: Failed to find the data source: UNKNOWN_CONNECTION_TYPE. Make sure the provider name is correct and the package is properly registered and compatible with your Spark version.
Error class: DATA_SOURCE_NOT_FOUND
SQL state: 42K02
Table: [REDACTED].[REDACTED].[REDACTED]
&lt;/LI-CODE&gt;&lt;P&gt;I know the error cause theoretically can be multiple things, but maybe someone here can tell me if the above *should* be possible as written. Another note is that the connection, in the Databricks UI, the URL is referenced as "&lt;A href="https://internal/" target="_blank"&gt;https://internal/&lt;/A&gt;".&lt;/P&gt;</description>
      <pubDate>Thu, 05 Mar 2026 10:02:11 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/149885#M53197</guid>
      <dc:creator>QueryingQuail</dc:creator>
      <dc:date>2026-03-05T10:02:11Z</dc:date>
    </item>
    <item>
      <title>Re: DLT pipeline cannot read from a Unity Catalog foreign catalog</title>
      <link>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/149890#M53199</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/215581"&gt;@QueryingQuail&lt;/a&gt;&amp;nbsp;.&lt;/P&gt;&lt;P&gt;Is it possible that you are under some of these limitations?&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/databricks/query-federation/onelake#limitations" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/en-us/azure/databricks/query-federation/onelake#query-onelake-data.&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-03-05 alle 11.24.24.png" style="width: 860px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/24580i5D553A5F8CB7280E/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-03-05 alle 11.24.24.png" alt="Screenshot 2026-03-05 alle 11.24.24.png" /&gt;&lt;/span&gt;&lt;/A&gt;&lt;/P&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;Did you try using only SQL?&lt;/P&gt;</description>
      <pubDate>Thu, 05 Mar 2026 10:29:25 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/149890#M53199</guid>
      <dc:creator>Ale_Armillotta</dc:creator>
      <dc:date>2026-03-05T10:29:25Z</dc:date>
    </item>
    <item>
      <title>Re: DLT pipeline cannot read from a Unity Catalog foreign catalog</title>
      <link>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/150005#M53217</link>
      <description>&lt;P&gt;Greetings&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/215581"&gt;@QueryingQuail&lt;/a&gt;&amp;nbsp;,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Short answer: no. A Unity Catalog DLT pipeline can't read directly from a foreign catalog — which is what your OneLake "fabric" catalog is. That's why &lt;CODE&gt;spark.read.table("fabric.dbo.nnit_buildingcase")&lt;/CODE&gt; fails inside DLT even when the foreign catalog itself works fine.&lt;/P&gt;
&lt;P&gt;Here's why:&lt;/P&gt;
&lt;P&gt;The catalog you created from the OneLake connection is a foreign catalog for query federation. It exposes tables managed by the external system — it's not a UC-native data source. UC-enabled pipelines are documented to support UC managed/external tables, Hive metastore tables, UC external locations via Auto Loader, and Kafka/Kinesis. Foreign tables aren't on that list. Worth flagging: the Lakeflow Connect docs explicitly state that the catalog created during connection setup "cannot be used" for an ingestion pipeline precisely because it's foreign. Ingestion requires a managed catalog.&lt;/P&gt;
&lt;P&gt;So this pattern:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-python"&gt;import dlt

@dlt.table
def fabric_test():
    return spark.read.table("fabric.dbo.nnit_buildingcase")
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;won't work today when &lt;CODE&gt;fabric&lt;/CODE&gt; is a foreign catalog. The &lt;CODE&gt;UNKNOWN_CONNECTION_TYPE&lt;/CODE&gt; / &lt;CODE&gt;DATA_SOURCE_NOT_FOUND&lt;/CODE&gt; error is DLT saying this table type isn't supported in this runtime.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The supported pattern is a two-step approach:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;First, ingest from OneLake into a UC managed catalog/schema — via a Lakeflow Connect ingestion pipeline or another ETL job — so the data lands as UC managed or external Delta tables, not foreign tables.&lt;/P&gt;
&lt;P&gt;Second, point your DLT pipeline at those UC tables:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-python"&gt;import dlt

@dlt.table
def fabric_staging():
    return spark.read.table("my_catalog.my_schema.nnit_buildingcase_staging")
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This keeps OneLake access in the connection/ingestion layer and lets DLT operate only on UC-native tables — which is what it supports today.&lt;/P&gt;
&lt;P&gt;Hope this helps, Louis&lt;/P&gt;</description>
      <pubDate>Fri, 06 Mar 2026 14:21:02 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/150005#M53217</guid>
      <dc:creator>Louis_Frolio</dc:creator>
      <dc:date>2026-03-06T14:21:02Z</dc:date>
    </item>
    <item>
      <title>Hi @QueryingQuail, The behavior you are seeing is expecte...</title>
      <link>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/150348#M53383</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/215581"&gt;@QueryingQuail&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;The behavior you are seeing is expected. Lakeflow Spark Declarative Pipelines (SDP), previously known as DLT, do not currently support reading directly from Lakehouse Federation foreign catalogs. The DATA_SOURCE_NOT_FOUND / UNKNOWN_CONNECTION_TYPE error occurs because the SDP pipeline runtime does not have the federation connector needed to resolve the foreign catalog connection at query time.&lt;/P&gt;
&lt;P&gt;For reference, Unity Catalog-enabled SDP pipelines can read from these data sources:&lt;/P&gt;
&lt;P&gt;- Unity Catalog managed and external tables, views, materialized views, and streaming tables&lt;BR /&gt;
- Hive metastore tables and views&lt;BR /&gt;
- Auto Loader (using the read_files() function) from Unity Catalog external locations&lt;BR /&gt;
- Apache Kafka and Amazon Kinesis&lt;/P&gt;
&lt;P&gt;Foreign catalogs (including OneLake connections) are not in that supported list. This applies regardless of the foreign catalog type.&lt;/P&gt;
&lt;P&gt;You can find the supported sources documented here:&lt;BR /&gt;
&lt;A href="https://docs.databricks.com/en/delta-live-tables/unity-catalog.html" target="_blank"&gt;https://docs.databricks.com/en/delta-live-tables/unity-catalog.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The "&lt;A href="https://internal/" target="_blank"&gt;https://internal/&lt;/A&gt;" URL you noticed in the connection details is normal for OneLake catalog federation connections, so that part is not the issue.&lt;/P&gt;
&lt;P&gt;WORKAROUND&lt;/P&gt;
&lt;P&gt;The recommended approach is to stage the data from your foreign catalog into a regular Unity Catalog table first, and then have your SDP pipeline read from that UC table. You can do this with a scheduled Lakeflow Job (or a simple notebook) that runs a query like:&lt;/P&gt;
&lt;PRE&gt;CREATE OR REPLACE TABLE my_catalog.my_schema.onelake_buildingcase
AS SELECT * FROM fabric.dbo.nnit_buildingcase&lt;/PRE&gt;
&lt;P&gt;Then update your pipeline code to read from the staged table:&lt;/P&gt;
&lt;PRE&gt;import dlt

@dlt.table
def fabric_test():
  return spark.read.table("my_catalog.my_schema.onelake_buildingcase")&lt;/PRE&gt;
&lt;P&gt;If you need incremental/streaming behavior, you could use a MERGE statement in the staging job to handle updates, or use Auto Loader if the source data is available as files in cloud storage.&lt;/P&gt;
&lt;P&gt;ALTERNATIVE: NOTEBOOK TASK IN THE SAME JOB&lt;/P&gt;
&lt;P&gt;If you want to keep everything in a single workflow, you can create a Lakeflow Job with two tasks:&lt;/P&gt;
&lt;P&gt;1. A notebook task that queries the foreign catalog and writes to a UC table&lt;BR /&gt;
2. Your SDP pipeline task (dependent on task 1) that reads from that UC table&lt;/P&gt;
&lt;P&gt;This gives you a single orchestrated workflow while working within the current supported data source boundaries for SDP pipelines.&lt;/P&gt;
&lt;P&gt;* This reply used an agent system I built to research and draft this response based on the wide set of documentation I have available and previous memory. I personally review the draft for any obvious issues and for monitoring system reliability and update it when I detect any drift, but there is still a small chance that something is inaccurate, especially if you are experimenting with brand new features.&lt;/P&gt;
&lt;P&gt;If this answer resolves your question, could you mark it as "Accept as Solution"? That helps other users quickly find the correct fix.&lt;/P&gt;</description>
      <pubDate>Mon, 09 Mar 2026 05:54:01 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/150348#M53383</guid>
      <dc:creator>SteveOstrowski</dc:creator>
      <dc:date>2026-03-09T05:54:01Z</dc:date>
    </item>
    <item>
      <title>Re: DLT pipeline cannot read from a Unity Catalog foreign catalog</title>
      <link>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/151043#M53564</link>
      <description>&lt;P&gt;Thank you all for the reply and please excuse the delay on my part - I've been away.&lt;/P&gt;&lt;P&gt;I've read all three replies and this clarified all my questions and widened my understanding of foreign catalog handling within Unity.&lt;/P&gt;</description>
      <pubDate>Mon, 16 Mar 2026 11:05:10 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/dlt-pipeline-cannot-read-from-a-unity-catalog-foreign-catalog/m-p/151043#M53564</guid>
      <dc:creator>QueryingQuail</dc:creator>
      <dc:date>2026-03-16T11:05:10Z</dc:date>
    </item>
  </channel>
</rss>

