<?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 Migrate Spark projects from Compose for Data Lakes 6.6 to Qlik Compose 2021.8 in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/Migrate-Spark-projects-from-Compose-for-Data-Lakes-6-6-to-Qlik/ta-p/1906493</link>
    <description>&lt;P&gt;&lt;SPAN&gt;This is part 4 of 4 in a series of articles with information about migrating Spark projects from&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;U&gt;&lt;STRONG&gt;Compose for Data Lakes 6.6 (C4DL 6.6) to Qlik Compose 2021.8 (Gen2)&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;div class="video-embed-center video-embed"&gt;&lt;iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F5bHnH2oepcA%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D5bHnH2oepcA&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F5bHnH2oepcA%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" width="600" height="337" scrolling="no" title="Migrate Spark projects from Compose for Data Lakes to Qlik Compose" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture" allowfullscreen="true"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Different Migration Modules for customers&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Migration Pre-Requisites
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Pre-Requisites-for-Migrating-Projects-from-Compose-for-Data/ta-p/1906405" target="_self"&gt;Pre-Requisites for Migrating Projects from Compose for Data Lakes to Qlik Compose&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Databricks to Databricks
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Migrate-Databricks-projects-from-Compose-for-Data-Lakes-6-6-to/ta-p/1906413" target="_self"&gt;Migrate Databricks projects from Compose for Data Lakes 6.6 to Qlik Compose 2021.8&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Hive to Hive supported version
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Migrate-Hive-projects-from-Compose-for-Data-Lakes-6-6-to-Qlik/ta-p/1906481" target="_self"&gt;Migrate Hive projects from Compose for Data Lakes 6.6 to Qlik Compose 2021.8&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Module 4&lt;/U&gt;&lt;/STRONG&gt;&lt;STRONG&gt;: Migrate Spark projects from C4DL 6.6 to Gen2&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There are two paths for &lt;STRONG&gt;Spark project&lt;/STRONG&gt;, you can choose one of the paths to finish migration.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;Path 1:&lt;/STRONG&gt; You can clean up storage database and replicate landing database (including underlaying files for attrep_cdc_partition). Reload replicate task and start the compose tasks as it is new project. It was covered in first demo.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;Path 2:&lt;/STRONG&gt; You can follow migration path, and we explained all the required steps in this document.&lt;/P&gt;
&lt;P&gt;Here are the migration steps (Path 2) if you don’t want to reload the replicate task. You are going to completely migrate your project definition and data to Gen2.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Install Qlik Compose 2021.8 on a dedicated machine\the same machine where FDL 6.6 exist.&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Select a project in C4DL 6.6 and perform the below steps.&lt;/LI&gt;
&lt;/UL&gt;
&lt;OL&gt;
&lt;LI&gt;Make sure external storage tables created before start migration.&lt;/LI&gt;
&lt;LI&gt;Run the CDC task last time before migrate data and disable if there are any schedules on the tasks.&lt;/LI&gt;
&lt;LI&gt;Run the compactor Job before migrating.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Create the deployment package&amp;nbsp;&amp;nbsp; à &lt;STRONG&gt;Suresh_Spark_Hive_deployment_&amp;lt;datetime&amp;gt;.zip&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;Create new Hive project in 2021.8 and project type as ODS+HDS. you have to migrate data also so create a new storage database with different name (we can’t use same database which is using in C4DL project) and provide it in Data Lake connection. Do the test connection to make sure you have correct drivers installed for your data lake. Now we have an empty project in gen2 with storage connection.&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Deploy the projects on Qlik Compose 2021.8 and migrate the data&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Migrate the project definitions&lt;/LI&gt;
&lt;/UL&gt;
&lt;OL&gt;
&lt;UL&gt;
&lt;OL&gt;
&lt;LI&gt;Login to Qlik Compose 2021.8 cli and run below command to create compatible package.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;ComposeCli.exe adjust_cfdl_project --project Suresh_Spark_Hive --infile “C:\Program Files\Qlik\C4DL66\Suresh_Spark_Hive_deployment_&amp;lt;datetime&amp;gt;.zip”&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;-&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="font-family: inherit;"&gt;C:\ProgramFiles\Qlik\Compose\data\projects\Suresh_Spark_Hive\deployment_package\&lt;/STRONG&gt; &lt;STRONG style="font-family: inherit;"&gt;Suresh_Spark_Hive _&amp;lt;datetime&amp;gt;__QlikComposeDLMigration.zip&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;UL&gt;
&lt;OL&gt;
&lt;LI&gt;Deploy adjusted deployment package on gen2 project.&lt;/LI&gt;
&lt;LI&gt;Validate model and create the storage tables.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Migrate the data&lt;/LI&gt;
&lt;/UL&gt;
&lt;OL&gt;
&lt;UL&gt;
&lt;OL&gt;
&lt;LI&gt;Generate tasks then execute a data migration SQL script from notebook.&lt;/LI&gt;
&lt;LI&gt;Generate 'create data migration script’ using below cli (Qlik Compose 2021.8 cli) command and run it on storage database Using External tool.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;ComposeCli.exe create_cfdl_data_migration_script --project Suresh_Hive_HDS --infile&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; “C:\Program Files\Qlik\C4DL66\&lt;/STRONG&gt; &lt;STRONG&gt;Suresh_Hive_HDS_deployment_&amp;lt;datetime&amp;gt;.zip” --states_path "/user/admin/spark_storage_66/states/storage"&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Troy_Raney_0-1647518146304.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/74724i4C8ADA0A92769CC9/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Troy_Raney_0-1647518146304.png" alt="Troy_Raney_0-1647518146304.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;You can get the storage path from C4DL 6.6 CDC task. You need not provide task no. also in path. Please observe the command and proceed it in your environment. &lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;UL&gt;
&lt;OL&gt;
&lt;LI&gt;verify the data is correct&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;NOTE: &amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;We must use new storage database in path 2 because we are going to run select * from C4DL 6.6 storage database and insert into Qlik Compose 2021.8 storage database in the migrate data step (3 (b)).&lt;/LI&gt;
&lt;LI&gt;If you want, you can run C4DL project and Gen2 project parallelly for few days.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After migration you can check\run&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ODS and HDS live views before running CDC&lt;/LI&gt;
&lt;LI&gt;CDC with updates\inserts\deletes&lt;/LI&gt;
&lt;LI&gt;CDC with reload event&lt;/LI&gt;
&lt;LI&gt;schema evolution -&amp;nbsp;you should run schema evolution and skip all detected changes - to set the context&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;also set&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;workflow&lt;/LI&gt;
&lt;LI&gt;scheduler&lt;/LI&gt;
&lt;LI&gt;notification&lt;/LI&gt;
&lt;LI&gt;work with multiple replicate servers&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You can watch demo video How to Migrate Spark projects from C4DL66 to Gen2.&lt;/P&gt;
&lt;P&gt;Migration Notes &amp;amp; Limitations&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;General&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;current assumption: DL66 and gen2 use the same cluster&lt;/LI&gt;
&lt;LI&gt;replicate to support speed partition mode&lt;/LI&gt;
&lt;LI&gt;after project migrated, run cli to create migration script&lt;/LI&gt;
&lt;LI&gt;for spark project, user should provide the path to the context,&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.g.,&amp;nbsp;&lt;STRONG&gt;'hdfs:///user/admin/spark_storage_66/states/storage'&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Limitations:&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;due to a bug in hive partitions can’t be created dynamically. we read status table in 66 then create script with hardcoded values of partitions&amp;nbsp;&lt;A href="https://issues.apache.org/jira/browse/HIVE-24163" target="_blank" rel="noopener"&gt;https://issues.apache.org/jira/browse/HIVE-24163&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;due to a bug in hive time zones are not always calculated correctly and there is no stable way to get UTC time. we get UTC time in compose server and then its hardcoded into the script&lt;/LI&gt;
&lt;LI&gt;because of the limitations mentioned above, script should be created close to time of execution. Do not execute old scripts.&lt;/LI&gt;
&lt;LI&gt;in case of ODS table in DL66 there is no easy way to determine the header__oper (I\U) for the migration, putting 'I'&lt;/LI&gt;
&lt;LI&gt;in case of multiple mappings for entity (not supported in gen2), the first active will be taken.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Migration flow&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Spark (only HDS)&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;requires external tables to be created&lt;/LI&gt;
&lt;LI&gt;run CDC in 66&lt;/LI&gt;
&lt;LI&gt;run compactor&lt;/LI&gt;
&lt;LI&gt;create adjusted package&lt;/LI&gt;
&lt;LI&gt;deploy the adjusted package to Qlik compose&lt;/LI&gt;
&lt;LI&gt;create external tables in Qlik compose&lt;/LI&gt;
&lt;LI&gt;create migration script&lt;/LI&gt;
&lt;LI&gt;run migration script in external tool&lt;/LI&gt;
&lt;LI&gt;verify the data&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Hive:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;validate storage and run CDC tasks in 66&lt;/LI&gt;
&lt;LI&gt;create adjusted package&lt;/LI&gt;
&lt;LI&gt;deploy the adjusted package to Qlik compose&lt;/LI&gt;
&lt;LI&gt;create tables in Qlik compose&lt;/LI&gt;
&lt;LI&gt;create migration script&lt;/LI&gt;
&lt;LI&gt;run migration script in external tool&lt;/LI&gt;
&lt;LI&gt;verify the data&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Databricks:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Set data bricks project with delete records settings. 3 landings. do some insert, update and delete. run full load and cdc&lt;/LI&gt;
&lt;LI&gt;create a deployment&lt;/LI&gt;
&lt;LI&gt;run 'adjust deployment' cli command&lt;/LI&gt;
&lt;LI&gt;create the storage&lt;/LI&gt;
&lt;LI&gt;run 'create data migration script' cli command and run it on db&lt;/LI&gt;
&lt;LI&gt;verify the data is correct&lt;/LI&gt;
&lt;LI&gt;view live views with changes. run cdc. run cdc with reload event.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before the migration, prepare an environment with the following settings&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;non default settings for&amp;nbsp;dwh_prefix,&lt;STRONG&gt;,&amp;nbsp;&lt;/STRONG&gt;prefix for compose column, from_date\to_date&lt;/LI&gt;
&lt;LI&gt;model with ods and hds entities&lt;/LI&gt;
&lt;LI&gt;rename entity\attribute&lt;/LI&gt;
&lt;LI&gt;mappings with expression and lookup&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;no mappings&lt;/STRONG&gt; - an error when trying to generate the data migration script(No active mapping was found for entity: `region2`), user should remove the entity first and run cli again&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;multiple mappings&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;-&amp;nbsp;more than one mapping per an entity&amp;nbsp;&lt;STRONG&gt;even if the other is not active&lt;/STRONG&gt;&amp;nbsp;- not supported. an error when running the adjust deployment cli (Entity: `products2` has multiple mappings: `Map_products_landing, Map_products2_1` &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;soft\hard delete\do nothing&lt;/LI&gt;
&lt;LI&gt;exclude TD&lt;/LI&gt;
&lt;LI&gt;The storage contains I. U, D records&amp;nbsp;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;hds entity: inserts, updates and deleted records will be displayed with I, U and D accordingly&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;ods entity:&amp;nbsp;&lt;STRONG&gt;inserts and updates will be displayed with I&lt;/STRONG&gt;&lt;STRONG&gt;, deleted&lt;/STRONG&gt; with D&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI&gt;Ran schema evolution including last CDC task run in C4DL 6.6 if it is enabled.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After migration check\run&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ods and hds live views before running cdc (with some updates \inserts\deletes)&lt;/LI&gt;
&lt;LI&gt;cdc with updates\inserts\deletes&lt;/LI&gt;
&lt;LI&gt;cdc with reload event&lt;/LI&gt;
&lt;LI&gt;schema evolution -&amp;nbsp;&lt;STRONG&gt;user should run schema evolution and skip all detected changes - to set the context&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;and also set&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;workflow&lt;/LI&gt;
&lt;LI&gt;scheduler&lt;/LI&gt;
&lt;LI&gt;notification&lt;/LI&gt;
&lt;LI&gt;work with multiple replicate servers&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4 id="toc-hId--486185974"&gt;Environment&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;From Compose for Data Lakes 6.6&lt;/LI&gt;
&lt;LI&gt;To Qlik Compose 2021.8&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.&lt;/P&gt;
&lt;H3 id="toc-hId--496689078"&gt;Related Content&amp;nbsp;&lt;/H3&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Migration-paths-for-Qlik-Compose/ta-p/1894388" target="_self"&gt;Migration paths for Qlik Compose&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 10 May 2022 12:10:39 GMT</pubDate>
    <dc:creator>Troy_Raney</dc:creator>
    <dc:date>2022-05-10T12:10:39Z</dc:date>
    <item>
      <title>Migrate Spark projects from Compose for Data Lakes 6.6 to Qlik Compose 2021.8</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Migrate-Spark-projects-from-Compose-for-Data-Lakes-6-6-to-Qlik/ta-p/1906493</link>
      <description>&lt;P&gt;&lt;SPAN&gt;This is part 4 of 4 in a series of articles with information about migrating Spark projects from&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;U&gt;&lt;STRONG&gt;Compose for Data Lakes 6.6 (C4DL 6.6) to Qlik Compose 2021.8 (Gen2)&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;div class="video-embed-center video-embed"&gt;&lt;iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F5bHnH2oepcA%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D5bHnH2oepcA&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F5bHnH2oepcA%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" width="600" height="337" scrolling="no" title="Migrate Spark projects from Compose for Data Lakes to Qlik Compose" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture" allowfullscreen="true"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Different Migration Modules for customers&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Migration Pre-Requisites
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Pre-Requisites-for-Migrating-Projects-from-Compose-for-Data/ta-p/1906405" target="_self"&gt;Pre-Requisites for Migrating Projects from Compose for Data Lakes to Qlik Compose&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Databricks to Databricks
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Migrate-Databricks-projects-from-Compose-for-Data-Lakes-6-6-to/ta-p/1906413" target="_self"&gt;Migrate Databricks projects from Compose for Data Lakes 6.6 to Qlik Compose 2021.8&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Hive to Hive supported version
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Migrate-Hive-projects-from-Compose-for-Data-Lakes-6-6-to-Qlik/ta-p/1906481" target="_self"&gt;Migrate Hive projects from Compose for Data Lakes 6.6 to Qlik Compose 2021.8&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Module 4&lt;/U&gt;&lt;/STRONG&gt;&lt;STRONG&gt;: Migrate Spark projects from C4DL 6.6 to Gen2&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There are two paths for &lt;STRONG&gt;Spark project&lt;/STRONG&gt;, you can choose one of the paths to finish migration.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;Path 1:&lt;/STRONG&gt; You can clean up storage database and replicate landing database (including underlaying files for attrep_cdc_partition). Reload replicate task and start the compose tasks as it is new project. It was covered in first demo.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;Path 2:&lt;/STRONG&gt; You can follow migration path, and we explained all the required steps in this document.&lt;/P&gt;
&lt;P&gt;Here are the migration steps (Path 2) if you don’t want to reload the replicate task. You are going to completely migrate your project definition and data to Gen2.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Install Qlik Compose 2021.8 on a dedicated machine\the same machine where FDL 6.6 exist.&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Select a project in C4DL 6.6 and perform the below steps.&lt;/LI&gt;
&lt;/UL&gt;
&lt;OL&gt;
&lt;LI&gt;Make sure external storage tables created before start migration.&lt;/LI&gt;
&lt;LI&gt;Run the CDC task last time before migrate data and disable if there are any schedules on the tasks.&lt;/LI&gt;
&lt;LI&gt;Run the compactor Job before migrating.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Create the deployment package&amp;nbsp;&amp;nbsp; à &lt;STRONG&gt;Suresh_Spark_Hive_deployment_&amp;lt;datetime&amp;gt;.zip&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;Create new Hive project in 2021.8 and project type as ODS+HDS. you have to migrate data also so create a new storage database with different name (we can’t use same database which is using in C4DL project) and provide it in Data Lake connection. Do the test connection to make sure you have correct drivers installed for your data lake. Now we have an empty project in gen2 with storage connection.&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Deploy the projects on Qlik Compose 2021.8 and migrate the data&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Migrate the project definitions&lt;/LI&gt;
&lt;/UL&gt;
&lt;OL&gt;
&lt;UL&gt;
&lt;OL&gt;
&lt;LI&gt;Login to Qlik Compose 2021.8 cli and run below command to create compatible package.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;ComposeCli.exe adjust_cfdl_project --project Suresh_Spark_Hive --infile “C:\Program Files\Qlik\C4DL66\Suresh_Spark_Hive_deployment_&amp;lt;datetime&amp;gt;.zip”&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;-&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="font-family: inherit;"&gt;C:\ProgramFiles\Qlik\Compose\data\projects\Suresh_Spark_Hive\deployment_package\&lt;/STRONG&gt; &lt;STRONG style="font-family: inherit;"&gt;Suresh_Spark_Hive _&amp;lt;datetime&amp;gt;__QlikComposeDLMigration.zip&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;UL&gt;
&lt;OL&gt;
&lt;LI&gt;Deploy adjusted deployment package on gen2 project.&lt;/LI&gt;
&lt;LI&gt;Validate model and create the storage tables.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Migrate the data&lt;/LI&gt;
&lt;/UL&gt;
&lt;OL&gt;
&lt;UL&gt;
&lt;OL&gt;
&lt;LI&gt;Generate tasks then execute a data migration SQL script from notebook.&lt;/LI&gt;
&lt;LI&gt;Generate 'create data migration script’ using below cli (Qlik Compose 2021.8 cli) command and run it on storage database Using External tool.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;ComposeCli.exe create_cfdl_data_migration_script --project Suresh_Hive_HDS --infile&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; “C:\Program Files\Qlik\C4DL66\&lt;/STRONG&gt; &lt;STRONG&gt;Suresh_Hive_HDS_deployment_&amp;lt;datetime&amp;gt;.zip” --states_path "/user/admin/spark_storage_66/states/storage"&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Troy_Raney_0-1647518146304.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/74724i4C8ADA0A92769CC9/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Troy_Raney_0-1647518146304.png" alt="Troy_Raney_0-1647518146304.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;You can get the storage path from C4DL 6.6 CDC task. You need not provide task no. also in path. Please observe the command and proceed it in your environment. &lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;UL&gt;
&lt;OL&gt;
&lt;LI&gt;verify the data is correct&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;NOTE: &amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;We must use new storage database in path 2 because we are going to run select * from C4DL 6.6 storage database and insert into Qlik Compose 2021.8 storage database in the migrate data step (3 (b)).&lt;/LI&gt;
&lt;LI&gt;If you want, you can run C4DL project and Gen2 project parallelly for few days.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After migration you can check\run&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ODS and HDS live views before running CDC&lt;/LI&gt;
&lt;LI&gt;CDC with updates\inserts\deletes&lt;/LI&gt;
&lt;LI&gt;CDC with reload event&lt;/LI&gt;
&lt;LI&gt;schema evolution -&amp;nbsp;you should run schema evolution and skip all detected changes - to set the context&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;also set&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;workflow&lt;/LI&gt;
&lt;LI&gt;scheduler&lt;/LI&gt;
&lt;LI&gt;notification&lt;/LI&gt;
&lt;LI&gt;work with multiple replicate servers&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You can watch demo video How to Migrate Spark projects from C4DL66 to Gen2.&lt;/P&gt;
&lt;P&gt;Migration Notes &amp;amp; Limitations&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;General&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;current assumption: DL66 and gen2 use the same cluster&lt;/LI&gt;
&lt;LI&gt;replicate to support speed partition mode&lt;/LI&gt;
&lt;LI&gt;after project migrated, run cli to create migration script&lt;/LI&gt;
&lt;LI&gt;for spark project, user should provide the path to the context,&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.g.,&amp;nbsp;&lt;STRONG&gt;'hdfs:///user/admin/spark_storage_66/states/storage'&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Limitations:&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;due to a bug in hive partitions can’t be created dynamically. we read status table in 66 then create script with hardcoded values of partitions&amp;nbsp;&lt;A href="https://issues.apache.org/jira/browse/HIVE-24163" target="_blank" rel="noopener"&gt;https://issues.apache.org/jira/browse/HIVE-24163&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;due to a bug in hive time zones are not always calculated correctly and there is no stable way to get UTC time. we get UTC time in compose server and then its hardcoded into the script&lt;/LI&gt;
&lt;LI&gt;because of the limitations mentioned above, script should be created close to time of execution. Do not execute old scripts.&lt;/LI&gt;
&lt;LI&gt;in case of ODS table in DL66 there is no easy way to determine the header__oper (I\U) for the migration, putting 'I'&lt;/LI&gt;
&lt;LI&gt;in case of multiple mappings for entity (not supported in gen2), the first active will be taken.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Migration flow&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Spark (only HDS)&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;requires external tables to be created&lt;/LI&gt;
&lt;LI&gt;run CDC in 66&lt;/LI&gt;
&lt;LI&gt;run compactor&lt;/LI&gt;
&lt;LI&gt;create adjusted package&lt;/LI&gt;
&lt;LI&gt;deploy the adjusted package to Qlik compose&lt;/LI&gt;
&lt;LI&gt;create external tables in Qlik compose&lt;/LI&gt;
&lt;LI&gt;create migration script&lt;/LI&gt;
&lt;LI&gt;run migration script in external tool&lt;/LI&gt;
&lt;LI&gt;verify the data&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Hive:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;validate storage and run CDC tasks in 66&lt;/LI&gt;
&lt;LI&gt;create adjusted package&lt;/LI&gt;
&lt;LI&gt;deploy the adjusted package to Qlik compose&lt;/LI&gt;
&lt;LI&gt;create tables in Qlik compose&lt;/LI&gt;
&lt;LI&gt;create migration script&lt;/LI&gt;
&lt;LI&gt;run migration script in external tool&lt;/LI&gt;
&lt;LI&gt;verify the data&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Databricks:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Set data bricks project with delete records settings. 3 landings. do some insert, update and delete. run full load and cdc&lt;/LI&gt;
&lt;LI&gt;create a deployment&lt;/LI&gt;
&lt;LI&gt;run 'adjust deployment' cli command&lt;/LI&gt;
&lt;LI&gt;create the storage&lt;/LI&gt;
&lt;LI&gt;run 'create data migration script' cli command and run it on db&lt;/LI&gt;
&lt;LI&gt;verify the data is correct&lt;/LI&gt;
&lt;LI&gt;view live views with changes. run cdc. run cdc with reload event.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before the migration, prepare an environment with the following settings&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;non default settings for&amp;nbsp;dwh_prefix,&lt;STRONG&gt;,&amp;nbsp;&lt;/STRONG&gt;prefix for compose column, from_date\to_date&lt;/LI&gt;
&lt;LI&gt;model with ods and hds entities&lt;/LI&gt;
&lt;LI&gt;rename entity\attribute&lt;/LI&gt;
&lt;LI&gt;mappings with expression and lookup&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;no mappings&lt;/STRONG&gt; - an error when trying to generate the data migration script(No active mapping was found for entity: `region2`), user should remove the entity first and run cli again&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;multiple mappings&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;-&amp;nbsp;more than one mapping per an entity&amp;nbsp;&lt;STRONG&gt;even if the other is not active&lt;/STRONG&gt;&amp;nbsp;- not supported. an error when running the adjust deployment cli (Entity: `products2` has multiple mappings: `Map_products_landing, Map_products2_1` &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;soft\hard delete\do nothing&lt;/LI&gt;
&lt;LI&gt;exclude TD&lt;/LI&gt;
&lt;LI&gt;The storage contains I. U, D records&amp;nbsp;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;hds entity: inserts, updates and deleted records will be displayed with I, U and D accordingly&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;ods entity:&amp;nbsp;&lt;STRONG&gt;inserts and updates will be displayed with I&lt;/STRONG&gt;&lt;STRONG&gt;, deleted&lt;/STRONG&gt; with D&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI&gt;Ran schema evolution including last CDC task run in C4DL 6.6 if it is enabled.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After migration check\run&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ods and hds live views before running cdc (with some updates \inserts\deletes)&lt;/LI&gt;
&lt;LI&gt;cdc with updates\inserts\deletes&lt;/LI&gt;
&lt;LI&gt;cdc with reload event&lt;/LI&gt;
&lt;LI&gt;schema evolution -&amp;nbsp;&lt;STRONG&gt;user should run schema evolution and skip all detected changes - to set the context&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;and also set&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;workflow&lt;/LI&gt;
&lt;LI&gt;scheduler&lt;/LI&gt;
&lt;LI&gt;notification&lt;/LI&gt;
&lt;LI&gt;work with multiple replicate servers&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4 id="toc-hId--486185974"&gt;Environment&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;From Compose for Data Lakes 6.6&lt;/LI&gt;
&lt;LI&gt;To Qlik Compose 2021.8&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.&lt;/P&gt;
&lt;H3 id="toc-hId--496689078"&gt;Related Content&amp;nbsp;&lt;/H3&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Migration-paths-for-Qlik-Compose/ta-p/1894388" target="_self"&gt;Migration paths for Qlik Compose&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 10 May 2022 12:10:39 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Migrate-Spark-projects-from-Compose-for-Data-Lakes-6-6-to-Qlik/ta-p/1906493</guid>
      <dc:creator>Troy_Raney</dc:creator>
      <dc:date>2022-05-10T12:10:39Z</dc:date>
    </item>
  </channel>
</rss>

