22
Sun, Dec
3 New Articles

TechTip: SQLing to the Cloud in Seven Steps

SQL
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

There are many different methods of identifying changes to a database using SQL. Here's one.

 

With the advent of "cloud" computing or Software as a Service (SaaS), many companies will find new and exciting requirements to push data out into the world. With this challenge comes the need to make sure that the data residing on the cloud application is synchronized with the data residing on the source home application. Since the cloud application is not directly connected to the source system, there's no ability to directly reconcile the data.

 

Standard applications would use CHAINs, Lookups, or FINDs to determine if the record is an Add, an Update, or a Delete. Cloud applications, on the other hand, have no direct connection to the source database and must create a mirror file to act as a virtual image of the data residing on the cloud. This mirror file is then compared to the current data to determine what will be an Add, an Update, or a Delete. This delta result is then consolidated and sent to the cloud application for processing.

 

The SQL Delta Process will run in two different states with the exact same SQL: the Initial Load state and the Delta Load state. The Initial Load State is the first run of the SQL Delta Process, where the SQL scripts will be establishing the mirror file image and creating the initial load of the customer data. The result of the initial load will be all records delivered to the cloud as "Add" records. The Delta Load State is the second through n runs of the SQL Delta Process, where there's an active comparison between the current image and the mirror image to define the Adds, Deletes, and Updates.

 

In the examples below, I will show the seven steps for the Initial Load State and then the same seven steps for the Delta Load State.

 

Initial Load State

 

Step 1: Take a Snapshot of the Current Image (Initial Load State)

In this step, the SQL script is selecting all the necessary Customer Master data that needs to be sent to the cloud application. The results of this SQL will be a "Current Image" file called CUST_CI. This is obviously a simple example; the real-world applications would be more complex and would consist of many more SQL steps.

 

The Initial Load State and the Delta Load State will yield the exact same results.

 

100915GoetjenFig1

Figure 1: The Initial Load State gathers the required data.

 

***Editor's note: To see enlarged figures, download all figure files here.***

 

Step 2: Create the Mirror Image File (Initial Load State)

This step will create the mirror file and an exact duplicate of the current image file. The "WHERE" clause contains a deliberate FALSE statement of 1=2 so as to yield no records in the result. This step is intended only to create the mirror image file CUST_MI structure for the proceeding steps.

 

100915GoetjenFig2

Figure 2: Create the mirror image file.

 

Step 3: Find the Records That Have Been Added (Initial Load State)

This step will find the records that have been added by comparing the current image file (CUST_CI) to the mirror image file (CUST_MI). If the record is in the current image file and not in the mirror image file, then the record was added today and should be sent as an Add. This is accomplished in SQL by creating a left join by joining the key from the current image file to the mirror image file and selecting the records WHERE the mirror image key is null.

 

100915GoetjenFig3

Figure 3: Find added records.

 

Step 4: Find the Records That Have Been Deleted (Initial Load State)

This step will find the records that have been deleted by comparing the current image file (CUST_CI) to the mirror image file (CUST_MI). If the record is in the mirror image file but not in the current image file, then the record was Deleted today and should be sent as a Delete. This is accomplished in SQL by creating a Left join by joining the key from the mirror image file to the current image file and selecting the records WHERE the current image key is null.

 

100915GoetjenFig4

Figure 4: Find deleted records.

 

Step 5: Find the Records That Have Been Updated (Initial Load State)

This step will find the records that have been updated by comparing the current image file (CUST_CI) to the mirror image file (CUST_MI). If the field in the current image file is different from the same fields in the mirror image file, then the record was updated and should be sent as an Update. This is accomplished in SQL by creating an inner join by joining the key from the current image file to the mirror image file and selecting the records WHERE the current image field(s) and the mirror image field(s) are not equal.

 

100915GoetjenFig5

Figure 5: Find updated records.

 

Step 6: Send the Delta Records to the Cloud (Initial Load State)

This step will consolidate the Delta data together, flag the record action (Cust_Action), and send the results to the cloud application. This is accomplished in SQL by "UNION"ing the file containing Adds (CUST_ADD), the file containing Deletes (CUST_DEL), and the file containing Updates (CUST_UPD) into one file called CUST_DELTA. A new field is included called the Cust_Action to tell the cloud application how to process the record.

 

100915GoetjenFig6

Figure 6: Send records to the cloud.

 

Step 7: Refresh Mirror File with Current Image (Initial Load State)

This step will take all the data from the current image file and copy it to the mirror image file as a full replace.

 

100915GoetjenFig7

Figure 7: Refresh the mirror file.

 

Delta Load State

 

Step 1: Take snapshot of the current image (Delta Load State)

In this step, the SQL script is selecting a new "Current Image" and placing the result in the CUST_CI file. During the day, there were modifications to the CUST_CI file (see "Today's Changes") that need to be reported to the cloud application.

 

100915GoetjenFig8

Figure 8: Take a snapshot of the current image.

 

Step 2: Create the Mirror Image File (Delta Load State)

Since the mirror file was created during the Initial State, this step in the Delta Load State is not needed. It can execute without generating any result, or it can be skipped altogether.

 

100915GoetjenFig9

Figure 9: Create the mirror image file.

 

Step 3: Find the records that have been added (Delta Load State)

This step will find the records that have been added by comparing the current image file (CUST_CI) to the mirror image file (CUST_MI). "Today’s Changes" will be identified as one new record that exists in the current image file but not in the mirror image file.

 

100915GoetjenFig10

Figure 10: Find added records.

 

Step 4: Find the records that have been deleted (Delta Load State)

This step will find the records that have been deleted by comparing the Current Image file (CUST_CI) to the Mirror Image file (CUST_MI). "Today’s Changes" will be identified as one deleted record because it exists in the mirror image file, but it is not in the current image file.

 

100915GoetjenFig11

Figure 11: Find deleted records.

 

Step 5: Find the records that have been Updated (Delta Load State)

This step will find the records that have been updated by comparing the current image file (CUST_CI) to the mirror image file (CUST_MI). "Today’s Changes" will be identified as records that have different (non-key) values when comparing the current image file to the mirror image file.

 

100915GoetjenFig12

Figure 12: Find updated records.

 

Step 6: Send the Delta records to the Cloud (Delta Load State).

This step will consolidate "Today’s Changes" together, flag the record action (Cust_Action), and send the results to the cloud application.

 

100915GoetjenFig13

Figure 13: Send records to the cloud.

 

Step 7: Refresh Mirror File with Current Image (Delta Load State).

This step is exactly the same as it is in the Initial State, where all the data from the current image file is copied to the mirror image file as a full replace.

 

100915GoetjenFig14

Figure 14: Refresh mirror file.

 

Conclusion

There are many different methods of identifying changes to a database using SQL, and I have presented one of them. It creates a mirror copy of the cloud data that can be used to identify adds, updates, and deletes. Since the mirror file is stored locally, it is a great resource for analysis and reconciliation. Hopefully, this information helps you in your journey to the cloud.

  

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: