<?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 SCD Type-2 in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/scd-type-2/m-p/4095#M909</link>
    <description>&lt;P&gt;Hi All, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have 22 postgress tables and i need to implement SCD type 2 and create azure Databricks pipeline . However my project team doesn't want to use delta tables concept . Have anyone implemented this ? below is how i planned to do &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try:&lt;/P&gt;&lt;P&gt;&amp;nbsp;df_src = spark.read.jdbc(url=jdbcUrl_source, table="data_table_1", properties=connectionProperties)&lt;/P&gt;&lt;P&gt;except Exception as e:&lt;/P&gt;&lt;P&gt;&amp;nbsp;print("not able to connect")&lt;/P&gt;&lt;P&gt;&amp;nbsp;print(f"Error is :{e}")&lt;/P&gt;&lt;P&gt;&amp;nbsp;raise Exception&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try:&lt;/P&gt;&lt;P&gt;&amp;nbsp;data_table_1_target_df = spark.read.jdbc(url=jdbcUrl_target, table="data_table_1", properties=connectionProperties)&lt;/P&gt;&lt;P&gt;except Exception as e:&lt;/P&gt;&lt;P&gt;&amp;nbsp;print("Target path not found")&lt;/P&gt;&lt;P&gt;&amp;nbsp;print(f"Error is :{e}")&lt;/P&gt;&lt;P&gt;&amp;nbsp;raise Exception&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;merged_data_df = spark.sql("""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;MERGE INTO target_table AS t&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;USING scd_data AS s&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;ON t.id = s.id&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;WHEN MATCHED AND t.status = TRUE THEN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPDATE SET&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t.effective_to_date = s.start_date,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t.status = FALSE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;WHEN NOT MATCHED THEN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;INSERT (id, cus_name, age, effective_from_date, effective_to_date, status)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;VALUES (s.id, s.cus_name, s.age, s.start_date, s.end_date, s.is_active)&lt;/P&gt;&lt;P&gt;""")&lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 22 May 2023 13:15:19 GMT</pubDate>
    <dc:creator>sudhanshu1</dc:creator>
    <dc:date>2023-05-22T13:15:19Z</dc:date>
    <item>
      <title>SCD Type-2</title>
      <link>https://community.databricks.com/t5/data-engineering/scd-type-2/m-p/4095#M909</link>
      <description>&lt;P&gt;Hi All, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have 22 postgress tables and i need to implement SCD type 2 and create azure Databricks pipeline . However my project team doesn't want to use delta tables concept . Have anyone implemented this ? below is how i planned to do &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try:&lt;/P&gt;&lt;P&gt;&amp;nbsp;df_src = spark.read.jdbc(url=jdbcUrl_source, table="data_table_1", properties=connectionProperties)&lt;/P&gt;&lt;P&gt;except Exception as e:&lt;/P&gt;&lt;P&gt;&amp;nbsp;print("not able to connect")&lt;/P&gt;&lt;P&gt;&amp;nbsp;print(f"Error is :{e}")&lt;/P&gt;&lt;P&gt;&amp;nbsp;raise Exception&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try:&lt;/P&gt;&lt;P&gt;&amp;nbsp;data_table_1_target_df = spark.read.jdbc(url=jdbcUrl_target, table="data_table_1", properties=connectionProperties)&lt;/P&gt;&lt;P&gt;except Exception as e:&lt;/P&gt;&lt;P&gt;&amp;nbsp;print("Target path not found")&lt;/P&gt;&lt;P&gt;&amp;nbsp;print(f"Error is :{e}")&lt;/P&gt;&lt;P&gt;&amp;nbsp;raise Exception&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;merged_data_df = spark.sql("""&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;MERGE INTO target_table AS t&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;USING scd_data AS s&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;ON t.id = s.id&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;WHEN MATCHED AND t.status = TRUE THEN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPDATE SET&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t.effective_to_date = s.start_date,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t.status = FALSE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;WHEN NOT MATCHED THEN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;INSERT (id, cus_name, age, effective_from_date, effective_to_date, status)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;VALUES (s.id, s.cus_name, s.age, s.start_date, s.end_date, s.is_active)&lt;/P&gt;&lt;P&gt;""")&lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 22 May 2023 13:15:19 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/scd-type-2/m-p/4095#M909</guid>
      <dc:creator>sudhanshu1</dc:creator>
      <dc:date>2023-05-22T13:15:19Z</dc:date>
    </item>
  </channel>
</rss>

