mindit.io logo
    • retail
      • / retail

        Retail industry, mindit.io

        In the intricate world of retail, mindit.io stands out as your strategic ally.

    • banking
      • / banking
        Woman using a card payment terminal, retail sector, mindit.io

        We partner with European banks on AI transformation, data-platform modernization, and regulatory-grade integration across Benelux, DACH, and UK.

    • financial services
      • / financial services

        Financial services: mindit.io data and AI

        Custom software and data platforms for asset managers, payments providers, and insurers across DACH and the US.

    • healthcare
      • / healthcare

        Doctor with digital tablet in hospital, healthcare sector, mindit.io

        ML and integration solutions for hospitals, health-tech platforms, and national health systems, including Switzerland’s national health sector.

    • hospitality
      • / hospitality
        Hospitality: mindit.io data and AI

        Operational and guest-experience software for hotels, restaurants, and global travel groups.

    • foodtech
      • / foodtech
        Burger and fresh salad, food and beverage sector, mindit.io

        Product engineering for the food industry: from plant-based configurators to supply-chain analytics.

    • manufacturing
      • / manufacturing
        Aerial view of industrial conveyor belt, manufacturing sector, mindit.io

        Industrial software, IoT integration, and data platforms for manufacturers modernizing operations.

    • publishing
      • / publishing
        Publishing: mindit.io AI solutions

        ML platforms and editorial workflow systems for publishers, including Izzard Ink Publishing.

    • real estate
      • / real estate
        Modern residential buildings at dusk, real estate sector, mindit.io

        Property tech and data analytics for real-estate operators and asset managers.

    • telco
      • / telco
        Person using smartphone, telecom sector, mindit.io

        Telecom-grade software for network optimization, customer-facing apps, and AI-driven insights.

    • / company
    • about us
      • / about us

        mindit.io partners and people
        The partner of choice for data & product engineering to drive business growth & deliver an impact within your organization
    • product engineering
      • / product engineering
        We specialize in Software Product Engineering, transforming your concepts into impactful products.
    • technology
      • / technology
        mindit.io AI Native company
        250+ specialists skilled in software, BI, integration, offering end-to-end services from research to ongoing maintenance.
    • methodology
      • / methodology
        Custom software solutions, mindit.io
        We specialize in software product engineering, transforming your concepts into impactful products.
    • careers
      • / careers
        Careers at mindit.io
        Our team needs one more awesome person, like you. Let’s grow together! Why not give it a try?
    • do good
      • / do good
        mindit.io team member do good ESG initiatives by the sea
        We’re a team devoted to making the world better with small acts. We get involved and always stand for kindness.
    • events
      • / events
        From Databricks’ Data + AI Summit to Day-to-Day: How the Latest Announcements Impact Real Deployments – Live Webinar
    • blog
      • / blog
        Databricks just rebuilt the data stack for AI agents. Here is what Retail and Banking should do about it.
        Retail Data Platform Modernization Checklist — BENELUX 2026
    • contact us
      • / contact us
        Request a mindit.io webinar
        We would love to hear from you! We have offices and teams in Romania and Switzerland. How can we make your business thrive?
  • / get in touch

helping enterprises become AI-native organizations

Managing 4+ Terabytes DW – A story about indexes and execution times

Working with a Data Warehouse with more than 4TB of data for the last couple of years was very challenging but also highly rewarding.

As I’m pretty much a person that works best when challenged and when I have to deal with new things, I am always up for a task that requires a lot of perseverance.

In this project I had my first contact with Columnstore Clustered indexes, a very interesting concept that got me engaged and I started reading about it. As I did not join the project from the beginning, there were already tables using this kind of index and I have to admit, performance and compression are really impressive.

Of course, the time came and I got the chance to work with this technology myself. It was me, a 800M records source table and a SSIS package meant to move the data from the source table to the DW table, of course, using a Columnstore Clustered index.

After the initial load, the recurrent process started working and then I had a bigger volume of data that was brought in the source table, around 25 Million records, nothing too odd, considering that other processes that were running with hundred thousands to millions, concurrently, without exceeding 30-40 minutes per execution, including lookups and updates, I did not expect something to exceed 1.5 or 2 hours.

Oh, I was wrong. After a 16 hours execution, I was thinking of all the possible scenarios that could have happened and what could have caused that really odd execution, taking in consideration that it was a pretty simple ETL, without much logic happening on the process. So I started investigating the execution logs and then I understood one of the downsides of the compression gains and I got a better idea on how the Columnstore Clustered index works. Of course I reached Niko Neugebauer’s blogs about Columnstore indexes(http://www.nikoport.com/columnstore/), which are a great read, I always recommend them to anyone starting to get into this topic.

After couple of hours of reading and checking logs, I’ve noticed that once the row-groups were filled, the compression of the row groups and the extension of the file started, which had a really strange behavior, taking more to compress and extend the file, than the data movement itself.

One of the issues was that I was using a not so good batch size, I think it was 100K records, meaning that the engine would not store the data directly into compressed segments, but rather put the data into open delta stores, which took a lot of time for the engine to compress into row groups.

Reading more about it, I found that there is a “magic number” for the bulk insert API that helps the engine store the data into a compressed segment, rather than using open delta stores that would need to be compressed at the next execution of the Tuple Mover.

Niko has performed some interesting tests that prove the “magic number” being used for storing the data into a compressed segment, using the bulk insert API and you can read more about those tests at the following link: http://www.nikoport.com/2014/06/20/clustered-columnstore-indexes-part-30-bulk-load-api-magic-number/

As a closing note, this was one of the experiences that really made me understand that no performance gain comes “for free” and made me more cautious about technologies and concepts that I have not used before. Also, after this experience, one of my biggest gains were Niko’s blogs, which are useful and helped me a lot understand the behinds of the Columnstore indexes, with their pros and cons.

Distribute:

/turn your vision into reality

The best way to start a long-term collaboration is with a Pilot project. Let’s talk.