<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anuoluwapo Balogun</title>
    <description>The latest articles on DEV Community by Anuoluwapo Balogun (@anudatastory).</description>
    <link>https://dev.to/anudatastory</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F709384%2F17faa4bf-f7f7-4225-a92c-831624591c13.jpg</url>
      <title>DEV Community: Anuoluwapo Balogun</title>
      <link>https://dev.to/anudatastory</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anudatastory"/>
    <language>en</language>
    <item>
      <title>Customer Insights with Quantium: Task One Reflection</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Wed, 16 Jul 2025 15:46:17 +0000</pubDate>
      <link>https://dev.to/anudatastory/customer-insights-with-quantium-task-one-reflection-3o1i</link>
      <guid>https://dev.to/anudatastory/customer-insights-with-quantium-task-one-reflection-3o1i</guid>
      <description>&lt;p&gt;I tried The Forage Job simulation, and I started with Quantium Task 1 Here is a review of the Task 1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Task One: Data preparation and customer analytics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Conducting analysis on client's transaction dataset and identifying customer purchasing behaviors to generate insights and provide commercial recommendations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I learnt&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding how to examine and clean transaction and customer data.&lt;/li&gt;
&lt;li&gt;Learning to identify customer segments based on purchasing behavior.&lt;/li&gt;
&lt;li&gt;Gaining experience in creating charts and graphs to present data insights.&lt;/li&gt;
&lt;li&gt;Learning how to derive commercial recommendations from data analysis. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Task Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Program:&lt;/strong&gt; Quantium Virtual Experience&lt;br&gt;
&lt;strong&gt;Platform:&lt;/strong&gt; &lt;a href="https://www.theforage.com/" rel="noopener noreferrer"&gt;The Forage&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Task:&lt;/strong&gt; Data Preparation &amp;amp; Customer Analytics&lt;br&gt;
&lt;strong&gt;Tool Used:&lt;/strong&gt; Looker Studio&lt;br&gt;
&lt;strong&gt;Dashboard:&lt;/strong&gt; &lt;a href="https://lookerstudio.google.com/u/1/reporting/792339d9-1768-400d-a709-9e9fd2cd4998/page/ATFQF" rel="noopener noreferrer"&gt;View Interactive Dashboard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📌 Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As part of the Quantium Job Simulation, Task One centered on preparing and analyzing retail transaction data to uncover customer behavior patterns and inform commercial decision-making. The process involved end-to-end data handling — from cleaning raw datasets to creating customer segments and deriving actionable insights.&lt;/p&gt;

&lt;p&gt;The goal? Transform messy data into meaningful business intelligence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Key Learnings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Through this task, I strengthened my ability to:&lt;/p&gt;

&lt;p&gt;✅ Clean and structure transactional and customer-level data&lt;br&gt;
✅ Segment customers by demographic and behavioral attributes&lt;br&gt;
✅ Visualize business metrics through dynamic charts and graphs&lt;br&gt;
✅ Derive commercial recommendations from data trends&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🗃️ Data Dictionary (Selected Fields)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Column Name&lt;/li&gt;
&lt;li&gt;Description&lt;/li&gt;
&lt;li&gt;DATE&lt;/li&gt;
&lt;li&gt;Raw date of transaction&lt;/li&gt;
&lt;li&gt;CLEANED_DATE&lt;/li&gt;
&lt;li&gt;Cleaned and standardized transaction date&lt;/li&gt;
&lt;li&gt;STORE_NBR&lt;/li&gt;
&lt;li&gt;Unique store identifier&lt;/li&gt;
&lt;li&gt;LYLTY_CARD_NBR&lt;/li&gt;
&lt;li&gt;Loyalty card number per customer&lt;/li&gt;
&lt;li&gt;TXN_ID&lt;/li&gt;
&lt;li&gt;Transaction ID&lt;/li&gt;
&lt;li&gt;PROD_NAME&lt;/li&gt;
&lt;li&gt;Name of the purchased product&lt;/li&gt;
&lt;li&gt;PROD_QTY&lt;/li&gt;
&lt;li&gt;Quantity of product purchased&lt;/li&gt;
&lt;li&gt;TOT_SALES&lt;/li&gt;
&lt;li&gt;Total transaction value&lt;/li&gt;
&lt;li&gt;LIFESTAGE&lt;/li&gt;
&lt;li&gt;Customer demography (e.g., Young Families, Retirees)&lt;/li&gt;
&lt;li&gt;PREMIUM_CUSTOMER&lt;/li&gt;
&lt;li&gt;Customer value tier: Premium, Mainstream, or Budget
🛠️ Task Breakdown&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;1️⃣ Data Preparation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checked for missing values, inconsistencies, and duplicates&lt;/li&gt;
&lt;li&gt;Standardized date formats and linked customer demographic data&lt;/li&gt;
&lt;li&gt;Ensured dataset integrity for seamless analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2️⃣ Customer Analytics &amp;amp; Segmentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Used key metrics to uncover purchasing patterns and business drivers:&lt;/p&gt;

&lt;p&gt;Metric&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business Insight&lt;/li&gt;
&lt;li&gt;Total Sales&lt;/li&gt;
&lt;li&gt;Overall store performance&lt;/li&gt;
&lt;li&gt;Sales Drivers&lt;/li&gt;
&lt;li&gt;Top contributing customer &amp;amp; product segments&lt;/li&gt;
&lt;li&gt;Store Performance&lt;/li&gt;
&lt;li&gt;Regions generating the most revenue&lt;/li&gt;
&lt;li&gt;Demographic Analysis&lt;/li&gt;
&lt;li&gt;Lifestage and segment-based behavior trends&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;💡 Key Insights&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer Segments:&lt;/strong&gt;&lt;br&gt;
Mainstream shoppers led with $749.7K in total sales, followed by Budget ($675.2K) and Premium ($505.5K) segments indicating high engagement from value-focused customers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lifestage Trends:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Older Singles/Couples ($401.8K) and Retirees ($366K) topped the spending charts, reflecting strong engagement from mature consumers.&lt;/li&gt;
&lt;li&gt;Sales Over Time:&lt;/li&gt;
&lt;li&gt;December 2018 recorded the highest sales, likely due to festive season demand. February 2019 saw the lowest — a typical post-holiday dip.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Top Products by Sales:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dorito Corn Chips Supreme 380g&lt;/li&gt;
&lt;li&gt;Smith’s Crinkle Chips Original Big Bag 380g&lt;/li&gt;
&lt;li&gt;Smith’s Crinkle Chips Salt &amp;amp; Vinegar 330g&lt;/li&gt;
&lt;li&gt;Kettle Mozzarella Basil &amp;amp; Pesto 175g&lt;/li&gt;
&lt;li&gt;Smith’s Crinkle Original 330g&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📊 Dashboard Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Explore the interactive Looker Studio dashboard, which highlights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sales by customer segment&lt;/li&gt;
&lt;li&gt;Revenue by customer lifestage&lt;/li&gt;
&lt;li&gt;Product-level performance&lt;/li&gt;
&lt;li&gt;Top-performing stores&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It serves as a live tool for analyzing business performance and identifying key opportunities at a glance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This task offered a hands-on deep dive into customer analytics — from wrangling raw datasets to delivering actionable insights. It sharpened my ability to connect numbers with narratives and underscored how data can directly inform commercial strategy.&lt;/p&gt;

