<?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>article Data Engineering SQL Holiday Specials in Technical Blog</title>
    <link>https://community.databricks.com/t5/technical-blog/data-engineering-sql-holiday-specials/ba-p/104905</link>
    <description>&lt;P&gt;&lt;SPAN&gt;December is the most celebrated time of year in the Data Engineering calendar as we embrace the important holiday: change freeze season.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;As we come back to the office to start our new projects, I wanted to make you aware of some quietly released features in the data engineering ecosystem in Databricks in the hope they might benefit you. To try and spice up what is essentially a list of features, I’ve categorised them into release stage (GA vs PuPr) as well as the Holly Smith scale of feature usefulness:&lt;/SPAN&gt;&lt;/P&gt;
&lt;H5&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":spouting_whale:"&gt;🐳&lt;/span&gt; Extra Large - &lt;span class="lia-unicode-emoji" title=":elephant:"&gt;🐘&lt;/span&gt; Large&amp;nbsp; - 🦩 Medium - 🦔 Small&lt;/SPAN&gt;&lt;/H5&gt;
&lt;H1&gt;&lt;SPAN&gt;General Availability&lt;/SPAN&gt;&lt;/H1&gt;
&lt;H2&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":elephant:"&gt;🐘&lt;/span&gt; New SQL functions:&lt;/SPAN&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;&lt;FONT face="courier new,courier"&gt;try_url_decode()&lt;/FONT&gt; - instead of coding in try/catch for decoding error prone URLs into ASCII with &lt;FONT face="courier new,courier"&gt;url_decode()&lt;/FONT&gt;, simplify your code with &lt;FONT face="courier new,courier"&gt;try_url_decode()&lt;/FONT&gt; to check your URLs are valid before returning them.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;&lt;FONT face="courier new,courier"&gt;zeroifnull()&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;nullifzero()&lt;/FONT&gt; - does what it says, think of it as a more specific &lt;FONT face="courier new,courier"&gt;coalesce()&lt;/FONT&gt; or if then else logic.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;&lt;FONT face="courier new,courier"&gt;day()&lt;/FONT&gt; - can now be used as a synonym for extract(DAY from valid_date) for cleaner code&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;&lt;FONT face="courier new,courier"&gt;uniform()&lt;/FONT&gt; - will generate random numbers with a uniform, ie even, distribution. The benefit of this over rand() is the option to specify upper and lower bounds without having to do the maths yourself&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;&lt;FONT face="courier new,courier"&gt;randstr()&lt;/FONT&gt; - generate a random string of uppercase, lowercase letters and numbers of specified length&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;More functions now have named parameter invocation. Syntactic sugar good for code readability and to match the majority of functions that already have this feature, although given that all the functions updated have only one argument, this is a 🦔 for me. Updated functions: &lt;FONT face="courier new,courier"&gt;variant_explode&lt;FONT face="arial,helvetica,sans-serif"&gt;,&amp;nbsp;&lt;/FONT&gt;variant_explode_outer&lt;FONT face="arial,helvetica,sans-serif"&gt;,&lt;/FONT&gt; inline&lt;FONT face="arial,helvetica,sans-serif"&gt;,&lt;/FONT&gt; inline_outer&lt;FONT face="arial,helvetica,sans-serif"&gt;,&lt;/FONT&gt; posexplode&lt;FONT face="arial,helvetica,sans-serif"&gt;,&lt;/FONT&gt; posexplode_outer&lt;/FONT&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;.&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;If you’d like to see worked examples, check out this notebook &lt;A href="https://notebooks.databricks.com/devrel/nbs/%F0%9F%8E%84Data%20Engineering%20SQL%20Holiday%20Specials.html" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":elephant:"&gt;🐘&lt;/span&gt; New workflows task type - .sql files&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Not to be confused with sql &lt;EM&gt;queries&lt;/EM&gt;, a .sql file can now be run in workflows. What’s even better is this can come from a repo and so the file could in theory have been authored in a different tool. For some of you, this will open up a new way of architecting your workflows and make interoperability between tools easier. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holly_0-1736421009114.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/13969iA66FEE1D625D9BDE/image-size/medium?v=v2&amp;amp;px=400" role="button" title="holly_0-1736421009114.png" alt="holly_0-1736421009114.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN&gt;🦩Primary Key and Foreign Key relationship constraints&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Tables in Unity Catalog can now be updated or created with definitions of primary keys and foreign key relationships that are persisted in the information_schema and reflected in the UI. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holly_1-1736421024246.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/13970i2D011D167B8F2874/image-size/large?v=v2&amp;amp;px=999" role="button" title="holly_1-1736421024246.png" alt="holly_1-1736421024246.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;To see the full syntax of how these tables are created, check out the notebook &lt;A href="https://notebooks.databricks.com/devrel/nbs/%F0%9F%8E%84Data%20Engineering%20SQL%20Holiday%20Specials.html" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;For some of you this is a massive deal, however there is a snag; at the moment these are informational and not enforced. If I write a blog about them being enforced, you can guarantee that’s a &lt;span class="lia-unicode-emoji" title=":spouting_whale:"&gt;🐳&lt;/span&gt; feature.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Side note: 10/10 for the AI trying to make sense of these ridiculous tables. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holly_2-1736421037458.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/13971iBDCE47FB80D8DD4D/image-size/large?v=v2&amp;amp;px=999" role="button" title="holly_2-1736421037458.png" alt="holly_2-1736421037458.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN&gt;🦩Structured Streaming and liquid clustering compatibility Improvements&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Up until now you had to define upfront an empty table and the clustering keys before streaming into it, which, yes might be production best practice but a nasty papercut for quickly testing or debugging something.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This is no longer the case with structured streaming writes and the following will now work:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;(spark.readStream.format("rate") # generate some random data
 .load()
 .writeStream
 .clusterBy("timestamp") # &amp;lt;- this bit is new and now possible
 .option("checkpointLocation", "dbfs:/tmp/checkpoint/random_numbers")
 .trigger(once=True)  # let's not have this run forever
 .toTable("random_numbers") # new table created as part of this syntax
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;&lt;SPAN&gt;Yes I know this is a python example in a SQL blog, but I can't make a random number generator easily stream in SQL.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;To validate this has been successful, you can run &lt;FONT face="courier new,courier"&gt;DESCRIBE EXTENDED&lt;/FONT&gt; against the table name and look for clustering information, or see it in the table properties in the last row of the results.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;&lt;SPAN&gt;Public Previews&lt;/SPAN&gt;&lt;/H1&gt;
&lt;H2&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":spouting_whale:"&gt;🐳&lt;/span&gt; Oracle Lakehouse Federation&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Connect to Oracle with Databricks in a one time setup to let users query a table just like they would any in Unity Catalog.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The exact setup steps aren’t something Im going to replicate here as they are&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.databricks.com/en/query-federation/oracle.html" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;fully documented&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;, but in short:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;Check the requirements for UC, compute, networking and permissions&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;Create a Databricks connection for external data. You’ll need hostname, port, user and password details&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;Create a Foreign catalog in UC to mirror an Oracle database&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;[Optional] create views that make the best use of supported performance pushdowns like filter and limit&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;Keep in mind the data type mappings, if you don’t have timezones on your timestamps you might quickly end up in timezone hell.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;It won’t look particularly exciting in the catalog explorer UI either. To the uninitiated it’ll just show as another standard catalog.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;For me, this is an enormous win for breaking down silos and easy movement of data. You can now start plugging this in with other Databricks features like workflows and genie to dramatically simplify your data landscape.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":elephant:"&gt;🐘&lt;/span&gt; Warehouse system tables&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Finally! Programmatic access to warehouse data in system tables. This will allow you to see what’s been created and deleted over the last 30 days. Great for admins wanting to keep an eye on how many 10 cluster 4XL warehouses are being created. You can also use the data to find oversized auto stop times or those not tagged.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holly_3-1736421071673.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/13972i24863629AC9EBF64/image-size/medium?v=v2&amp;amp;px=400" role="button" title="holly_3-1736421071673.png" alt="holly_3-1736421071673.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;To enable this, ask an account admin to run:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;%sh
curl -v -X PUT -H "Authorization: Bearer &amp;lt;Developer Access Token&amp;gt;" "https://&amp;lt;your workspace url&amp;gt;.cloud.databricks.com/api/2.0/unity-catalog/metastores/&amp;lt;metastore id found in UC&amp;gt;/systemschemas/compute"

&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":elephant:"&gt;🐘&lt;/span&gt;Materialised View updates&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;MVs have had a few welcome updates recently, notably the ability to monitor runs with the query history UI, masking parity, and an easier way to schedule that doesn’t require deciphering CRON syntax. All of these have working examples in this notebook &lt;A href="https://notebooks.databricks.com/devrel/nbs/%F0%9F%8E%84Data%20Engineering%20SQL%20Holiday%20Specials.html" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I’ll do anything to avoid using the quartz cron &lt;/SPAN&gt;&lt;A href="https://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;scheduler&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt; (it’s a good site, I just lack the ability to retain any understanding of it). The new schedule is useful for standard intervals ranging from hours to weeks, but if you need something more intricate, it’s back to figuring out * vs ?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Instead of&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;%sql
CREATE MATERIALIZED VIEW ham_feasibility
SCHEDULE CRON '0 0 * * * * *' --old schedule syntax
AS . . .&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;It’s now&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;%sql
CREATE MATERIALIZED VIEW ham_feasibility
SCHEDULE EVERY 1 HOUR --new schedule syntax
AS . . .&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The next big update that MVs have had is the ability to see the performance in the Query History UI. Now it’s a lot easier to understand any drops in performance, especially if they’re sporadic and difficult to recreate. This can be accessed from the left hand menu and filter on compute as ‘DLT’ and statement as ‘REFRESH’ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holly_4-1736421096010.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/13973iCDD6F24B2F37B47C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="holly_4-1736421096010.png" alt="holly_4-1736421096010.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Another update to materialised views (and streaming tables) is the new support for filters and column masks.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;For row filtering, create a function like you would for any other table based on group membership, and add the keywords ‘with row filter’ to the creation statement&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;%sql
CREATE MATERIALIZED VIEW ham_options (ham_type STRING, is_edible BOOLEAN) 
WITH ROW FILTER veggie_filter --apply the function we just defined
AS SELECT * FROM ham_types

--now this view will show results tailored to whether or not the user is part of the omnivore group stored in unity catalog&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;And for column masking, define the function then apply it in the creation step after the defining the column&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;%sql
CREATE OR REPLACE MATERIALIZED VIEW ham_options
 (ham_type STRING,
 is_edible BOOLEAN MASK undefined_preference) -- applying the column mask to our materialised view
AS SELECT * FROM ham_types;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;One final new update for materialised views is the ability to set the compute to run with features only accessible in a private preview. This is done with the channel setting at table creation.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;%sql
CREATE MATERIALIZED VIEW preview_channel_example
TBLPROPERTIES(pipelines.channel = "PREVIEW") --set the compute to use features in public preview
AS SELECT day('2019-01-07') as result&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN&gt;🦔 Lite mode VACUUM&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Do you ever run a pipeline and know that you &lt;/SPAN&gt;&lt;I&gt;&lt;SPAN&gt;should&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN&gt; run a vacuum, but decide against it because it’ll take too long (but ultimately make the problem worse for yourself tomorrow)? Lite mode is a balance between the two, offering a faster option to prevent the proliferation of stale files.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The syntax is dead easy, it's just&amp;nbsp;&lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;VACUUM&lt;/SPAN&gt;&lt;SPAN&gt; table_name LITE;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;It doesn’t replace the default full version, it will only scan for stale files in the delta log and won’t do a full clean out checking for empty directories, parquet files from failed transactions or arbitrary files from connectors.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This feature didn’t quite make it to 🦩 sized as the majority of people don’t have data big enough to be running into this problem. This feature is for you if you notice your VACUUM statements are taking over 15 mins.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H1&gt;&lt;SPAN&gt;Sources and Further Reading&lt;/SPAN&gt;&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Release notes for &lt;A href="https://docs.databricks.com/en/release-notes/runtime/index.html" target="_blank" rel="noopener"&gt;Runtimes&lt;/A&gt;, &lt;A href="https://docs.databricks.com/en/sql/release-notes/index.html" target="_blank" rel="noopener"&gt;SQL&lt;/A&gt; and &lt;A href="https://docs.databricks.com/en/release-notes/product/index.html" target="_blank" rel="noopener"&gt;Platform&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://docs.databricks.com/en/tables/constraints.html#declare-primary-key-and-foreign-key-relationships" target="_blank" rel="noopener"&gt;Key constraints&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.databricks.com/en/sql/language-manual/sql-ref-syntax-ddl-create-materialized-view.html" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Materialised views&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.databricks.com/en/admin/system-tables/warehouses.html" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Warehouse system tables&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Notebook of &lt;A href="https://notebooks.databricks.com/devrel/nbs/%F0%9F%8E%84Data%20Engineering%20SQL%20Holiday%20Specials.html" target="_blank" rel="noopener"&gt;examples&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
    <pubDate>Thu, 09 Jan 2025 13:10:26 GMT</pubDate>
    <dc:creator>holly</dc:creator>
    <dc:date>2025-01-09T13:10:26Z</dc:date>
    <item>
      <title>Data Engineering SQL Holiday Specials</title>
      <link>https://community.databricks.com/t5/technical-blog/data-engineering-sql-holiday-specials/ba-p/104905</link>
      <description>&lt;P&gt;&lt;SPAN&gt;December is the most celebrated time of year in the Data Engineering calendar as we embrace the important holiday: change freeze season.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;As we come back to the office to start our new projects, I wanted to make you aware of some quietly released features in the data engineering ecosystem in Databricks in the hope they might benefit you.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jan 2025 13:10:26 GMT</pubDate>
      <guid>https://community.databricks.com/t5/technical-blog/data-engineering-sql-holiday-specials/ba-p/104905</guid>
      <dc:creator>holly</dc:creator>
      <dc:date>2025-01-09T13:10:26Z</dc:date>
    </item>
    <item>
      <title>Re: Data Engineering SQL Holiday Specials</title>
      <link>https://community.databricks.com/t5/technical-blog/data-engineering-sql-holiday-specials/bc-p/104980#M430</link>
      <description>&lt;P&gt;Great insight about the latest DBRS features. Thanks for sharing the information!&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jan 2025 15:51:13 GMT</pubDate>
      <guid>https://community.databricks.com/t5/technical-blog/data-engineering-sql-holiday-specials/bc-p/104980#M430</guid>
      <dc:creator>BamBam</dc:creator>
      <dc:date>2025-01-09T15:51:13Z</dc:date>
    </item>
  </channel>
</rss>

