Human vs. ChatGPT – Who writes a better blog post?

Being a leader at an AI-powered, decision intelligence company, I have been fielding a lot of questions from current customers about Large Language Models like ChatGPT. The question asked the most is,”Will ChatGPT impact my career?” Let’s put that to the test. In this blog, I want to find out from you, the reader, if a blog article I wrote four years ago is better than a ChatGPT article written today.

My article from March 20, 2019 is titled Updating Type II Slowly Changing Dimensions (SCD).

For the post below I used the following information to create the post “Explain how to update type II slowly changing dimensions providing examples, SQL code, and graphics”

Explain how to update type II slowly changing dimensions providing examples, SQL code, and graphics
Slowly Changing Dimensions (SCDs) are commonly used in data warehousing to track and manage historical changes in dimension attributes over time. Type II SCDs keep a history of changes by creating new records for each change while maintaining a reference to the original record. I'll explain how to update Type II SCDs slowly, along with examples, SQL code, and graphics, similar to what we frequently do for our professional services customers.

Let's assume we have a dimension table called "Product" with the following structure:
Product dimension table code
To update the Type II SCD slowly, follow these steps:

Step 1: Insert new records for changes: When a change occurs in a dimension attribute, instead of updating the existing record, create a new record with the updated attribute values. Assign a new StartDate to the updated record and set the EndDate of the previous record to one day before the StartDate of the updated record.

For example, let's say we have an existing record for ProductID 1 with StartDate='2022-01-01' and EndDate='9999-12-31', and we want to update its Category from 'Electronics' to 'Appliances'. The SQL code for the insert would be:
SQL code example for an insert
This way, we maintain the historical data by creating a new record for the updated Category.

Step 2: Retrieve current data using the effective date: To retrieve the current data, you need to identify the records with an EndDate of '9999-12-31' or a future date. You can use the following SQL code to get the current data for a specific date:
SQL code to get the current data for a specific date
This query will return the current data for the given date by selecting records that have a StartDate earlier or equal to the desired date and an EndDate greater than the desired date or '9999-12-31'.

Step 3: Visualize the changes: You can use a visualization tool or a graph to represent the changes in the Type II SCD over time. Here's a simple example showing the changes for the "Product" dimension:
table of updates made to the "Category" attribute for ProductID 1 over time
This table visually represents the updates made to the "Category" attribute for ProductID 1 over time.

By following these steps and using the provided examples, SQL code, and graphics, you can effectively update Type II Slowly Changing Dimensions while preserving historical data.

As you can see, this post does not provide the user with the actual process of how to update a type II SCD but rather an explanation of what an SCD is and not how to update the dimensional record. In my opinion, this fails the most basic Kimble modeling principle of using a surrogate key as a primary key for the dimension. This post also neglects the nuances of using a “soft” delete followed by the inserting of new records when the tables can be very large.

On the other hand, large language models, like ChatGPT, can make researching incredibly fast and extremely efficient. With that short natural language search phrase, I was able to generate a short description of type II dimensions in seconds. I see this as a great way to collect and synthesize information for personal consumption.

Because of errors caused by “alternate facts” or the need to complete compelling human-like thought processes, large language modeling tools should be used with caution. So, for now, most writers are safe as we humans need more than just facts. We need background, potential use cases, and even some color commentary to help us fully answer the questions we have and understand the world in which we live.

What do you think? We want to hear from you. Head over to our LinkedIn or Twitter pages to keep in touch.