&lt;p&gt;A standout experience in bridging data with decision-making.&lt;/p&gt;

</description>
      <category>database</category>
      <category>datascience</category>
      <category>looker</category>
      <category>data</category>
    </item>
    <item>
      <title>Instagram ads performance</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Thu, 19 Jun 2025 20:06:31 +0000</pubDate>
      <link>https://dev.to/anudatastory/instagram-ads-performance-2h6b</link>
      <guid>https://dev.to/anudatastory/instagram-ads-performance-2h6b</guid>
      <description>&lt;p&gt;Cleaning data with SQL is something I am new to, so I decided to try developing my SQL skills.&lt;/p&gt;

&lt;p&gt;I tried using the data I generated from ChatGPT. It is a simple data with 10,000 rows for a simple data cleaning exercise, but I choose to write about it and post my journey into reviving my career back. Every milestone is important for me; it is my personal come back to be better and keep learning.&lt;/p&gt;

&lt;p&gt;Code I used for my data cleaning exercise&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Previewing dataset
SELECT * FROM instagram_ads;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyo19g1zmh331bjruy7z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyo19g1zmh331bjruy7z.png" alt=" " width="682" height="245"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- 1. Viewing column data types
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'instagram_ads';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fexhiydwjx8v0v6jxj3lb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fexhiydwjx8v0v6jxj3lb.png" alt=" " width="349" height="240"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- 2. View number of rows and columns (shape)
SELECT COUNT(*) AS row_count FROM instagram_ads;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1eis8mkcjcigul8fziba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1eis8mkcjcigul8fziba.png" alt=" " width="358" height="262"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Columns count:
SELECT COUNT(*) AS column_count
FROM information_schema.columns
WHERE table_name = 'instagram_ads';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzs9wgm1nw8vry31v1kj1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzs9wgm1nw8vry31v1kj1.png" alt=" " width="406" height="241"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;--- 3. View missing values per column
SELECT 
    COUNT(*) - COUNT('instagram_ads.date') AS missing_values_date,
    COUNT(*) - COUNT('instagram_ads.impression') AS missing_values_impression,
    COUNT(*) - COUNT(clicks) AS missing_values_clicks,
    COUNT(*) - COUNT(spend_usd) AS missing_values_spend,
    COUNT(*) - COUNT(campaign_name) AS missing_values_campaign
FROM instagram_ads;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F45y6qqzo5ql9mzswtops.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F45y6qqzo5ql9mzswtops.png" alt=" " width="800" height="212"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- 4. Converting to lowercase and remove leading/trailing spaces
UPDATE instagram_ads
SET campaign_name = LOWER(TRIM(campaign_name));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyymalekxt5g68x8wsjou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyymalekxt5g68x8wsjou.png" alt=" " width="335" height="255"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- 5. Creating a new table
ALTER TABLE instagram_ads
ADD COLUMN spend_usd_filled MONEY;

-- 6. Updating the values with the filled mean values of null values in spend_usd
UPDATE instagram_ads
SET spend_usd_filled = COALESCE(spend_usd, (
    SELECT AVG(spend_usd::numeric)::money
    FROM instagram_ads
    WHERE spend_usd IS NOT NULL
));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5pqqhq6a1pujqf90ybz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5pqqhq6a1pujqf90ybz.png" alt=" " width="800" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>sql</category>
      <category>postgressql</category>
      <category>database</category>
    </item>
    <item>
      <title>Social Media Sentiment (Data cleaning)</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Wed, 18 Jun 2025 21:14:49 +0000</pubDate>
      <link>https://dev.to/anudatastory/social-media-sentiment-data-cleaning-3624</link>
      <guid>https://dev.to/anudatastory/social-media-sentiment-data-cleaning-3624</guid>
      <description>&lt;p&gt;Hi everyone, I resumed publishing on my blogs my career growth. &lt;/p&gt;

&lt;p&gt;I literally took a year break, but I am fully ready to focus on my career.&lt;/p&gt;

&lt;p&gt;I decided to start learning my Data Analysis skills. &lt;/p&gt;

&lt;p&gt;I chose to start with data cleaning exercises using Python and SQL.&lt;/p&gt;

&lt;p&gt;I found it had to get a case study online, so I used a ChatGPT prompt to help me generate a data cleaning exercise and case study.&lt;/p&gt;

&lt;p&gt;Here is the prompt I used&lt;/p&gt;

&lt;p&gt;&lt;code&gt;I need case study with datasets for data cleaning like 10 make it social media, sales, marketing and business inclined&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here is one of the case study outputs generated&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Social Media Sentiment Posts

Dataset: 50 000 tweets about your brand

Columns: tweet_id, user_handle, timestamp, text, likes, retweets, sentiment_score

Cleaning objectives:

Parse timestamp into datetime; handle inconsistent time zones

Remove bot or spam accounts (e.g. duplicate user_handle with &amp;gt;100 tweets/day)

Strip URLs/mentions from text; normalize emojis

Impute missing sentiment_score with mean
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I also asked ChatGPT to provide me with the appropriate data for the data cleaning exercise&lt;/p&gt;

&lt;p&gt;Download the data &lt;a href="https://drive.google.com/file/d/18zzFTvu1qRlnSgotMScHC4bX3BVXUNqe/view?usp=sharing" rel="noopener noreferrer"&gt;Here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I cleaned the data in Google Collaboratory using libraries Pandas, regrex, emoji&lt;/p&gt;

