Schema Design for E-commerce Data: Shopify and ShipHero Integration with Google BigQuery

Data is the backbone that drives decision-making, customer experience, and business growth in the ever evolving world of e-commerce. The importance of a solid and efficient data infrastructure cannot be overstated as businesses expand. Integrating disparate systems to facilitate streamlined data collection and analysis is a significant challenge for online retailers. This piece delves into the Shopify and ShipHero Google BigQuery integration as a case study for e-commerce data schema design.

Why Integrate Shopify and ShipHero with Google BigQuery?

Shopify, a leading e-commerce platform, offers businesses a plethora of features to set up and run their online stores. On the other hand, ShipHero, a renowned fulfillment solution, ensures that orders are picked, packed, and shipped efficiently. While both platforms provide analytics and reporting features, integrating them with a powerful data warehouse like Google BigQuery can unlock advanced analytics capabilities.

Schema Design Considerations for E-commerce Data in BigQuery

Creating a BigQuery schema for e-commerce data is essential to a scalable and efficient data infrastructure. Several factors must be considered when starting this task:

1. Granularity

Granularity refers to the level of detail or depth at which data is captured and stored. The granularity of your data will significantly influence the kind of analyses and insights you can derive.

Product Level: Storing data at the product level allows you to analyze individual product performance, seasonal trends, and stock levels. This granularity is essential for inventory management and product-centric marketing campaigns.

Order Level: At this granularity, you’re looking at data related to individual orders. This can help in understanding average order values, order frequencies, and even customer buying patterns.

Customer Level: Capturing data at the customer level provides insights into customer behavior, lifetime value, and segmentation. This is crucial for personalized marketing and loyalty programs.

2. Data Types

BigQuery supports a range of data types, and choosing the right one is crucial for both storage efficiency and query performance.

STRING: Suitable for textual data like product names, descriptions, and customer addresses.

INTEGER: Ideal for whole numbers such as quantities, order numbers, and product IDs.

FLOAT: Used for decimal numbers, often related to product prices, discounts, or tax rates.

TIMESTAMP: Captures date and time, essential for tracking order dates, shipping times, and customer interactions.

When importing data from platforms like Shopify and ShipHero, ensure that the data types in your schema align with the source data to prevent data loss or inaccuracies.

3. Normalization vs. Denormalization

The debate between normalization and denormalization is as old as databases themselves. Both have their advantages and trade-offs:

Normalization: This involves organizing data to reduce redundancy and improve data integrity. In a normalized schema, data is split across multiple tables, and relationships are established using foreign keys. While this ensures that data is consistent and not duplicated, it can lead to complex queries that might be slower due to multiple JOIN operations.

Advantages: Reduces data redundancy, ensures data integrity, and saves storage space.

Trade-offs: This can lead to complex queries and might impact query performance.

Denormalization: Here, data is intentionally duplicated across tables to improve query performance. While this can lead to faster queries, it increases storage requirements and can introduce challenges in maintaining data consistency.

Advantages: Speeds up query performance and simplifies query writing.

Trade-offs: Increased storage requirements potential for data inconsistencies.

When deciding between normalization and denormalization, assess your primary needs. If real-time querying and analytics are a priority, denormalization might be the way to go. However, if you’re more concerned about storage efficiency and data integrity, consider a normalized approach.

Steps to Connect Shopify and ShipHero to Google BigQuery

Set Up a Google Cloud Project: Before you can connect Shopify to Google BigQuery or connect ShipHero to Google BigQuery, you need to have a Google Cloud project. Set one up and enable the BigQuery API.

Data Extraction: Use available connectors or build custom scripts to extract data from Shopify and ShipHero. Consider using tools like Stitch or Fivetran for this purpose.

Data Transformation: Once extracted, transform the data to match the schema you’ve designed in BigQuery. This step might involve cleaning the data, handling missing values, and converting data types.

Data Loading: Load the transformed data into BigQuery. Ensure that you set up appropriate partitions and clustering to optimize query performance.

Regular Data Sync: Set up a schedule to regularly extract, transform, and load (ETL) data from Shopify and integrate ShipHero to BigQuery. This ensures that your data in BigQuery is always up-to-date.


E-commerce competition is transformed by data-driven decision-making. Businesses can use data to grow, improve customer experience, and streamline operations by integrating Shopify and ShipHero with Google BigQuery. Effective schema design and data integration are key. Start data-driven excellence by connecting Shopify to BigQuery and ShipHero to Google BigQuery.