<?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: Databricks connecting SQL Azure DW - Confused between Polybase and Copy Into in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/databricks-connecting-sql-azure-dw-confused-between-polybase-and/m-p/66446#M33115</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/9"&gt;@Retired_mod&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for taking time and wiriting detailed text.&lt;/P&gt;&lt;P&gt;So i'm not writing exlicit copy into, I'm just trying to read from table in SQL DW, syntax looks like this&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;df &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; spark.read \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;format&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"sqldw"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"host"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;server name&amp;gt;.sql.azuresynapse.net"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"port"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"1433"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"user"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;user name&amp;gt;"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"password"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;password&amp;gt;"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"database"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;DB Name&amp;gt;"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"dbtable"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;schema&amp;gt;.&amp;lt;table&amp;gt;"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"tempDir"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"abfss://&amp;lt;storage container&amp;gt;@&amp;lt;storage account&amp;gt;.dfs.core.windows.net/temp-data"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"forwardSparkAzureStorageCredentials"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"true"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;load&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Before this i have blocked where i assign storage app id and scret for access from DW and Databricks&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;with this error I get when I do df.show() is&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;com.microsoft.sqlserver.jdbc.SQLServerException: User does not have permission to perform this action. [ErrorCode = 15247] [SQLState = S0001]&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;I have given Schema level read&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DB level create&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADMINISTRATE BULK LOAD&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;INSERT AT DB level&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 17 Apr 2024 12:23:44 GMT</pubDate>
    <dc:creator>dilkushpatel</dc:creator>
    <dc:date>2024-04-17T12:23:44Z</dc:date>
    <item>
      <title>Databricks connecting SQL Azure DW - Confused between Polybase and Copy Into</title>
      <link>https://community.databricks.com/t5/data-engineering/databricks-connecting-sql-azure-dw-confused-between-polybase-and/m-p/66378#M33094</link>
      <description>&lt;P&gt;I see two articles on databricks documentations&lt;/P&gt;&lt;P&gt;&lt;A class="" href="https://docs.databricks.com/en/archive/azure/synapse-polybase.html#language-python" target="_blank" rel="noopener nofollow ugc"&gt;https://docs.databricks.com/en/archive/azure/synapse-polybase.html#language-python&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="" href="https://docs.databricks.com/en/connect/external-systems/synapse-analytics.html#service-principal" target="_blank" rel="noopener nofollow ugc"&gt;https://docs.databricks.com/en/connect/external-systems/synapse-analytics.html#service-principal&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Polybase one is legacy one and is not supported anymore&lt;/P&gt;&lt;P&gt;Copy Into one is new one and it ideally should not need CONTROL access on whole dw&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here comes confusion:&lt;/P&gt;&lt;P&gt;looking at query structure itself I do not see any difference on how we access DW and code block looks exactly same, so how do we make sure we are using COPY option and not POLYBASE?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I ran code and it is still giving access issue, I gave read access on schema and table. CREATE access on DW &amp;amp; ADMINISTER DATABASE BULK OPERATIONS permissions as mentioned in document.&lt;/P&gt;&lt;P&gt;Not clear what am I missing here.&lt;/P&gt;</description>
      <pubDate>Tue, 16 Apr 2024 17:19:45 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/databricks-connecting-sql-azure-dw-confused-between-polybase-and/m-p/66378#M33094</guid>
      <dc:creator>dilkushpatel</dc:creator>
      <dc:date>2024-04-16T17:19:45Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks connecting SQL Azure DW - Confused between Polybase and Copy Into</title>
      <link>https://community.databricks.com/t5/data-engineering/databricks-connecting-sql-azure-dw-confused-between-polybase-and/m-p/66446#M33115</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/9"&gt;@Retired_mod&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for taking time and wiriting detailed text.&lt;/P&gt;&lt;P&gt;So i'm not writing exlicit copy into, I'm just trying to read from table in SQL DW, syntax looks like this&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;df &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; spark.read \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;format&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"sqldw"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"host"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;server name&amp;gt;.sql.azuresynapse.net"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"port"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"1433"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"user"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;user name&amp;gt;"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"password"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;password&amp;gt;"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"database"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;DB Name&amp;gt;"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"dbtable"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;schema&amp;gt;.&amp;lt;table&amp;gt;"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"tempDir"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"abfss://&amp;lt;storage container&amp;gt;@&amp;lt;storage account&amp;gt;.dfs.core.windows.net/temp-data"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;option&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"forwardSparkAzureStorageCredentials"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"true"&lt;/SPAN&gt;&lt;SPAN&gt;) \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN&gt;load&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Before this i have blocked where i assign storage app id and scret for access from DW and Databricks&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;with this error I get when I do df.show() is&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;com.microsoft.sqlserver.jdbc.SQLServerException: User does not have permission to perform this action. [ErrorCode = 15247] [SQLState = S0001]&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;I have given Schema level read&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DB level create&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADMINISTRATE BULK LOAD&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;INSERT AT DB level&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 17 Apr 2024 12:23:44 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/databricks-connecting-sql-azure-dw-confused-between-polybase-and/m-p/66446#M33115</guid>
      <dc:creator>dilkushpatel</dc:creator>
      <dc:date>2024-04-17T12:23:44Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks connecting SQL Azure DW - Confused between Polybase and Copy Into</title>
      <link>https://community.databricks.com/t5/data-engineering/databricks-connecting-sql-azure-dw-confused-between-polybase-and/m-p/66501#M33140</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/9"&gt;@Retired_mod&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Double-check the credentials (username and password) you’re using. Ensure they are correct and have the necessary privileges.&lt;BR /&gt;Im able to run select using same user from SSMS&lt;/P&gt;&lt;P&gt;Confirm that the server name and port are accurate.&lt;BR /&gt;They are&lt;/P&gt;&lt;P&gt;You mentioned blocking where you assign storage app ID and secret for access from both DW and Databricks.&lt;BR /&gt;Sorry I mean code block.&lt;/P&gt;&lt;P&gt;Ensure that the storage app ID and secret are correctly configured and have the required permissions to access the storage container.&lt;BR /&gt;They are correct, I can list and read files from that location.&lt;/P&gt;&lt;P&gt;Verify that the storage container path (abfss://&amp;lt;storage container&amp;gt;@&amp;lt;storage account&amp;gt;.dfs.core.windows.net/temp-data) is accurate.&lt;BR /&gt;It is&lt;/P&gt;&lt;P&gt;Confirm that the firewall rules on the Azure Synapse side allow connections from the Databricks cluster&lt;BR /&gt;IP blocking is not configured, everyone from anywhere can connect to DW&lt;/P&gt;&lt;P&gt;Whitelist the Databricks cluster’s IP address if necessary.&lt;BR /&gt;IP blocking is not configured, everyone from anywhere can connect to DW&lt;/P&gt;&lt;P&gt;Temporarily grant the user more permissions (e.g., CONTROL on the entire data warehouse) to see if the issue persists.&lt;BR /&gt;Will try this and update&lt;/P&gt;&lt;P&gt;If it works with additional permissions, gradually reduce them to the minimum required.&lt;BR /&gt;As such other than control rest permissions look fine&lt;/P&gt;&lt;P&gt;Consider using the COPY INTO command (which is the recommended method) for loading data into Azure Synapse.&lt;BR /&gt;Im not loading anything into Synapse DW. Reading from DW&lt;/P&gt;&lt;P&gt;If you decide to switch, ensure that your Databricks Runtime version supports COPY INTO.&lt;BR /&gt;Databricks runtime version is 13.1 if I remember correctly&lt;/P&gt;</description>
      <pubDate>Wed, 17 Apr 2024 17:31:56 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/databricks-connecting-sql-azure-dw-confused-between-polybase-and/m-p/66501#M33140</guid>
      <dc:creator>dilkushpatel</dc:creator>
      <dc:date>2024-04-17T17:31:56Z</dc:date>
    </item>
  </channel>
</rss>