&lt;p&gt;You can check out the code &lt;a href="https://colab.research.google.com/drive/10fBV05vNh_SyTGu8LqkgaT48yXnFlUlP?usp=sharing" rel="noopener noreferrer"&gt;Here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My next data cleaning exercise is Instagram ads performance with SQL&lt;/p&gt;

</description>
      <category>programming</category>
      <category>data</category>
      <category>datacleaning</category>
      <category>database</category>
    </item>
    <item>
      <title>Becoming an Analytics Engineer I</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Fri, 31 May 2024 17:41:21 +0000</pubDate>
      <link>https://dev.to/anudatastory/becoming-an-analytics-engineer-i-d7a</link>
      <guid>https://dev.to/anudatastory/becoming-an-analytics-engineer-i-d7a</guid>
      <description>&lt;p&gt;Are you aspiring to become an Analytics Engineer and you do not know how to get started? You can start with Udemy Analytics Engineering Bootcamp like I did too. &lt;a href="//Are%20you%20aspiring%20to%20become%20an%20Analytics%20Engineer%20and%20you%20do%20not%20know%20how%20to%20get%20started?%20You%20can%20start%20with%20Udemy%20Analytics%20Engineering%20Bootcamp%20like%20I%20did%20too.%20Click%20to%20view%20course%C2%A0."&gt;Click to view course&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is a brief documentation of what I learnt. (You need to take the course to have a complete understanding of what data modelling, methodology and technologies is all about)&lt;/p&gt;

&lt;p&gt;The methodology used is Kimball's Warehouse Methodology and what is this all about?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdjux4ssco7a1vhqzxod1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdjux4ssco7a1vhqzxod1.png" alt=" " width="595" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kimball's Warehouse Methodology&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Created by Ralph Kimball&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Defines data warehouse as a copy of transaction data specifically structured for query and analysis.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Starts with identifying key business process and requirements (Bottom up)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Focus of this approach is to enable business intelligence fast.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data marts are created first instead of enterprise data warehouse.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dimensional model - &lt;strong&gt;STAR SCHEMA design&lt;/strong&gt; (deformalized)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The model design is built first on fact and dimension tables.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Process of Kimball Methodology Start Schema&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Facts&lt;/li&gt;
&lt;li&gt;Dimensions&lt;/li&gt;
&lt;li&gt;Follows dimensional modeling technique.&lt;/li&gt;
&lt;li&gt;Enterprise &lt;strong&gt;bus matrix&lt;/strong&gt; is used to document &amp;amp; show how schema is designed.&lt;/li&gt;
&lt;li&gt;Data marts are built with star schema being core element of dimensional model.&lt;/li&gt;
&lt;li&gt;Multiple start schema can exist in same model.&lt;/li&gt;
&lt;li&gt;Conformed data dimensions (shared attributes) are used to create dimensional data warehouse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The dataset used is the Northwind Dataset from MySQL and here is the ERD Diagram of the dataset.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffzv9j4wusm4l5jz3cs7h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffzv9j4wusm4l5jz3cs7h.png" alt=" " width="720" height="805"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data modelling with BigQuery, dbt and GitHub for version control&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First, we need to understand the business requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is it that we are trying to do?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Northwind traders are export import company who trades around the world for specialty foods.&lt;br&gt;
Their existing architecture is mostly a mix of on-premises &amp;amp; legacy systems, including their MySQL database which is primary operational database.&lt;/p&gt;

&lt;p&gt;They are struggling to keep up with reporting requirements and causing database to slow down impacting their day-to-day business.&lt;/p&gt;

&lt;p&gt;Northwind traders wants to modernize their data &amp;amp; reporting solutions &amp;amp; move away from on-prem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why are we doing it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Northwind traders wants to modernize their existing infrastructure for.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better Scalability&lt;/li&gt;
&lt;li&gt;Reduced load on operational system&lt;/li&gt;
&lt;li&gt;Improved reporting speed&lt;/li&gt;
&lt;li&gt;Improved data security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How are we going to achieve it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Northwind traders will migrate their existing database system to google cloud platform (GCP). BigQuery was selected to run OLAP.&lt;br&gt;
Dimensional Data warehouse will be built on BigQuery to support with reporting requirements.&lt;/p&gt;

&lt;p&gt;Next, we define the Business Process&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requirements&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sales Overview&lt;/p&gt;

&lt;p&gt;Overall sales reports to understand better our customers what is being sold, what sells the most, where and what sales are the least, the goal is to have a general overview of how the business is going.&lt;br&gt;
Sales Agent Tracking&lt;/p&gt;

&lt;p&gt;Track sales &amp;amp; performance of each seller agent to adjust commissions, reward high achievers and empower low achievers.&lt;br&gt;
Product Inventory&lt;/p&gt;

&lt;p&gt;Understand the current inventory levels, how to improve stock management, what supplies to we have how much is being purchased. This will allow to understand stock management and potentially broker better deals with suppliers.&lt;br&gt;
Customer Reporting&lt;/p&gt;

&lt;p&gt;Allow customers to understand their purchase orders, how much and when they are buying, empowering them to make data-driven decisions and utilize the data to join to their sales data.&lt;br&gt;
To get started we need to set up google account — Click here to set up an account.&lt;/p&gt;

&lt;p&gt;Select an existing project if you have one or create a new project if you don’t.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7erogj61im5mc4mtxwi6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7erogj61im5mc4mtxwi6.png" alt=" " width="720" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your project dashboard should look similar to this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fuhycqlghhr6jv8ebbw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fuhycqlghhr6jv8ebbw.png" alt=" " width="720" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we set up a GitHub repository for our project.&lt;/p&gt;

&lt;p&gt;You can create a new GitHub account if you don’t have one or login into your existing account — Click here to visit GitHub page.&lt;/p&gt;

&lt;p&gt;This is what my GitHub profile looks like&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwk5slviyyd31j0reoojq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwk5slviyyd31j0reoojq.png" alt=" " width="720" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create a new repository and give it any name of your choice mine would be — analytics-engineering-bootcamp.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7k7r2t3xtqn9izbpoj99.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7k7r2t3xtqn9izbpoj99.png" alt=" " width="720" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;keep the project as private for now later on you can make it public, leave every other setting and just click create repository by scrolling down the page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7cc4aur7zga303lwvizk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7cc4aur7zga303lwvizk.png" alt=" " width="720" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click here to learn how to install Linux on windows — &lt;a href="https://learn.microsoft.com/en-us/windows/wsl/install" rel="noopener noreferrer"&gt;Click here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are a MacBook user, &lt;a href="https://itigic.com/how-to-install-linux-on-mac/#:~:text=Linux%20installation%201%201.%20Begin%20by%20starting%20up,the%20installation%20is%20complete%2C%20restart%20your%20Mac.%20" rel="noopener noreferrer"&gt;click here&lt;/a&gt; to install Linux.&lt;/p&gt;

&lt;p&gt;Alternatively, you can take the bootcamp course to learn how to install Linux on your preferred OS. - &lt;a href="https://www.udemy.com/share/105KXo3@vQ2QOvfc1XEK3EC-5VzXTLFsI8u9OVZA35fM423QEEgizNcp7hiL9L9yQWpCSf3tLg==/" rel="noopener noreferrer"&gt;Click here&lt;/a&gt; to take the bootcamp course.&lt;/p&gt;

&lt;p&gt;My preferred Terminal as a windows user is windows terminal on Microsoft store.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd9eh4u4uc3z20kbocjel.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd9eh4u4uc3z20kbocjel.png" alt=" " width="720" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My Linux terminal is opened.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqsq8qpmfd4t4hg7klp1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqsq8qpmfd4t4hg7klp1.png" alt=" " width="720" height="405"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Create a new folder on your local machine with Command Line optional
# You can use linux to create the folder too
# I am using anlytics-engineering-bootcamp as my folder name
mkdir C:\path\to\your\designated\file\location\anlytics-engineering-bootcamp

# Open the Folder with Ubuntu
cd /mnt/c/path/to/your/folder/analytics-engineering-bootcamp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy everything from the (…or create a new repository on the command line) and paste into your terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fedwv5ah9uoe36a22osz8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fedwv5ah9uoe36a22osz8.png" alt=" " width="720" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflvacobx2ra9yr9s5o58.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflvacobx2ra9yr9s5o58.png" alt=" " width="720" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To input the GitHub password, you will need a token.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8luv9wctfwitt1d83y6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8luv9wctfwitt1d83y6.png" alt=" " width="720" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is how to get your GitHub Token&lt;/p&gt;

&lt;p&gt;Click on the far-right icon of your GitHub profile and click settings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feqoe5hqxd7gk6ifaaijs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feqoe5hqxd7gk6ifaaijs.png" alt=" " width="720" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9k86w3b6750nzzkuuqjd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9k86w3b6750nzzkuuqjd.png" alt=" " width="720" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scroll down to developer’s settings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xbmkj25ufna5t83jofi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xbmkj25ufna5t83jofi.png" alt=" " width="720" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on any of the token's access but I am using Token classic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv74pirlmhi852puhh882.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv74pirlmhi852puhh882.png" alt=" " width="720" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcn47w5i2k7xbkxkiimvk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcn47w5i2k7xbkxkiimvk.png" alt=" " width="720" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scroll down and select the necessary settings you might need Choose the repo so you can read and write into your repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fexmcpiraewybazbogecj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fexmcpiraewybazbogecj.png" alt=" " width="720" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your Folder like mine analytics-engineering-bootcamp should look like this containing the ReadMe file in your local machine when opened.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp4m9dlquzp2j3zulcbpo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp4m9dlquzp2j3zulcbpo.png" alt=" " width="621" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My next blog post we will be working on&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uploading our dataset into BigQuery&lt;/li&gt;
&lt;li&gt;Bus Matrix for our business process and data dictionary&lt;/li&gt;
&lt;li&gt;Setting up dbt&lt;/li&gt;
&lt;li&gt;Building our dbt models&lt;/li&gt;
&lt;li&gt;Visualizing and creating our report with PowerBI&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>analyticsengineering</category>
      <category>udemy</category>
      <category>datamodelling</category>
      <category>dbt</category>
    </item>
    <item>
      <title>My Analytics Engineering Career Path</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Thu, 21 Mar 2024 21:47:36 +0000</pubDate>
      <link>https://dev.to/anudatastory/my-analytics-engineering-career-path-222f</link>
      <guid>https://dev.to/anudatastory/my-analytics-engineering-career-path-222f</guid>
      <description>&lt;p&gt;Hi there👋🏼, thank you for taking time out to read my blog post, actually I will be documenting my Analytics Engineering career journey for accountability purposes. I will be documenting every software installation and project.&lt;/p&gt;

&lt;p&gt;I am currently learning Analytics Engineering at Udemy Bootcamp &lt;a href="https://www.udemy.com/course/analytics-engineering-bootcamp" rel="noopener noreferrer"&gt;Click here to view course&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At the bootcamp I learnt how to set up and Install DBT core with Command Prompt and Ubuntu Terminal on my local machine and I will share the process with you.&lt;/p&gt;

&lt;p&gt;I am using Command Prompt to create a Python Virtual Environment, so I can have access to the DBT folder on my local machine. I am only going to run it with Ubuntu.&lt;/p&gt;

&lt;p&gt;What is DBT? DBT is a data transformation tool mostly used by Analytics Engineer to transform data in a database for analytical purposes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Creating new virtual environment with Command Line
python -m venv dbt-env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cl3qp7jbrxchyrbvkzd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cl3qp7jbrxchyrbvkzd.jpg" alt=" " width="720" height="404"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Open the virtual environment with Ubuntu
cd /mnt/c/Users/USER/dbt-env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fphdjftvvolegvbtmg191.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fphdjftvvolegvbtmg191.jpg" alt=" " width="720" height="403"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Activate the virtual environment
source Scripts/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzknk44zsgk5f0kzh8b0f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzknk44zsgk5f0kzh8b0f.jpg" alt=" " width="720" height="407"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Download dbt from git
git clone https://github.com/dbt-labs/dbt-core.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I decided to download DBT core using git. After installing from git, Open the dbt Core folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Opening the DBT-Core Folder after Downloading from git
cd dbt-core
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flk60l273uris5i5un4cx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flk60l273uris5i5un4cx.jpg" alt=" " width="720" height="407"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Install the Requirments txt file
python3 -m pip install -r requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also Install plugins for database, so I installed plugins for BigQuery and Postgres&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Install plugins for dbt (Bigquery)
git clone https://github.com/dbt-labs/dbt-bigquery.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installing open the plugin folder&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Open the BigQuery Folder 
cd dbt-bigquery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Install the BigQuery Requirement File
python3 -m pip install -e .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can repeat the same process for Postgres etc.&lt;/p&gt;

