<?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 Schema change and OpenSearch in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/schema-change-and-opensearch/m-p/113028#M44397</link>
    <description>&lt;P&gt;Let me be crystal clear: Schema Change and OpenSeach do not fit well together. However, the data pushed to it are processed and&amp;nbsp;always have the same schema. The problem here is that Spark is reading a CDC feed, which is subject to Schema Change because the source table may be changed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I attempted to solve the issue by providing the mergeSchema and&amp;nbsp;&lt;FONT face="inherit" color="#183139"&gt;schemaTrackingLocation. I think these settings are useful to Spark for the &lt;/FONT&gt;&lt;FONT color="#183139"&gt;&lt;SPAN&gt;checkpoint&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="inherit" color="#183139"&gt;&amp;nbsp;data.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="inherit" color="#183139"&gt;But it is not working, the code &lt;/FONT&gt;&lt;FONT color="#183139"&gt;&lt;SPAN&gt;keeps&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="inherit" color="#183139"&gt;&amp;nbsp;failing with:&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;com.databricks.sql.transaction.tahoe.DeltaStreamingColumnMappingSchemaIncompatibleException: Streaming read is not supported on tables with read-incompatible schema changes (e.g. rename or drop or datatype changes).
Please provide a 'schemaTrackingLocation' to enable non-additive schema evolution for Delta stream processing.&lt;/LI-CODE&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;The above error is thrown for this schema change detection. Please note that the source table has a delta.columMapping on ID enabled. &amp;nbsp;This makes the diff larger, however, only a new field has been added in additive way.&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;LI-CODE lang="markup"&gt;@@ -178,39 +249,64 @@
       "type": "integer",
       "nullable": true,
       "metadata": {
-        "comment": "Day extraction from `action_ts`"
+        "comment": "Day extraction from `action_ts`",
+        "delta.columnMapping.id": 27,
+        "delta.columnMapping.physicalName": "day"
       }
     },
     {
       "name": "merchant_shared_request_id",
       "type": "string",
       "nullable": true,
-      "metadata": {}
+      "metadata": {
+        "delta.columnMapping.id": 28,
+        "delta.columnMapping.physicalName": "merchant_shared_request_id"
+      }
     },
     {
       "name": "merchant_nsid",
       "type": "string",
       "nullable": true,
-      "metadata": {}
+      "metadata": {
+        "delta.columnMapping.id": 29,
+        "delta.columnMapping.physicalName": "merchant_nsid"
+      }
     },
     {
       "name": "refunded_on_behalf_of",
       "type": "string",
       "nullable": true,
-      "metadata": {}
-    },parse error: Invalid numeric literal at line 1, column 2833
-
+      "metadata": {
+        "delta.columnMapping.id": 30,
+        "delta.columnMapping.physicalName": "refunded_on_behalf_of"
+      }
+    },
     {
       "name": "payment_provider_to_merchant",
       "type": "string",
       "nullable": true,
-      "metadata": {}
+      "metadata": {
+        "delta.columnMapping.id": 31,
+        "delta.columnMapping.physicalName": "payment_provider_to_merchant"
+      }
     },
     {
       "name": "idempotency",
       "type": "string",
       "nullable": true,
-      "metadata": {}
+      "metadata": {
+        "delta.columnMapping.id": 34,
+        "delta.columnMapping.physicalName": "col-eeea8bdf-5e74-4088-8d9e-208fd9e55014"
+      }
+    },
+    {
+      "name": "payment_provider_operation_id",
+      "type": "string",
+      "nullable": true,
+      "metadata": {
+        "delta.columnMapping.id": 35,
+        "delta.columnMapping.physicalName": "col-a4b6a352-73cf-4af5-aae6-364c57d6a4cf"
+      }
     }
   ]
 }&lt;/LI-CODE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;I can handle the schema change manually, however, it will be much better in an automatic fashion.&lt;/DIV&gt;&lt;DIV class=""&gt;Any idea?&lt;/DIV&gt;</description>
    <pubDate>Wed, 19 Mar 2025 09:56:17 GMT</pubDate>
    <dc:creator>6502</dc:creator>
    <dc:date>2025-03-19T09:56:17Z</dc:date>
    <item>
      <title>Schema change and OpenSearch</title>
      <link>https://community.databricks.com/t5/data-engineering/schema-change-and-opensearch/m-p/113028#M44397</link>
      <description>&lt;P&gt;Let me be crystal clear: Schema Change and OpenSeach do not fit well together. However, the data pushed to it are processed and&amp;nbsp;always have the same schema. The problem here is that Spark is reading a CDC feed, which is subject to Schema Change because the source table may be changed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I attempted to solve the issue by providing the mergeSchema and&amp;nbsp;&lt;FONT face="inherit" color="#183139"&gt;schemaTrackingLocation. I think these settings are useful to Spark for the &lt;/FONT&gt;&lt;FONT color="#183139"&gt;&lt;SPAN&gt;checkpoint&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="inherit" color="#183139"&gt;&amp;nbsp;data.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="inherit" color="#183139"&gt;But it is not working, the code &lt;/FONT&gt;&lt;FONT color="#183139"&gt;&lt;SPAN&gt;keeps&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="inherit" color="#183139"&gt;&amp;nbsp;failing with:&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;com.databricks.sql.transaction.tahoe.DeltaStreamingColumnMappingSchemaIncompatibleException: Streaming read is not supported on tables with read-incompatible schema changes (e.g. rename or drop or datatype changes).
Please provide a 'schemaTrackingLocation' to enable non-additive schema evolution for Delta stream processing.&lt;/LI-CODE&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;The above error is thrown for this schema change detection. Please note that the source table has a delta.columMapping on ID enabled. &amp;nbsp;This makes the diff larger, however, only a new field has been added in additive way.&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;LI-CODE lang="markup"&gt;@@ -178,39 +249,64 @@
       "type": "integer",
       "nullable": true,
       "metadata": {
-        "comment": "Day extraction from `action_ts`"
+        "comment": "Day extraction from `action_ts`",
+        "delta.columnMapping.id": 27,
+        "delta.columnMapping.physicalName": "day"
       }
     },
     {
       "name": "merchant_shared_request_id",
       "type": "string",
       "nullable": true,
-      "metadata": {}
+      "metadata": {
+        "delta.columnMapping.id": 28,
+        "delta.columnMapping.physicalName": "merchant_shared_request_id"
+      }
     },
     {
       "name": "merchant_nsid",
       "type": "string",
       "nullable": true,
-      "metadata": {}
+      "metadata": {
+        "delta.columnMapping.id": 29,
+        "delta.columnMapping.physicalName": "merchant_nsid"
+      }
     },
     {
       "name": "refunded_on_behalf_of",
       "type": "string",
       "nullable": true,
-      "metadata": {}
-    },parse error: Invalid numeric literal at line 1, column 2833
-
+      "metadata": {
+        "delta.columnMapping.id": 30,
+        "delta.columnMapping.physicalName": "refunded_on_behalf_of"
+      }
+    },
     {
       "name": "payment_provider_to_merchant",
       "type": "string",
       "nullable": true,
-      "metadata": {}
+      "metadata": {
+        "delta.columnMapping.id": 31,
+        "delta.columnMapping.physicalName": "payment_provider_to_merchant"
+      }
     },
     {
       "name": "idempotency",
       "type": "string",
       "nullable": true,
-      "metadata": {}
+      "metadata": {
+        "delta.columnMapping.id": 34,
+        "delta.columnMapping.physicalName": "col-eeea8bdf-5e74-4088-8d9e-208fd9e55014"
+      }
+    },
+    {
+      "name": "payment_provider_operation_id",
+      "type": "string",
+      "nullable": true,
+      "metadata": {
+        "delta.columnMapping.id": 35,
+        "delta.columnMapping.physicalName": "col-a4b6a352-73cf-4af5-aae6-364c57d6a4cf"
+      }
     }
   ]
 }&lt;/LI-CODE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;I can handle the schema change manually, however, it will be much better in an automatic fashion.&lt;/DIV&gt;&lt;DIV class=""&gt;Any idea?&lt;/DIV&gt;</description>
      <pubDate>Wed, 19 Mar 2025 09:56:17 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/schema-change-and-opensearch/m-p/113028#M44397</guid>
      <dc:creator>6502</dc:creator>
      <dc:date>2025-03-19T09:56:17Z</dc:date>
    </item>
    <item>
      <title>Re: Schema change and OpenSearch</title>
      <link>https://community.databricks.com/t5/data-engineering/schema-change-and-opensearch/m-p/138287#M50899</link>
      <description>&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;You are encountering a common issue in Databricks Delta Lake streaming when working with Change Data Capture (CDC) feeds: schema evolution, especially with column mapping enabled, is not fully supported automatically in streaming reads—that includes additive-only schema changes (like adding columns) when column mapping is turned on. This limitation persists even when you have set&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;mergeSchema&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;schemaTrackingLocation&lt;/CODE&gt;, as you have correctly noticed.&lt;/P&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Here’s a direct answer, then suggestions and workarounds:&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Direct Answer&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Delta Lake streaming currently does not, as of late 2025, fully support automatic schema evolution (even additive) for streaming reads from tables with Delta column mapping enabled. The requirement from the error (“please provide a 'schemaTrackingLocation'…”) only applies to non-additive changes if your table does NOT have column mapping turned on. With column mapping, non-breaking schema changes can still cause failures, particularly on streaming reads.&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Why Your Solution Isn’t Working&lt;/H2&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;CODE&gt;mergeSchema&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;schemaTrackingLocation&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;help Spark recognize and track schema changes, but only support limited scenarios (primarily for batch reads or when column mapping is NOT enabled).&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;With column mapping on, Delta Lake can tolerate schema changes in batch (using column IDs to map fields), but streaming queries are more strict because they need consistent column structure throughout the stream run.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Additive schema changes (like adding new columns) can break an active structured streaming query—even with those settings—if Spark detects incompatible schema evolution via mapping IDs.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;The error you see is typical: even if only new fields are added, underlying column mapping differences between checkpoints and the new table version can cause failures due to internal mapping ID mismatches.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Workarounds and Recommendations&lt;/H2&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;1. Manual Schema Management (Best Reliability)&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;If your data pipeline has some flexibility, you can:&lt;/P&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Stop the current stream when schema changes (and the schema incompatibility exception occurs)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Restart the streaming job (checkpointed to a new location), so Spark picks up the new schema and mapping IDs cleanly&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;2. Remove Column Mapping (If Possible)&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;If strict column mapping isn’t required for your table, consider disabling it. Additive-only schema changes are more easily handled by Spark’s schema evolution settings in this mode. Batch reads are a lot more forgiving.&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;3. Downstream Schema Shim (Dynamic Column Selection)&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;You can read all columns as a struct (or as a binary blob), and manually flatten/select columns in your downstream logic, to ignore new columns and prevent column mapping issues.&lt;/P&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Example (PySpark):&lt;/P&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-light selection:text-super selection:bg-super/10 my-md relative flex flex-col rounded font-mono text-sm font-normal bg-subtler"&gt;
&lt;DIV class="translate-y-xs -translate-x-xs bottom-xl mb-xl flex h-0 items-start justify-end md:sticky md:top-[100px]"&gt;
&lt;DIV class="overflow-hidden rounded-full border-subtlest ring-subtlest divide-subtlest bg-base"&gt;
&lt;DIV class="border-subtlest ring-subtlest divide-subtlest bg-subtler"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV&gt;
&lt;DIV class="text-quiet bg-subtle py-xs px-sm inline-block rounded-br rounded-tl-[3px] font-thin" data-testid="code-language-indicator"&gt;python&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;CODE&gt;raw_df &lt;SPAN class="token token operator"&gt;=&lt;/SPAN&gt; spark&lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;readStream&lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;format&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"delta"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;load&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;".../table"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
column_names &lt;SPAN class="token token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token token punctuation"&gt;[&lt;/SPAN&gt;col &lt;SPAN class="token token"&gt;for&lt;/SPAN&gt; col &lt;SPAN class="token token"&gt;in&lt;/SPAN&gt; raw_df&lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;columns &lt;SPAN class="token token"&gt;if&lt;/SPAN&gt; col &lt;SPAN class="token token"&gt;in&lt;/SPAN&gt; allowed_columns&lt;SPAN class="token token punctuation"&gt;]&lt;/SPAN&gt;
processed_df &lt;SPAN class="token token operator"&gt;=&lt;/SPAN&gt; raw_df&lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;select&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token operator"&gt;*&lt;/SPAN&gt;column_names&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="token token"&gt;# Now proceed as normal&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;This approach requires code to handle new columns intentionally, so your stream isn’t broken by surprise additions.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;4. Auto-Restart with Monitoring&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Build external monitoring that detects this schema exception and restarts the streaming job automatically with updated schema (pointing to a new checkpoint). This is closest to “automatic” as can be achieved, since true schema-evolving streaming isn’t yet supported with column mapping.&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Key Takeaway&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;As of November 2025, full auto schema evolution for streaming on Delta tables with column mapping is not supported—the approach you tried only works for non-mapped tables, and only for strictly additive changes. The only robust “automatic” path involves detecting schema exceptions and restarting the stream, or shifting your architecture to batch writes, or disabling column mapping if you do not strongly require it.&lt;/P&gt;</description>
      <pubDate>Sun, 09 Nov 2025 14:30:16 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/schema-change-and-opensearch/m-p/138287#M50899</guid>
      <dc:creator>mark_ott</dc:creator>
      <dc:date>2025-11-09T14:30:16Z</dc:date>
    </item>
  </channel>
</rss>