&lt;p&gt;You can verify if DBT was successfully installed by using&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dbt --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jjqk5e0o39i66rqe1i8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jjqk5e0o39i66rqe1i8.jpg" alt=" " width="720" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can create a dbt project with the following code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dbt init project_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thanks for following!!! Happy DBT learning&lt;/p&gt;

</description>
      <category>analyticsengineering</category>
      <category>analytics</category>
      <category>dbtcore</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>The day I met my new AI assistant</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Wed, 05 Jul 2023 14:58:50 +0000</pubDate>
      <link>https://dev.to/anudatastory/the-day-i-met-my-new-ai-assistant-1j3i</link>
      <guid>https://dev.to/anudatastory/the-day-i-met-my-new-ai-assistant-1j3i</guid>
      <description>&lt;p&gt;I was sitting at my desk, staring at a blank page. I had been trying to write a blog post for hours, but I was completely stuck. I couldn't think of a single idea.&lt;/p&gt;

&lt;p&gt;Just when I was about to give up, I remembered that I had recently signed up for the Notion AI beta. I decided to give it a try.&lt;/p&gt;

&lt;p&gt;I opened up Notion and typed in "write a blog post about AI." In a matter of seconds, Notion AI had generated a list of possible blog post titles, outlines, and even paragraphs of text.&lt;/p&gt;

&lt;p&gt;I was amazed. I had never seen anything like it. Notion AI was like having a personal AI assistant who could write my blog posts for me.&lt;/p&gt;

&lt;p&gt;I spent the next few hours working with Notion AI to refine my blog post. I added my own ideas and insights, and I made sure that the tone and style were consistent with my other blog posts.&lt;/p&gt;

&lt;p&gt;When I was finished, I was really happy with the results. My blog post was well-written, informative, and engaging. I couldn't believe that I had been able to write it so quickly and easily.&lt;/p&gt;

&lt;p&gt;I'm so glad that I signed up for the Notion AI beta. It's an amazing tool that can help anyone write better, faster, and more easily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here are some of the benefits of using Notion AI:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It can help you brainstorm ideas, write rough drafts, and summarize existing content.&lt;/li&gt;
&lt;li&gt;It can correct your spelling and grammar.&lt;/li&gt;
&lt;li&gt;It can translate your content into other languages.&lt;/li&gt;
&lt;li&gt;It can help you plan and manage projects.&lt;/li&gt;
&lt;li&gt;It can help you create knowledge bases and databases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Notion AI is perfect for:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Students&lt;/li&gt;
&lt;li&gt;Writers&lt;/li&gt;
&lt;li&gt;Business professionals&lt;/li&gt;
&lt;li&gt;Anyone who wants to be more productive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;If you're looking for a powerful AI tool that can help you with your work or studies, then you need to try Notion AI.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sign up for the beta today and see for yourself how Notion AI can help you work smarter, not harder.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://affiliate.notion.so/3q4vhf6k54yg-4y5a7" rel="noopener noreferrer"&gt;Start Here&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Extracting data from e-commerce websites</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Mon, 26 Jun 2023 15:37:59 +0000</pubDate>
      <link>https://dev.to/anudatastory/extracting-data-from-e-commerce-websites-3ahf</link>
      <guid>https://dev.to/anudatastory/extracting-data-from-e-commerce-websites-3ahf</guid>
      <description>&lt;p&gt;&lt;strong&gt;Basic Web Scraping&lt;/strong&gt; is one of the essentials for a &lt;strong&gt;Data Analyst&lt;/strong&gt;. The ability to get your own data for &lt;strong&gt;Project Purpose&lt;/strong&gt; is an undervalued task.&lt;/p&gt;

&lt;p&gt;I recently scraped some data from 4 big art shops (websites) in Nigeria and I would like to share the codes (ChatGPT included codes) for learning purposes(Other Data analyst who might find it useful).&lt;/p&gt;

&lt;p&gt;The first website is &lt;a href="https://craftsvillage.com.ng" rel="noopener noreferrer"&gt;Crafts Village&lt;/a&gt; I scarped the Art-tools category.&lt;/p&gt;

&lt;p&gt;code for scraping the website&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests
from bs4 import BeautifulSoup
import pandas as pd
import re

# Initialize lists to store the data
product_names = []
prices = []

# Scrape all 6 pages
for page in range(1, 7):
    url = f"https://craftsvillage.com.ng/product-category/art-tools/"
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")

    # Find the relevant HTML elements for product information
    products = soup.find_all("li", class_="product")

    # Extract data from each product element
    for product in products:
        # Product name
        name_element = product.find("a", class_="woocommerce-LoopProduct-link")
        name = name_element.text.replace("\n", "").strip()
        name = re.sub(r"[₦\,|–]", "", name)  # Remove unwanted characters
        product_names.append(name)


        # Price
        price_element = product.find("bdi")
        price = price_element.text if price_element else None
        prices.append(price)

# Create a Pandas DataFrame from the scraped data
data = {
    "Product Name": product_names,
    "Price": prices
}
df = pd.DataFrame(data)

# Remove "\n\n\n\n\n" from "Product Name" column
df["Product Name"] = df["Product Name"].str.replace("\n", "")

# Display the Data Frame
print(df)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;To get the name element class, I inspected the name class from my browser by putting the cursor on the product name right click my mouse pad and clicking on inspect.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ypn20ij1yavz85n69rq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ypn20ij1yavz85n69rq.png" alt=" " width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also did same for the price too&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funu2ru9jyw0cpze85p2f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funu2ru9jyw0cpze85p2f.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The code above extracted the product name and prices from all the 6 pages in the Art tool category.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here is how I scraped information from &lt;a href="https://craftieshobbycraft.com" rel="noopener noreferrer"&gt;Crafties Hobbies&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests
from bs4 import BeautifulSoup
import pandas as pd

base_url = 'https://craftieshobbycraft.com/product-category/painting-drawing/page/{}/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

# Create lists to store data
categories = []
product_names = []
product_prices = []

# Iterate over each page
for page in range(1, 8):
    url = base_url.format(page)
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.content, 'html.parser')

    category_elements = soup.find_all('p', class_='category uppercase is-smaller no-text-overflow product-cat op-7')
    product_names_elements = soup.find_all('a', class_='woocommerce-LoopProduct-link woocommerce-loop-product__link')
    product_prices_elements = soup.find_all('bdi')

    for category_element, product_name_element, product_price_element in zip(category_elements, product_names_elements, product_prices_elements):
        category = category_element.get_text(strip=True)
        product_name = product_name_element.get_text(strip=True)
        product_price = product_price_element.get_text(strip=True)

        categories.append(category)
        product_names.append(product_name)
        product_prices.append(product_price)

# Create a pandas DataFrame
data = {
    'Category': categories,
    'Product Name': product_names,
    'Product Price': product_prices
}
df = pd.DataFrame(data)

# Print the DataFrame
print(df)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is how I scraped data from &lt;a href="https://www.kaenves.store" rel="noopener noreferrer"&gt;Kaenves store&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests
from bs4 import BeautifulSoup
import pandas as pd

# Create empty lists to store the data
product_names = []
prices = []

# Iterate through each page
for page in range(1, 4):
    # Send a GET request to the page
    url = f"https://www.kaenves.store/collections/floating-wood-frame?page={page}"
    response = requests.get(url)

    # Create a BeautifulSoup object to parse the HTML content
    soup = BeautifulSoup(response.content, 'html.parser')

    # Find all span elements with the specified class
    price_elements = soup.find_all('span', class_='price-item price-item--regular')
    name_elements = soup.find_all('h3', class_='card__heading h5')

    # Extract the prices and product names
    for price_element, name_element in zip(price_elements, name_elements):
        price = price_element.get_text(strip=True)
        name = name_element.get_text(strip=True)
        product_names.append(name)
        prices.append(price)

# Create a pandas DataFrame
data = {'Product Name': product_names, 'Price': prices}
df = pd.DataFrame(data)

# Save the DataFrame as a CSV file
df.to_csv('paperandboard.csv', index=False)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is how I scraped data from &lt;a href="https://arteasy.com.ng" rel="noopener noreferrer"&gt;Art Easy&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests
from bs4 import BeautifulSoup
import pandas as pd

prices = []
product_names = []

# Iterate over all 2 pages
for page_num in range(1, 3):
    url = f"https://arteasy.com.ng/product-category/canvas-surfaces/page/{page_num}/"

    # Send a GET request to the URL
    response = requests.get(url)

    # Parse the HTML content
    soup = BeautifulSoup(response.text, "html.parser")

    # Find all the span elements with class "price"
    product_prices = [span.get_text(strip=True) for span in soup.find_all("span", class_="price")]

    # Find all the h3 elements with class "product-title"
    product_names += [product_name.get_text(strip=True) for product_name in soup.find_all("h3", class_="product-title")]

    # Add the prices to the list
    prices += product_prices

# Check if the lengths of product_names and prices are equal
if len(product_names) == len(prices):
    # Create a pandas DataFrame
    data = {"Product Name": product_names, "Price": prices}
    df = pd.DataFrame(data)

    # Print the DataFrame
    print(df)
else:
    print("Error: The lengths of product_names and prices are not equal.")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;If you want to reuse this code ensure to change the URL to your preferred e-commerce website and also change the class to your URL product name and product price class &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These informations scraped can be used for the following;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Price comparison:&lt;/strong&gt; You can use the scraped data to compare prices of products across different websites. This can help you find the best deal on the product you are looking for.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Product research:&lt;/strong&gt; You can use the scraped data to research products. This can help you learn more about a product's features, specifications, and reviews.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Market analysis:&lt;/strong&gt; You can use the scraped data to analyze the market for a particular product. This can help you identify trends and opportunities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Product recommendations:&lt;/strong&gt; You can use the scraped data to recommend products to users. This can help you increase sales and improve customer satisfaction.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>data</category>
      <category>dataanalysis</category>
      <category>webscraping</category>
      <category>python</category>
    </item>
    <item>
      <title>SQL Made Simple</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Thu, 02 Feb 2023 21:44:02 +0000</pubDate>
      <link>https://dev.to/anudatastory/sql-made-simple-h91</link>
      <guid>https://dev.to/anudatastory/sql-made-simple-h91</guid>
      <description>&lt;p&gt;I tried learning SQL from scratch and to be honest, I loved every inch of this small article on SQL. The author &lt;a href="https://linkedin.com/in/bemnetdev" rel="noopener noreferrer"&gt;Bemnet Girma&lt;/a&gt; made it really easy for me to understand SQL terminologies.&lt;/p&gt;

&lt;p&gt;This booklet also contains SQL Interview Questions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/AnuoluwapoDS/e/115887" rel="noopener noreferrer"&gt;Download the booklet here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Learning 😁&lt;/p&gt;

</description>
      <category>kafka</category>
      <category>testing</category>
      <category>opensource</category>
      <category>eventdriven</category>
    </item>
    <item>
      <title>Big Query</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Tue, 31 Jan 2023 23:18:08 +0000</pubDate>
      <link>https://dev.to/anudatastory/big-query-2695</link>
      <guid>https://dev.to/anudatastory/big-query-2695</guid>
      <description>&lt;p&gt;What is Big Query?&lt;/p&gt;

&lt;p&gt;Big query is a Google product mainly used for analyzing and querying big data in the google cloud platform.&lt;/p&gt;

&lt;p&gt;Getting started with big query&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a google account &lt;a href="https://account.google.com" rel="noopener noreferrer"&gt;Click here &lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Go to the  google cloud platform &lt;a href="https://cloud.google.com/" rel="noopener noreferrer"&gt;Click here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Enable Big Query Sandbox to use the free version &lt;a href="https://cloud.google.com/bigquery/docs/sandbox" rel="noopener noreferrer"&gt;Click here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click on the SQL Workspace &lt;a href="https://console.cloud.google.com/bigquery?project=big-query-376323&amp;amp;ws=!1m0" rel="noopener noreferrer"&gt;Click here&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hurray you are ready to use big query as a data analyst&lt;/p&gt;

&lt;p&gt;For further learning  apply on Coursera  &lt;a href="https://www.coursera.org/professional-certificates/google-data-analytics" rel="noopener noreferrer"&gt;Google Data Analytics Professional Certificate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my subsequent post, we would practice uploading the dataset into big query and using the existing public dataset available in the Google Cloud.&lt;/p&gt;

&lt;p&gt;Happy Learning!!!!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>mentalhealth</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Distributed SQL</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Sat, 19 Nov 2022 22:12:08 +0000</pubDate>
      <link>https://dev.to/anudatastory/distributed-sql-4nmg</link>
      <guid>https://dev.to/anudatastory/distributed-sql-4nmg</guid>
      <description>&lt;p&gt;What is Distributed SQL database?&lt;br&gt;
This is a relational database that &lt;strong&gt;maintains&lt;/strong&gt; data consistency across a &lt;strong&gt;large number&lt;/strong&gt; of machines and geographic locations.&lt;/p&gt;

&lt;p&gt;Distributed SQL solutions provide enterprise-grade management tools, security, and integration capabilities.&lt;/p&gt;

&lt;p&gt;Applications that use distributed SQL solutions often choose vendor-managed solutions, getting global relational databases as a service on the same level as storage or computer as a service.&lt;/p&gt;

&lt;p&gt;Some of the distributed SQL Solutions are;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://fauna.com/" rel="noopener noreferrer"&gt;FaunaDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.google.com/spanner" rel="noopener noreferrer"&gt;Google Cloud Spanner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cockroachlabs.com/" rel="noopener noreferrer"&gt;CockroachDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.yugabyte.com/" rel="noopener noreferrer"&gt;YugabyteDB&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some of the industries that uses distributed SQL for their data workflow are;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Telecom &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Retail&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gaming&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt; is a popular choice for orchestrating distributed SQL clusters. Businesses are choosing distributed SQL because it gives them &lt;strong&gt;value&lt;/strong&gt; that wasn't &lt;strong&gt;possible&lt;/strong&gt; before, and they can now extend that to other offerings.&lt;/p&gt;

&lt;p&gt;Distributed SQL already &lt;strong&gt;automates&lt;/strong&gt; a lot of &lt;strong&gt;key capabilities&lt;/strong&gt; required for server less. A server less &lt;strong&gt;architecture&lt;/strong&gt; means that the &lt;strong&gt;resources&lt;/strong&gt; are &lt;strong&gt;always available&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Most of the distributed SQL solutions are wire-compactible with PostgreSQL.&lt;/p&gt;

&lt;p&gt;In a distributed world, you can create something that delights hearts no matter where they beat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/AnuoluwapoDS/e/102293" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Job Search API</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Thu, 17 Nov 2022 01:49:37 +0000</pubDate>
      <link>https://dev.to/anudatastory/job-search-api-d7j</link>
      <guid>https://dev.to/anudatastory/job-search-api-d7j</guid>
      <description>&lt;h4&gt;
  
  
  The purpose of this project is to get data using api.
&lt;/h4&gt;

&lt;h4&gt;
  
  
  This is my first project using api to get data
&lt;/h4&gt;

&lt;h4&gt;
  
  
  I did this project with guidance from &lt;a href="https://learn.365datascience.com/courses/web-scraping-and-api-fundamentals-in-python" rel="noopener noreferrer"&gt;365 Data Science&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Link to the API Documentation I used &lt;a href="https://jsearch.p.rapidapi.com/search" rel="noopener noreferrer"&gt;Job Search API&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Importing Necessary Libraries
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests
import json

url = "https://jsearch.p.rapidapi.com/search"

querystring = {"query":"Data Analyst in Lagos, Nigeria","num_pages":"1"}

headers = {
    "X-RapidAPI-Key": "374e7caff4mshbdf0dc9feaf2c44p1807dfjsn55b29ff65a00",
    "X-RapidAPI-Host": "jsearch.p.rapidapi.com"
}

response = requests.request("GET", url, headers=headers, params=querystring)

respond = response.json()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# View the API result

print(json.dumps(respond, indent = 4))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# View the api keys

respond.keys()

Output
dict_keys(['status', 'request_id', 'data'])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# View the data key result

print(json.dumps(respond['data'][0], indent=4))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# View the request_id key

respond["request_id"]

Output
'3702f9d9-3f27-4d12-9224-6040141d9d83'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Turning data into tabular form with pandas with the api collection key (data)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas
df = pd.DataFrame(respond['data'])
df
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Optional
# Remove the unecessary columns

data = df.drop(columns = ["job_description", "employer_logo","employer_website", "job_id",
                         "job_posted_at_timestamp", "job_posted_at_datetime_utc", "job_latitude",
                         "job_longitude", "job_google_link","job_offer_expiration_datetime_utc","job_experience_in_place_of_education",
                          "job_min_salary", "job_max_salary","job_salary_currency",
                          "job_salary_period", "job_highlights", "job_benefits"], inplace = True)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Transforming and saving data into a csv file format
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df.to_csv (r'data.csv', encoding = 'utf-8', index = None)

job = pd.read_csv('data.csv')

job.head()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Check the data info

job.info()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  You should see your saved csv format in the file path you saved it into
&lt;/h4&gt;

</description>
      <category>welcome</category>
    </item>
    <item>
      <title>Scraping employees details with proxycurl</title>
      <dc:creator>Anuoluwapo Balogun</dc:creator>
      <pubDate>Fri, 04 Nov 2022 18:08:17 +0000</pubDate>
      <link>https://dev.to/anudatastory/ultimate-guide-to-alternative-data-cpo</link>
      <guid>https://dev.to/anudatastory/ultimate-guide-to-alternative-data-cpo</guid>
      <description>&lt;p&gt;Hello, I want to show you how to scrape employee details from linkedin company profiles using proxy curl.&lt;/p&gt;

&lt;p&gt;I will be using the &lt;strong&gt;Employee Listing Endpoint&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This endpoint is best used to list employees working in companies based in locations like US, UK, Canada, Israel, Australia, Ireland, New Zealand and Singapore only.&lt;/p&gt;

&lt;p&gt;I will be using Python Programming language.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests

api_endpoint = 'https://nubela.co/proxycurl/api/linkedin/company/employees/'
api_key = 'YOUR_API_KEY'
header_dic = {'Authorization': 'Bearer ' + api_key}
params = {
    'enrich_profiles': 'enrich',
    'role_search': '[Ff][Oo][Uu][Nn][Dd][Ee][Rr]',
    'page_size': '100',
    'employment_status': 'current',
    'resolve_numeric_id': 'false',
    'url': 'https://www.linkedin.com/company/microsoft',
}
response = requests.get(api_endpoint,
                        params=params,
                        headers=header_dic)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using this endpoint will cost you 3 credits / employee returned.&lt;/p&gt;

&lt;p&gt;You can purchase the credits at &lt;a href="https://nubela.co/" rel="noopener noreferrer"&gt;Proxycurl&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The output to our code is&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "employees": [
        {
            "profile": {
                "accomplishment_courses": [],
                "accomplishment_honors_awards": [],
                "accomplishment_organisations": [],
                "accomplishment_patents": [],
                "accomplishment_projects": [],
                "accomplishment_publications": [],
                "accomplishment_test_scores": [],
                "activities": [],
                "articles": [],
                "background_cover_image_url": null,
                "certifications": [],
                "city": "Seattle",
                "connections": null,
                "country": "US",
                "country_full_name": "United States of America",
                "education": [
                    {
                        "degree_name": null,
                        "description": null,
                        "ends_at": {
                            "day": 31,
                            "month": 12,
                            "year": 1975
                        },
                        "field_of_study": null,
                        "logo_url": "https://media-exp1.licdn.com/dms/image/C4E0BAQF5t62bcL0e9g/company-logo_400_400/0/1519855919126?e=1672876800\u0026v=beta\u0026t=9twXof1JlnNHfFprrDMi-C1Kp55HTT4ahINKHRflUHw",
                        "school": "Harvard University",
                        "school_linkedin_profile_url": null,
                        "starts_at": {
                            "day": 1,
                            "month": 1,
                            "year": 1973
                        }
                    },
                    {
                        "degree_name": null,
                        "description": null,
                        "ends_at": null,
                        "field_of_study": null,
                        "logo_url": "https://media-exp1.licdn.com/dms/image/C4D0BAQENlfOPKBEk3Q/company-logo_400_400/0/1519856497259?e=1672876800\u0026v=beta\u0026t=v7nJTPaJMfH7WOBjb22dyvNKxAgdPdVd8uLCUkMB1LQ",
                        "school": "Lakeside School",
                        "school_linkedin_profile_url": null,
                        "starts_at": null
                    }
                ],
                "experiences": [
                    {
                        "company": "Breakthrough Energy ",
                        "company_linkedin_profile_url": "https://www.linkedin.com/company/breakthrough-energy/",
                        "description": null,
                        "ends_at": null,
                        "location": null,
                        "logo_url": "https://media-exp1.licdn.com/dms/image/C4D0BAQGwD9vNu044FA/company-logo_400_400/0/1601560874941?e=1672876800\u0026v=beta\u0026t=VKb6OAHEwlnazKYKm4fc9go-y4zkUv2BT6tosOdQ54Y",
                        "starts_at": {
                            "day": 1,
                            "month": 1,
                            "year": 2015
                        },
                        "title": "Founder"
                    },
                    {
                        "company": "Bill \u0026 Melinda Gates Foundation",
                        "company_linkedin_profile_url": "https://www.linkedin.com/company/bill-\u0026-melinda-gates-foundation/",
                        "description": null,
                        "ends_at": null,
                        "location": null,
                        "logo_url": "https://media-exp1.licdn.com/dms/image/C4E0BAQE7Na_mKQhIJg/company-logo_400_400/0/1633731810932?e=1672876800\u0026v=beta\u0026t=Mz_ntwD4meCMcgo1L3JqDxBQRabFLIesd0Yz2ciAXNs",
                        "starts_at": {
                            "day": 1,
                            "month": 1,
                            "year": 2000
                        },
                        "title": "Co-chair"
                    },
                    {
                        "company": "Microsoft",
                        "company_linkedin_profile_url": "https://www.linkedin.com/company/microsoft/",
                        "description": null,
                        "ends_at": null,
                        "location": null,
                        "logo_url": "https://media-exp1.licdn.com/dms/image/C560BAQE88xCsONDULQ/company-logo_400_400/0/1618231291419?e=1672876800\u0026v=beta\u0026t=I1mJMWAR_W2R_0h-lyL9Ln1ewby1Gg7ExCbpzhMJr5g",
                        "starts_at": {
                            "day": 1,
                            "month": 1,
                            "year": 1975
                        },
                        "title": "Co-founder"
                    }
                ],
                "first_name": "Bill",
                "full_name": "Bill Gates",
                "groups": [],
                "headline": "Co-chair, Bill \u0026 Melinda Gates Foundation",
                "languages": [],
                "last_name": "Gates",
                "occupation": "Co-chair at Bill \u0026 Melinda Gates Foundation",
                "people_also_viewed": [],
                "profile_pic_url": "http://localhost:4566/proxycurl-web-dev/person/williamhgates/profile?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=%2F20221003%2F%2Fs3%2Faws4_request\u0026X-Amz-Date=20221003T091809Z\u0026X-Amz-Expires=3600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=653f499173f225e30141b4f7ff86e45b16a4fdb6cc91fec10f395fb27427ad26",
                "public_identifier": "williamhgates",
                "recommendations": [],
                "similarly_named_profiles": [],
                "state": "Washington",
                "summary": "Co-chair of the Bill \u0026 Melinda Gates Foundation. Founder of Breakthrough Energy. Co-founder of Microsoft. Voracious reader. Avid traveler. Active blogger.",
                "volunteer_work": []
            },
            "profile_url": "https://www.linkedin.com/in/williamhgates"
        }
    ],
    "next_page": null
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using the code will basically bring out al the bio-data of all the employees present in the company.&lt;/p&gt;

&lt;p&gt;But if you need a specific employee details you can use the &lt;a href="https://nubela.co/proxycurl/docs#company-api-employee-search-api-endpoint" rel="noopener noreferrer"&gt;Employee search api point&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can reach out to me if you need any assistant with using this endpoint I'll be glad to help.&lt;/p&gt;

&lt;p&gt;You can check out our other articles:&lt;br&gt;
&lt;a href="https://nubela.co/blog/the-ultimate-guide-to-alternative-data-what-is-it-really/" rel="noopener noreferrer"&gt;&lt;strong&gt;The Ultimate Guide to Alternative Data - What Is It Really?&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>proxycurl</category>
      <category>database</category>
      <category>data</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
