An Introduction to Stream Processing

What is stream processing

Companies throughout the world generate large amounts of data, which continues to grow at a rapid pace. By 2025, the total number of data created, consumed, and stored in the world is expected to accumulate up to 181 zettabytes.

A significant amount of data is produced as live or real-time streams, also referred to as streaming data. These streams can come from a wide range of sources, including clickstream data from mobile apps and websites, IoT-powered sensors, and server logs. The ability to track and analyze streaming data has become crucial for organizations to lend support to their departmental operations.

However, there are a couple of challenges that make it difficult for organizations to deal with streaming data. 

  1. You have to collect large amounts of data from streaming sources that generate events every minute. 
  2. In its raw form, streaming data lacks structure and schema, which makes it tricky to query with analytic tools.

Today, there’s an increasing need to process, parse, and structure streaming data before any proper analysis can be done on it. For instance, what happens when someone uses a ride-hailing app? The app uses real-time data for location tracking, traffic data, and pricing to provide the most suitable driver. It also estimates how much time it’ll take to reach the destination based on real-time and historical data. The entire process from the user’s end takes a few seconds. But what if the app fails to collect and process any of this data on time? There’s no value to the app if the data processing isn’t done in real time.

Traditionally, batch-oriented approaches are used for data processing. However, these approaches are unable to handle the vast streams of data generated in real time. To address these issues, many organizations are turning to stream processing architectures as an effective solution for processing vast amounts of incoming data and delivering real-time insights for end users.

What is Stream Processing?

Stream processing is a data processing paradigm that continuously collects and processes real-time or near-real-time data. It can collect data streams from multiple sources and rapidly transform or structure this data, which can be used for different purposes. Examples of this type of real-time data include information from social media networks, e-commerce purchases, in-game player activity, and log files of web or mobile users.

As Alok Pareek mentions in his explanation of stream processing, the main characteristics of data stream processing include:

  • Data arrives as an ongoing stream of events
  • It requires high-throughput processing
  • It requires low-latency processing
Basics of Stream Processing
The basic characteristics of data stream processing. From a presentation by Alok Pareek

Stream processing can be stateless or stateful. The state of the data tells you how previous data affects the processing of current data. In a stateless stream, the processing of current events is independent of the previous ones. Suppose you’re analyzing weblogs, and you need to calculate how many visitors are viewing your page at any moment in time. Since the result of your preceding second doesn’t affect the current second’s outcome, it’s a stateless operation.

With stateful streams, there’s context, as current and preceding events share their state. This context can help past events shape the processing of current events. For instance, a global brand would like to check the number of people buying a specific product every hour. Stateful stream processing can help to process the users who buy the product in real time. This data is then shared in a state, so it can be aggregated after one hour.

Stream Processing vs. Batch Processing

Batch processing is about processing batches containing a large amount of data, which is usually data at rest. Stream processing works with continuous streams of data where there is no start or end point in time for the data. This data is then fed to a streaming analytics tool in real time to generate instant results.

Batch processing requires that the batch data is first loaded into a file system, a database, or any other storage medium before processing can begin. It’s more practical and convenient if there’s no need for real-time analytics. It’s also easier to write code for batch processing. For example, a fitness-based product company goes through its overall revenues generated from multiple stores around the country. If it wants to look at the data at the end of the day, batch processing is good enough to adequately meet its needs.

Stream processing is better when you have to process data in motion and deliver analytics outcomes rapidly. For instance, the fitness company now wants to boost brand interest after airing a commercial. It can use stream processing to feed social media data into an analytics tool for real-time audience insights. This way, it can determine audience response and look into ways to amplify brand messaging in real time.

Is Stream Processing the Same as Complex Event Processing?

Stream processing is sometimes used interchangeably with complex event processing (CEP). Complex event processing is actually a subset of stream processing. It’s a set of techniques and concepts used to process real-time events and extract meaningful information from these event streams on a continuous basis. 

CEP is linked to different data sources in an organization, where pre-built triggers are defined for specific events. When these events occur, alerts and automated actions are triggered. For example, in the stock market, when stock price data arrives, the system can match stock data with real-time and historical patterns and automate the decision to buy or sell a stock. 

How Does Stream Processing Work?

Modern applications process two types of data: bounded and unbounded. Bounded data refers to a dataset of finite size — one where you can easily count the number of elements in the dataset. It has a known endpoint. For instance, a bookstore wants to know the number of books sold at the end of the day. This data is bounded because a fixed number of books were sold throughout the day and sales operations ended for the day, which means it has a known endpoint.

Unbounded data refers to a dataset that is theoretically infinite in size. No matter how advanced modern information systems are, their hardware has a limited number of resources, especially when it comes to storage capacity and memory. It’s not economical or practical to handle unbounded data with traditional approaches.

Stream processing can use a number of techniques to process unbounded data. It partitions data streams by taking a current fragment so they can become fixed chunks of records that can be analyzed. Based on the use case, this current fragment can be from the last two minutes, the last hour, or even the last 200 events. This fragment is referred to as a window. You can use different techniques to window data and process the windowing outcomes.

Next, data manipulation is applied to data accumulated in a window. This can include the following:

  • Basic operations (e.g., filter)
  • Aggregate (e.g., sum, min, max)
  • Fold/reduce

This way, each window has a result value.

Stream Processing Architecture

A stream processing architecture can include the following components:

  • Stream processor: A stream producer (also known as a message broker) uses an API to fetch data from a producer — a data source that emits streams to the stream processor. The processor converts this data into a standard messaging format and streams this output regularly to a consumer.
  • Real-time ETL tools: Real-time ETL tools collect data from a stream processor to aggregate, transform, and structure it. These operations ensure that your data can be made ready for analysis.
  • Data analytics tool: Data analytics tools help analyze your streaming data after it’s aggregated and structured properly. For instance, if you need to send streaming events to applications without compromising on latency, then you can process and persist your streams into a cluster in Cassandra. You can set up an instance in Apache Kafka to send outputs of streams of changes to your apps for real-time decision making.
  • Data storage: You can save your streaming data into a number of storage mediums. This can be a message broker, data warehouse, or data lake. For example, you can store your streaming data on Snowflake, which lets you perform real-time analytics with BI tools and dashboards.

Advantages of Stream Processing

Stream processing isn’t right for every organization. After all, not everyone needs real-time data. But for those who do, stream processing is essential. It makes the entire process of dealing with real-time data much smoother and more efficient. Here are some more benefits you can get from stream processing. 

  1. Easier to deal with continuous streams. With batch processing, you have to stop collecting data at some point and process it. This creates the need for a cycle of accept, aggregate, and process, which can be prohibitively complicated and increase overhead. Stream processing can identify patterns, examine results, and easily show data from several streams at once. 
  2. Can be done with affordable hardware. Batch processing allows data to accumulate and then process it, which might require powerful hardware. Stream processing deals with data as soon as it arrives and doesn’t let it build up, which is why it can be done without the need for costly hardware. 
  3. Deal with large amounts of data. Sometimes, there’s a large amount of data that can’t be stored. In these scenarios, stream processing helps you process data and retain the useful bits.
  4. Handle the latest data sources. With the rise of IoT, there’s an increase in streaming data, which comes from a wide range of sources. Stream processing’s inherent architecture makes it a natural solution to deal with these sources. 

Stream Processing Frameworks

A stream processing framework is a comprehensive processing system that collects streaming data as input via a dataflow pipeline and produces real-time analytics by delivering actionable insights. These frameworks save you from going through the hassle of building a solution to implement stream processing. 

Before you get started with a stream processing framework, you need to make sure it can meet your needs. Here’s what you should consider:

  • Does the framework support stateful stream processing?
  • Does the framework support both batch and stream processing functionalities?
  • Does the framework offer support for your developers’ desired programming languages? 
  • How does the framework fare in terms of scalability?
  • How does the framework deal with fault tolerance and crashes?
  • How easy is the framework to build upon? 
  • How quickly can your developers learn to use the framework?

Answering these questions will ensure you end up with a stream processing framework that fulfills all of your needs. You don’t want to pay for new hardware to find it only does half of what you want. The following three frameworks are some of the most popular options available and fulfill each of the criteria above.

Apache Spark

Apache Spark is an analytics engine that’s built to process big data workloads on an enterprise scale. The core Spark API contains Spark Streaming, an extension that supports stream processing data streams at high throughput. It ingests data from a wide range of sources, such as TCP sockets, Kineses, and Kafka. 

Spark Streaming collects real-time streams and divides them into batches of data with regular time intervals. A typical interval is between 500 milliseconds to several seconds. Spark Streaming comes with an abstraction known as DStream (Discretized Stream) to represent continuous data streams. 

You can use high-level functions like window, join, and reduce to process data with complex algorithms. This data can then be sent to live dashboards, databases, and file systems, where you can use Spark’s graph processing and machine learning algorithms on your streams. 

Kafka Streams

Kafka Streams is a Java API that processes and transforms data stored in Kafka topics. You can use it to filter data in a topic and publish it to another. Think of it as a Java-powered toolkit that helps you to modify Kafka messages in real time before they’re sent to external consumers. 

A Kafka Stream is made of the following components:

  • Source processors: Used for representing a topic in Kafka and can send event data to one or several stream processors.
  • Stream processors: Used to perform data transformations, such as mapping, counting, and grouping, on input data streams. 
  • Sink processors: Used for representing the output streams and are connected to a topic. 
  • Topology: A graph that the Kafka Streams instance uses to figure out the relationship between sources, processors, and sinks. 

Apache Flink

Apache Flink is an open-source distributed framework that offers stream processing for large volumes of data. It provides low latency and high throughput while also supporting horizontal scaling. 

DataStream API is the primary API in Flink for stream processing. It helps you write programs in Python, Scala, and Java to perform data transformations on streams. These streams can come from various sources at once, such as files, socket streams, or message queues. The output of these streams is routed through Data Sinks, so you write this data to a target, like distributed files. 

Flink doesn’t only offer runtime operators for unbounded data — it also comes with specialized operators to process bounded data by configuring the Table API or DataSet API in Flink. That means you can use Flink for both stream processing and batch analytics. 

Streaming SQL

In stream processing, you can’t use normal SQL for writing queries. You can write SQL queries for bounded data that are stored in a database at the moment, but you can’t use these queries for real-time streams. For that, you need a special type of SQL known as Streaming SQL.

Streaming SQL helps you write queries for stored data as well as data that are expected to come in the future. That’s why these queries never stop running and continuously generate results as streams. For instance, if a manufacturing plant is using sensors to record temperature data for its machinery, you can represent this output as a stream. Normal SQL queries will collect stored data from your machinery’s database table, process it, and send it to the target system. Streaming SQL not only ingests stored data but also collects new data from your sensor and continuously produces it as output in real time. 

Learn more about streaming SQL in detail here.

Stream Processing Use Cases

The ability of stream processing architectures to analyze real-time data can have a major impact in several areas.

Fraud detection

Stream processing architectures can be pivotal in discovering, alerting, and managing fraudulent activities. They go through time-series data to analyze user behavior and look for suspicious patterns. This data can be ingested through a data ingestion tool (e.g., Striim) and can include the following:

  • User identity (e.g., phone number)
  • Behavioral patterns (e.g., browsing patterns)
  • Location (e.g., shipping address)
  • Network and device (e.g., IP information, device model)

This data is then processed and analyzed to find hidden fraud patterns. For example, a retailer can process real-time streams to identify credit card fraud during the point of sale. To do this, it can correlate customers’ interactions with different channels and transactions. In this way, any transaction that’s unusual or inconsistent with a customer’s behavior (e.g., using a shipping address from a different country) can be reviewed instantly.

Hyper-personalization

Accenture found that 91% of buyers are more likely to purchase from brands that offer personalized recommendations. Today, businesses need to improve their customer experience by introducing workflows that automate personalization.

Personalization with batch processing has some limitations. Since it uses historical data, it fails to take advantage of data that provides insights into a user’s real-time interactions that are happening at the very moment. In addition, it fails at hyper-personalization since it’s unable to use these real-time streams with customers’ existing data.

Let’s take a seller that deals in computer hardware. Their target market includes both office workers and gamers. With stream processing, the seller can process real-time data to determine which visitors are office workers who need hardware like printers, and which are gamers who are more likely to be looking for graphic cards that can run the latest games.

Log analysis

Log analysis is one of the processes that engineering teams use to identify bugs by reviewing computer-generated records (also known as logs).

In 2009, PayPal’s network infrastructure faced a technical issue, causing it to go offline for one hour. This downtime led to a loss of transactions worth $7.2 million. In such circumstances, engineering teams don’t have a lot of time; they have to quickly find the root cause of the failure via log analysis. To do this, their methods of collecting, analyzing, and understanding data in real time are key to solving the issue. Stream processing architecture makes it a natural solution. Today, PayPal uses stream processing frameworks and processed 5.34 billion payments in the fourth quarter of 2021.

Stream processing can improve log analysis by collecting raw system logs, classifying their structure, converting them into a consistent and standardized format, and sending them to other systems.

Usually, logs contain basic information like the operation performed, network address, and time. Stream processing can add meaning to this data by identifying log data related to remote/local operations, authentication, and system events. For instance, the original log stores user IP addresses but doesn’t tell their physical location. Stream processing can collect geolocation data to identify their location and add it to your systems.

Sensor data

Sensor-powered devices collect and send large amounts of data quickly, which is valuable to organizations (e.g. for predictive maintenance). They can measure a wide variety of data, such as air quality, electricity, gasses, time of flight, luminance, air pressure, humidity, temperature, and GPS. After this data is collected, it must be transmitted to remote servers where it can be processed. One of the challenges that occurs during this process is the processing of millions of records sent by the device’s sensors every second. You might also need to perform different operations like filtering, aggregating, or discarding irrelevant data.

Stream processing systems can process data from sensors, which includes data integration from different sources, and perform various actions, like normalizing data and aggregating it. To transform this data into meaningful events, it can use a number of techniques, including:

Assessment: Storing all data from sensors isn’t practical since a lot of it isn’t relevant. Stream processing applications can standardize this data after collecting it and perform basic transformations to determine if any further processing is required. Irrelevant data is then discarded, saving processing bandwidth.

Aggregation: Aggregation involves performing a calculation on a set of values to return a single output. For instance, let’s say a handbag company wants to identify fraudulent gift card use by looking over its point-of-sale (POS) machine’s sensor data. It can set a condition that tells it when gift card redemptions cross the $1,000 limit within 15 minutes. It can use stream processing to aggregate metrics continuously by using a sliding time window to look for suspicious patterns. A sliding time window is used to group records from a data stream over a specific period. A sliding window of a length of one minute and a sliding interval of 15 minutes will contain records that arrive in a one-minute window and are evaluated every 15 minutes.

Correlation: With stream processing, you can connect to streams over a specific interval to determine how a series of events occurred. For instance, in our POS example, you can set a rule that condition x is followed by conditions y and z. This rule can include an alert that notifies the management as soon as gift card redemptions in one of the outlets are 300% more than the average of other outlets.

Striim: A Unified Stream Processing and Real-time Data Integration Platform

Striim unified streaming and data integration platform
Striim is a unified streaming and real-time data integration platform with over 150 connectors to data sources and targets. Striim gives users the best of both worlds: real-time views of streaming data plus real-time delivery to data targets (e.g. data warehouses) for larger-scale analysis and report-building. All of this is possible across hybrid and multi-cloud environments.

If you’re looking to improve your organization’s processing and management of streaming data, stream processing can be a good solution. However, you need to make sure you have the right tools to effectively implement stream processing. Striim can be your go-to tool for ingesting, processing, and analyzing real-time data streams. As a unified data integration and streaming platform — with over 150 connectors to data sources and targets — Striim brings many capabilities under one roof.

Striim can perform various operations on data streams, such as filtering, masking, aggregation, and transformation. Furthermore, streaming data can be enriched with in-memory, refreshable caches of historical data. WAction Store, a fault-tolerant, distributed results store, maintains an aggregate state. WAction Stores can be continuously queried with Tungsten Query Language (TQL), Striim’s own streaming SQL engine. TQL is 2-3x faster than Kafka’s KSQL and can help you to write queries more efficiently. Streaming data can also be visualized with custom dashboards (e.g., to detect cab-booking hotspots).

TQL vs KSQL
Execution time for different types of queries using Striim’s TQL vs KSQL

Ready to learn more about Striim for real-time data integration and stream processing? Get a product overview, request a personalized demo with one of our product experts, or read our documentation.

 

Rethink Your Data Architecture With Data Mesh and Event Streams

According to a Gartner prediction, only 20% of data analytics projects will deliver business outcomes. Indeed, given that the current data architectures are not well equipped to handle data’s ubiquitous and increasingly complex interconnected nature, this is not surprising. So, in a bid to address this issue, the question on every company’s lips remains — how can we properly build our data architecture to maximize data efficiency for the growing complexity of data and its use cases?

First defined in 2018 by Zhamak Dehghani, Head of Emerging Technologies at Thoughtworks, the data mesh concept is a new approach to enterprise data architecture that aims to address the pitfalls of the traditional data platforms. Organizations seeking a data architecture to meet their ever-changing data use cases should consider the data mesh architecture to power their analytics and business workloads.

What Is a Data Mesh?

A data mesh is an approach to designing modern distributed data architectures that embrace a decentralized data management approach. The data mesh is not a new paradigm but a new way of looking at how businesses can maximize their data architecture to ensure efficient data availability, access, and management.

How does a data mesh differ from traditional data architectures?

Rather than viewing data as a centralized repository, a data mesh’s decentralized nature distributes data ownership to domain-specific teams that manage, control, and deliver data as a product, enabling easy accessibility and interconnectivity of data across the business.

Today most companies’ data use cases can be split into operational and analytical data. Operational data represents data from the company applications’ day-to-day operations. For example, using an e-commerce store, this will mean customer, inventory, and transaction data. This operational data type is usually stored in databases and used by developers to create various APIs and microservices to power business applications.

operational data plane vs analytical data plane

Operational vs. analytical data plane

On the other hand, analytical data represents historical organizational data used to enhance business decisions. In our e-commerce store example, analytical data answers questions such as “how many customers have ordered this product in the last 20 years?” or “what products are customers likely to buy in the winter season?” Analytical data is usually transported from multiple operational databases using ETL (Extract, Transform, and Load) techniques to centralized data stores like data lakes and warehouses. Data analysts and scientists use it to power their analytics workloads, and product and marketing teams can make effective decisions with the data.

A data mesh understands the difference between the two broad types of data and attempts to connect these two data types under a different structure — a decentralized approach to data management. A data mesh challenges the idea of the traditional centralization of data into a single big storage platform.

What are the four principles of a data mesh, and what problems do they solve?

A data mesh is technology agnostic and underpins four main principles described in-depth in this blog post by Zhamak Dehghani. The four data mesh principles aim to solve major difficulties that have plagued data and analytics applications for a long time. As a result, learning about them and the problems they were created to tackle is important.

Domain-oriented decentralized data ownership and architecture

This principle means that each organizational data domain (i.e., customer, inventory, transaction domain) takes full control of its data end to end. Indeed, one of the structural weaknesses of centralized data stores is that the people who manage the data are functionally separate from those who use it. As a result, the notion of storing all data together within a centralized platform creates bottlenecks where everyone is mainly dependent on a centralized “data team” to manage, leading to a lack of data ownership. Additionally, moving data from multiple data domains to a central data store to power analytics workloads can be time consuming. Moreover, scaling a centralized data store can be complex and expensive as data volumes increase.

There is no centralized team managing one central data store in a data mesh architecture. Instead, a data mesh entrusts data ownership to the people (and domains) who create it. Organizations can have data product managers who control the data in their domain. They’re responsible for ensuring data quality and making data available to those in the business who might need it. Data consistency is ensured through uniform definitions and governance requirements across the organization, and a comprehensive communication layer allows other teams to discover the data they need. Additionally, the decentralized data storage model reduces the time to value for data consumers by eliminating the need to transport data to a central store to power analytics. Finally, decentralized systems provide more flexibility, are easier to work on in parallel, and scale horizontally, especially when dealing with large datasets spanning multiple clouds.

Data as a product 

This principle can be summarized as applying product thinking to data. Product thinking advocates that organizations must treat data with the same care and attention as customers. However, because most organizations think of data as a by-product, there is little incentive to package and share it with others. For this reason, it is not surprising that 87% of data science projects never make it to production.

Data becomes a first-class citizen in a data mesh architecture with its development and operations teams behind it. Building on the principle of domain-oriented data ownership, data product managers release data in their domains to other teams in the form of a “product.” Product thinking recognizes the existence of both a “problem space” (what people require) and a “solution space” (what can be done to meet those needs). Applying product thinking to data will ensure the team is more conscious of data and its use cases. It entails putting the data’s consumers at the center, recognizing them as customers, understanding their wants, and providing the data with capabilities that seamlessly meet their demands. It also answers questions like “what is the best way to release this data to other teams?” “what do data consumers want to use the data for?” and “what is the best way to structure the data?”

Self-serve data infrastructure as a platform

The principle of creating a self-serve data infrastructure is to provide tools and user-friendly interfaces so that generalist developers (and non-technical people) can quickly get access to data or develop analytical data products speedily and seamlessly. In a recent McKinsey survey, organizations reported spending up to 80% of their data analytics project time on repetitive data pipeline setup, which ultimately slowed down the productivity of their data teams.

The idea of the self-serve data infrastructure as a platform is that there should be an underlying infrastructure for data products that the various business domains can leverage in an organization to get to the work of creating the data products rapidly. For example, data teams should not have to worry about the underlying complexity of servers, operating systems, and networking. Marketing teams should have easy access to the analytical data they need for campaigns. Furthermore, the self-serve data infrastructure should include encryption, data product versioning, data schema, and automation. A self-service data infrastructure is critical to minimizing the time from ideation to a working data-driven application.

Federated computational governance 

This principle advocates that data is governed where it is stored. The problem with centralized data platforms is that they do not account for the dynamic nature of data, its products, and its locations. In addition, large datasets can span multiple regions, each having its own data laws, privacy restrictions, and governing institutions. As a result, implementing data governance in this centralized system can be burdensome.

The data mesh more readily acknowledges the dynamic nature of data and allows for domains to designate the governing structures that are most suitable for their data products. Each business domain is responsible for its data governance and security, and the organization can set up general guiding principles to help keep each domain in check.

While it is prescriptive in many ways about how organizations should leverage technology to implement data mesh principles, perhaps the more significant implementation challenge is how that data flows between business domains.

Why Are Event Streams a Good Fit for Building a Data Mesh?

Event streams are a continuous flow of “events” known as data points that flow from systems that generate data to systems that consume that data for different workloads. In our online store example, when a customer places an order, that “order event” is propagated to the various consumers who listen to that event. The consumer could be a checkout service to process the order, an email service that sends out confirmation emails, or an analytics service carrying out real-time customer order behaviors.

Event streams offer the best option for building a data mesh, mainly when the data involved is used by multiple teams with unique needs across an organization. Because event streams are published in real time, streams enable immediate data propagation across the data mesh. Additionally, event streams are persisted and replayable, so they let you capture both real-time and historical data with one infrastructure. Finally, because the stored events don’t change, they make for a great source of record, which is helpful for data governance.

Three common streaming patterns in a data mesh

In our work with Striim customers, we tend to see three common streaming patterns in a data mesh.

In the first pattern, data is streamed from legacy systems to create new data products on a self-service infrastructure (commonly on a public cloud). For example, medical records data can be streamed from on-premise EHR (electronic health records) systems to a real-time analytics system like GoogleBigQuery, to feed cloud applications used by doctors. In the meantime, operational monitoring applications on the data pipeline help to ensure that pipelines are operating as expected.

data streaming pattern 3

In the second pattern, data is also consumed as it moves along the pipeline. Data is processed (e.g. by continuous queries or window-based views) to create “data as a product applications”. For example, a financial institution may build a fraud detection application that analyzes streaming data to identify potential fraud in real time.

data streaming pattern 2

Once you have a data product (e.g. freshly analyzed data), you can share it with another data product (e.g. the original data source or day-to-day business applications like Salesforce). This pattern, also known as reverse ETL, enables companies to have actionable information at their points of engagement, allowing for more intelligent interactions.

data streaming pattern

How to build a data mesh with event streams

To build a data mesh, you need to understand the different components (and patterns) that make up the enterprise data mesh architecture. In this article, Eric Broda gives a detailed overview of data mesh architectural patterns, bringing much-needed clarity to the “how” of a data mesh.

enterprise data mesh according to Eric Broda
Enterprise Data Mesh Architecture, according to Eric Broda. Components described below.
  • Data Product APIs: This is the communication layer that makes data within a data product accessible via a contract that is consistent, uniform, and compliant to industry-standard specifications (REST API, GraphQL, MQTT, gRPC).
  • Change Data Capture: This is used by an enterprise data mesh to track when data changes in a database. These database transaction changes are captured as “events.”
  • Event Streaming Backbone: This concept is used to communicate CDC (Change Data Capture) events and other notable events (for example, an API call to the Data Mesh) to interested consumers (within and between Data Products) in an enterprise data mesh.
  • Enterprise Data Product Catalog: This repository allows developers and users to view metadata about data products in the enterprise data mesh.
  • Immutable Change/Audit Log: This retains data changes within the enterprise data mesh for future audit and governance purposes.

Still building on our e-commerce example, let’s walk through how these components could  operate in a real-world data mesh scenario. For example, say our retail company has both a brick-and-mortar and online presence, but they lack a single source of truth regarding inventory levels. Disjointed systems in their on-premises data center can result in disappointing customer experiences. For example, customers shopping online may be frustrated to discover out-of-stock items that are actually available in their local store.

The retailer’s goal is to move towards an omnichannel, real-time customer experience, where customers can get a seamless experience no matter where (or when) they place their order. In addition, the retailer needs real-time visibility into inventory, to maintain optimal inventory levels at any point in time (including peak shopping seasons like Black Friday/Cyber Monday).

A data mesh suits this use case perfectly, and allows them to keep their on-premises data center running without disruption. Here’s how they can build a data mesh with Striim’s unified streaming and integration platform.

A data mesh in practice, using Striim

data mesh example for retail
Example of a data mesh for a large retailer using Striim. Striim continuously reads the operational database transaction logs from disjointed databases in their on-prem data center, continuously syncing data to a unified data layer in the cloud. From there, streaming data consumers (e.g. a mobile shopping app and a fulfillment speed analytics app) consume streaming data to support an optimal customer experience and enable real-time decision making.
  • Operational applications update data in the on-premises inventory, pricing, and catalog databases (e.g. when an online order is placed, the appropriate database is updated)
  • Striim’s change data capture (CDC) reader continuously reads the operational database transaction logs, creating database change streams that can be persisted and replayed via a native integration with Kafka
  • Striim performs in-memory processing of the event streams, allowing for detection and transformation of mismatched data (e.g. mismatched timestamp fields). Data is continuously synced and validated. Furthermore, Striim automatically detects schema changes in the source databases, either propagating them or alerting users of an issue. All this happens with sub-second latency to ensure that any consumer of data in the mesh has fresh and accurate data.
  • Events are streamed to a unified data layer in the cloud, to both lake storage and an inventory database, with the flexibility to add any number of self-service systems (streaming data consumers) to provide an optimal customer experience and support real-time decision-making. So an online customer who wants to pick up an item at their local store can do so without a hitch. A returning customer can be offered a personalized coupon to encourage them to add more items to their order.
  • The retail company can integrate Striim with a solution like Confluent’s schema catalog, making it easier to classify, organize, and find event streams

Use Striim as the Event Ingestion and Streaming Backbone of Your Data Mesh

A data mesh unlocks endless possibilities for organizations for various workloads, including analytics and building data-intensive applications. Event streams offer the best communication medium for implementing a data mesh. They provide efficient data access to all data consumers and bridge the operational/analytical divide, giving batch and streaming users a real-time, fast, and consistent view of data.

Striim has all the capabilities to build a data mesh using event streams, as shown above. Striim makes it easy to create new streams for data product owners with a simple streaming SQL query language and role-based access to streams. Additionally, Striim provides real-time data integration, connecting over 150 sources and targets across hybrid and multi-cloud environments.

 

The 7 Data Replication Strategies You Need to Know

What is Data Replication

Data replication involves creating copies of data and storing them on different servers or sites. This results in multiple, identical copies of data being stored in different locations.

Data Replication Benefits

Data replication makes data available on multiple sites, and in doing so, offers various benefits.

First of all, it enables better data availability. If a system at one site goes down because of hardware issues or other problems, users can access data stored at other nodes. Furthermore, data replication allows for improved data backup. Since data is replicated to multiple sites, IT teams can easily restore deleted or corrupted data.

Data replication also allows faster access to data. Since data is stored in various locations, users can retrieve data from the closest servers and benefit from reduced latency. Also, there’s a much lower chance that any one server will become overwhelmed with user queries since data can be retrieved from multiple servers. Data replication also supports improved analytics, by allowing data to be continuously replicated from a production database to a data warehouse used by business intelligence teams.

Replicating data to the cloud

Replicating data to the cloud offers additional benefits. Data is kept safely off-site and won’t be damaged if a major disaster, such as a flood or fire, damages on-site infrastructure. Cloud replication is also cheaper than deploying on-site data centers. Users won’t have to pay for hardware or maintenance.

multi-cloud data integration

Replicating data to the cloud is a safer option for smaller businesses that may not be able to afford full-time cybersecurity staff. Cloud providers are constantly improving their network and physical security. Furthermore, cloud sites provide users with on-demand scalability and flexibility. Data can be replicated to servers in different geographical locations, including in the nearby region.

Data Replication Challenges

Data replication technologies offer many benefits, but IT teams should also keep in mind several challenges.

First of all, keeping replicated data at multiple locations leads to rising storage and processing costs. In addition, setting up and maintaining a data replication system often requires assigning a dedicated internal team.

Replicating data across multiple copies requires deploying new processes and adding more traffic to the network. Finally, managing multiple updates in a distributed environment may cause data to be out of sync on occasion. Database administrators need to ensure consistency in replication processes.

Data Replication Methods

The data replication strategy you choose is crucial as it impacts how and when your data is loaded from source to replica and how long it takes. An application whose database updates frequently wouldn’t want a data replication strategy that could take too long to reproduce the data in the replicas. Similarly, an application with less frequent updates wouldn’t require a data replication strategy that reproduces data in the replicas several times a day.

Log-Based Incremental Replication

Some databases allow you to store transaction logs for a variety of reasons, one of which is for easy recovery in case of a disaster. However, in log-based incremental replication, your replication tool can also look at these logs, identify changes to the data source, and then reproduce the changes in the replica data destination (e.g., database). These changes could be INSERT, UPDATE, or DELETE operations on the source database.

The benefits of this data replication strategy are:

  • Because log-based incremental replication only captures row-based changes to the source and updates regularly (say, once every hour), there is low latency when replicating these changes in the destination database.
  • There is also reduced load on the source because it streams only changes to the tables.
  • Since the source consistently stores changes, we can trust that it doesn’t miss vital business transactions.
  • With this data replication strategy, you can scale up without worrying about the additional cost of processing bulkier data queries.

Unfortunately, a log-based incremental replication strategy is not without its challenges:

  • It’s only applicable to databases, such as MongoDB, MySQL, and PostgreSQL, that support binary log replication.
  • Since each of these databases has its own log formats, it’s difficult to build a generic solution that covers all supported databases.
  • In the case where the destination server is down, you have to keep the logs up to date until you restore the server. If not, you lose crucial data.

Despite its challenges, log-based incremental replication is still a valuable data replication strategy because it offers fast, secure, and reliable replication for data storage and analytics.

Key-Based Incremental Replication

As the name implies, key-based replication involves replicating data through the use of a replication key. The replication key is one of the columns in your database table, and it could be an integer, timestamp, float, or ID.

Key-based incremental replication only updates the replica with the changes in the source since the last replication job. During data replication, your replication tool gets the maximum value of your replication key column and stores it. During the next replication, your tool compares this stored maximum value with the maximum value of your replication key column in your source. If the stored maximum value is less than or equal to the source’s maximum value, your replication tool replicates the changes. Finally, the source’s maximum value becomes the stored value.

This process is repeated for every replication job that is key-based, continually using the replication key to spot changes in the source. This data replication strategy offers similar benefits as log-based data replication but comes with its own limitations:

  • It doesn’t identify delete operations in the source. When you delete a data entry in your table, you also delete the replication key from the source. So the replication tool is unable to capture changes to that entry.
  • There could be duplicate rows if the records have the same replication key values. This occurs because key-based incremental replication also compares values equal to the stored maximum value. So it duplicates the record until it finds another record of greater replication key.

In cases where log-based replication is not feasible or supported, key-based replication would be a close alternative. And knowing these limitations would help you better tackle data discrepancies where they occur.

Full Table Replication

Unlike the incremental data replication strategies that update based on changes to logs and the replication key maximum value, full table replication replicates the entire database. It copies everything: every new, existing, and updated row, from source to destination. It’s not concerned with any change in the source; whether or not some data changes, it replicates it.

The full table data replication strategy is useful in the following ways:

  • You’re assured that your replica is a mirror image of the source and no data is missing.
  • Full table replication is especially useful when you need to create a replica in another location so that your application’s content loads regardless of where your users are situated.
  • Unlike key-based replication, this data replication strategy detects hard deletes to the source.

However, replicating an entire database has notable downsides:

  • Because of the high volume of data replicated, full-table replication could take longer, depending on the strength of your network.
  • It also requires higher processing power and can cause latency duplicating that amount of data at every replication job.
  • The more you use full table replication to replicate to the same database, the more rows you use and the higher the cost to store all that data.
  • Low latency and high processing power while replicating data may lead to errors during the replication process.

Although full table replication isn’t an efficient way to replicate data, it’s still a viable option when you need to recover deleted data or there aren’t any logs or suitable replication keys.

Snapshot Replication

Snapshot replication is the most common data replication strategy; it’s also the simplest to use. Snapshot replication involves taking a snapshot of the source and replicating the data at the time of the snapshot in the replicas.

Because it’s only a snapshot of the source, it doesn’t track changes to the source database. This also affects deletes to the source. At the time of the snapshot, the deleted data is no longer in the source. So it captures the source as is, without the deleted record.

For snapshot replication, we need two agents:

  • Snapshot Agent: It collects the files containing the database schema and objects, stores them, and records every sync with the distribution database on the Distribution Agent.
  • Distribution Agent: It delivers the files to the destination databases.

Snapshot replication is commonly used to sync the source and destination databases for most data replication strategies. However, you may use it on its own, scheduling it according to your custom time.

Just like the full table data replication strategy, snapshot replication may require high processing power if the source has a considerably large dataset. But it is useful if:

  • The data you want to replicate is small.
  • The source database doesn’t update frequently.
  • There are a lot of changes in a short period, such that transactional or merge replication wouldn’t be an efficient option.
  • You don’t mind having your replicas being out of sync with your source for a while.

Transactional Replication

In transactional replication, you first duplicate all existing data from the publisher (source) into the subscriber (replica). Subsequently, any changes to the publisher replicate in the subscriber almost immediately and in the same order.

It is important to have a snapshot of the publisher because the subscribers need to have the same data and database schema as the publisher for them to receive consistent updates. Then the Distribution Agent determines the regularity of the scheduled updates to the subscriber.

To perform transactional replication, you need the Distribution Agent, Log Reader Agent, and Snapshot Agent.

  • Snapshot Agent: It works the same as the Snapshot Agent for snapshot replication. It generates all relevant snapshot files.
  • Log Reader Agent: It observes the publisher’s transaction logs and duplicates the transactions in the distribution database.
  • Distribution Agent: It copies the snapshot files and transaction logs from the distribution database to the subscribers.
  • Distribution database: It aids the flow of files and transactions from the publisher to the subscribers. It stores the files and transactions until they’re ready to move to the subscribers.

Transactional replication is appropriate to use when:

  • Your business can’t afford downtime of more than a few minutes.
  • Your database changes frequently.
  • You want incremental changes in your subscribers in real time.
  • You need up-to-date data to perform analytics.

In transactional replication, subscribers are mostly used for read purposes, and so this data replication strategy is commonly used when servers only need to talk to other servers.

Merge Replication

Merge replication combines (merges) two or more databases into one so that updates to one (primary) database are reflected in the other (secondary) databases. This is one key trait of merge replication that differentiates it from the other data replication strategies. A secondary database may retrieve changes from the primary database, receive updates offline, and then sync with the primary and other secondary databases once back online.

In merge replication, every database, whether it’s primary or secondary, can make changes to your data. This can be useful when one database goes offline and you need the other to operate in production, then get the offline database up to date once it’s back online.

To avoid data conflicts that may arise from allowing modifications from secondary databases, merge replication allows you to configure a set of rules to resolve such conflicts.

Like most data replication strategies, merge replication starts with taking a snapshot of the primary database and then replicating the data in the destination databases. This means that we also begin the merge replication process with the Snapshot Agent.

Merge replication also uses the Merge Agent, which commits or applies the snapshot files in the secondary databases. The Merge Agent then reproduces any incremental updates in the other databases. It also identifies and resolves all data conflicts during the replication job.

You may opt for merge replication if:

  • You’re less concerned with how many times a data object changes but more interested in its latest value.
  • You need replicas to update and reproduce the updates in the source and other replicas.
  • Your replica requires a separate segment of your data.
  • You want to avoid data conflicts in your database.

Merge replication remains one of the most complex data replication strategies to set up, but it can be valuable in client-server environments, like mobile apps or applications where you need to incorporate data from multiple sites.

Bidirectional Replication

Bidirectional replication is one of the less common data replication strategies. It is a subset of transactional replication that allows two databases to swap their updates. So both databases permit modifications, like merge replication. However, for a transaction to be successful, both databases have to be active.

Bi-DirectionalReplication-featuredgraphic

Here, there is no definite source database. Each database may be from the same platform (e.g., Oracle to Oracle) or from separate platforms (e.g., Oracle to MySQL). You may choose which rows or columns each database can modify. You may also decide which database is a higher priority in case of record conflicts, i.e., decide which database updates are reflected first.

Bidirectional replication is a good choice if you want to use your databases to their full capacity and also provide disaster recovery.

Your Data Replication Strategy Shouldn’t Slow You Down: Try Striim

Regardless of your type of application, there’s a data replication strategy that best suits your business needs. Combine any data replication strategies you want. Just ensure that the combination offers a more efficient way to replicate your databases according to your business objectives.

Every data replication strategy has one cost in common: the time it takes. Few businesses today can afford to have their systems slowed down by data management, so the faster your data replicates, the less negative impact it will have on your business.

Replicating your database may be time-consuming, and finding the right data replication tool to help speed up and simplify this process, while keeping your data safe, can be beneficial to your business.

Striim enables real time data replication
Striim is a unified real time data integration and streaming platform that connects clouds, data, and applications. With log-based change data capture from a range of databases, Striim supports real time data replication.

For fast, simple, and reliable data replication, Striim is your best bet. Striim provides real-time data replication by extracting data from databases using log-based change data capture and replicating it to targets in real time. Regardless of where your data is, Striim gets your data safely to where you need it to be and shows you the entire process, from source to destination.

Schedule a demo and we’ll give you a personalized walkthrough or try Striim at production-scale for free! Small data volumes or hoping to get hands on quickly? At Striim we also offer a free developer version.

Introducing Striim Cloud – Data Streaming and Integration as a Service

Since announcing our Series C fundraising led by Goldman Sachs we doubled down on our mission to enable companies to power their decisions in real-time, and after a year in private preview, collecting feedback from customers, testing workloads and tweaking and adjusting, we’re thrilled to announce the public launch of Striim Cloud: the industry’s first and only unified data streaming and integration fully managed service. Striim Cloud was uniquely designed to address the challenges of enterprise data streaming with an emphasis on our best-in-market change data capture, fully dedicated infrastructure (no shared data for sensitive environments), and seamless interoperability with on-premise and self-managed versions of Striim.

Cloud Architecture on Striim
Cloud Architecture on Striim

Unlike other solutions in the market, Striim Cloud leverages over 5 years of experience gained from delivering our self-managed, massively scalable streaming platform to over 100 enterprise customers and 2500 deployments in 6 continents. Striim is also led by the executive team behind GoldenGate Software.

The power of Striim Cloud is also a result of collaborating closely with incredible partners like Microsoft. “Microsoft is committed to making migration to Azure as smooth as possible, while paving the way for continuous innovation for our customers. Our goal is to build technology that empowers today’s innovators to unleash the power of their data and explore possibilities that will improve their businesses and our world,” said Rohan Kumar, Corporate Vice President, Azure Data at Microsoft. “We are pleased to work with Striim to provide our customers with a fast way to replicate their data to the Azure platform and gain mission-critical insights into data from across the organization.”

With that collaboration, we’ve made Striim Cloud available with consumption-based pricing on the Azure marketplace. Microsoft Azure customers can leverage existing investments in the Azure ecosystem to power digital transformation initiatives with real-time data.

With Striim Cloud we’re offering unprecedented speed and simplicity with the following value-adds:

  • Fast setup with schema conversion and initial load into your analytics platforms
  • Low impact change data capture built by the team from GoldenGate
  • Meet fast data SLAs (sub-second delivery) with fast data streaming and end-to-end lag monitoring
  • Low cost of ownership with fully managed, fully dedicated cloud infrastructure by Striim
  • Enterprise-level security with encrypted data at-rest and in-flight
  • Consumption-based pricing; pay only for the data you successfully move from source to target and the compute you need in that moment

But don’t take my word for it, sign up for a free trial and start powering your decisions with real-time data.

 

An Overview of Reverse ETL: A New Approach to Make Your Operational Teams More Data-Driven

data silo stats

Consider the following stats: the 2020 Vena Industry Benchmark Report found that 57% of finance teams see data silos as a challenge; Treasure Data’s Customer Journey Report noted 47% of marketers find it hard to access their information due to data silos, and a Forrester study stated that 51% of sales professionals aren’t satisfied with how their organizations provide customer data. To sum up, non-technical users are struggling with data access. So, what’s causing these data silos?

Most organizations store their data in a data warehouse. Due to the inherent structure of the extract, transform, and load (ETL) process, this data is mainly used by data scientists, data engineers, and data analysts. These roles do their best to provide data to other non-data departments like customer success, sales, and marketing. However, these non-data departments need a better form of data access and analytical insights. That’s where reverse ETL can be a game-changer.

Reverse ETL is a new addition to the modern data ecosystem that can make organizations more data-driven. It empowers operational teams to get access to transformed data in their day-to-day business platforms, such as ERPs, CRMs, and MarTech tools.

What is ETL vs. Reverse ETL?

How does Reverse ETL work?

Why Should You Adopt Reverse ETL?

Beat Your Competition with a Personalized Customer Experience

What Is ETL vs. Reverse ETL?

The ETL process takes data from a source, such as customer touchpoints (e.g., CRM), processes/transforms this data, then stores it at a target, which is usually a data warehouse. The reverse ETL does the opposite by swapping the source and destination, i.e., it takes data from the data warehouse and sends it to operational business platforms.

Another difference between ETL and reverse ETL is their approach to data transformations. With ETL, data engineers perform data transformation before loading data into a data warehouse. This data can be used by data scientists and data analysts who analyze it for different purposes, such as building reports and dashboards.

In reverse ETL, data engineers perform data transformation on the data in the data warehouse so that third-party tools can use it immediately. This data is used by marketers, sales professionals, customer success managers, and other non-data roles to make data-driven decisions.

For instance, your BI report shows cost per lead (CPL) data that you need to send to a CRM system. In that case, your data engineer has to perform data transformations via SQL in your data warehouse. This transformation isolates your CPL data, formats it for your on-site platform, and adds it into the CRM, so your marketing experts can use this data for their campaigns.

How Does Reverse ETL Work?

Reverse ETL solutions deliver real-time data to operational and business platforms (like Salesforce, Intercom, Zendesk, MailChimp, etc.). It is a process that turns your data warehouse into a data source and the operational and business platforms into a data destination. Making data readily available to these platforms can give your front-line teams a 360-degree view of customer data. They can use data-driven decision-making for personalized marketing campaigns, smart ad targeting, proactive customer feedback, and other use cases.

The modern data stack
The modern data stack. Strim (a real-time data integration and streaming ETL tool) continuously feeds data to your cloud data warehouse, where it can be processed and analyzed by members of the data team. Reverse ETL activates your data, making it accessible in platforms used by your front-line teams.

One might wonder: why are we moving the data back to those SaaS tools after moving data from them to data warehouses? That’s because sometimes, data warehouses can fail to address data silos.

Your key business metrics might be isolated in your data warehouse, limiting your non-data departments from making the most of your data. With traditional ETL, these departments are highly dependent on your data teams. They have to ask data analysts to send a report every time they need relevant insights. Likewise, once they add a new SaaS tool to their workflow, they rely on your data engineer to write custom API connectors. These issues can slow the speed of data access and availability for your front-line business users. Fortunately, reverse ETL can plug this gap.

Reverse ETL can help you to sync your KPIs (e.g., customer lifetime value) with your operational platforms. It ensures your departments can get real-time and accurate insights to pave the way for data-driven decision-making.

Why Should You Adopt Reverse ETL?

Reverse ETL solves a myriad of issues by democratizing data access, saving your data resources, and automating workflows.

It democratizes data beyond the data team

Reverse ETL enables data teams to channel data insights to other operational business teams in their usual workflow. Data becomes accessible and actionable because it is streamed directly from the data warehouse to platforms like CRMs, advertising, marketing automation, and customer support ticketing systems.

Providing more in-depth knowledge to the front-line team, such as your customer success team, can help your team members to make better decisions. It ensures that your front-line personnel are now equipped with comprehensive insights that can help them to personalize the customer experience. For instance, your data science team used complex modeling to segment your customer data, which is updated every week. Your customer success team can use reverse ETL to import this data automatically to an email platform and send personalized emails.

It reduces the engineering burden on data engineers

Traditionally, data engineers will have to build API connectors to channel data from the data warehouse to the operational business platforms. These API connectors come with a myriad of challenges, which include:

  1. Writing APIs and maintaining them is challenging for data engineers.
  2. It can take a few days to map fields from a source of truth (e.g.,data lake) to a SaaS app.
  3. Often, these APIs are unable to process real-time data transfer.

Reverse ETL is designed to address these challenges. For starters, these reverse ETL tools come with built-in connectors. For this reason, data teams don’t have to write API connectors and maintain them. Previously, data teams might have only written a limited number of connectors. However, reverse ETL’s out-of-the-box connectors mean that companies can send data into more systems now.

Moreover, ETL tools consist of a visual interface that allows you to populate SaaS fields automatically. Reverse ETL tools can help you to define what triggers the movement of data between your data warehouse and operational business platforms to move data in real time.

As a result, you can save your data engineers’ time, and they can now turn their focus to other pressing data issues.

It automates and distributes data flow across multiple apps

Reverse ETL eliminates the manual process of switching between apps to get information. Reverse ETL feeds relevant KPIs and metrics to the operational systems at a pre-established frequency. This way, it can automate a number of workflows.

For instance, consider that your sales team uses Zendesk Sell as a CRM. One of the things that they do manually is to track freemium accounts and look for ways to turn them into paid users. For this purpose, your account managers need to jump back and forth between BI and CRM tools to view where these users are placed in the sales funnel.

What reverse ETL can do is to load your product data into Zendesk from your data warehouse and generate an alert that notifies the account managers as soon as a freemium account crosses a defined threshold in your sales funnel.

While Reverse ETL has many benefits, the long-term payoff is in an improved customer experience. By addressing ETL’s woes, reverse ETL puts contextual information at the fingertips of your customer-facing teams. The end result is a seamless, personalized service that enriches the customer experience.

Beat Your Competition With a Personalized Customer Experience

Every organization wants to get the most value out of the data in their data warehouse — because therein lies the answers to serving customers better and creating hyper-personalized experiences. By feeding comprehensive insights to the front-line teams, reverse ETL can help you to improve your customer personalization.

Suppose there’s a winter clothing brand that has the data to identify buyers who bought their winter coats last winter. If they want to launch a winter sale for their previous customers, reverse ETL can help their marketing teams to view detailed information from their tools. This is done by pulling the relevant data directly from the data warehouse and placing it in the software they are already using. They can use this data access to work on a hyper-personalized marketing campaign to appeal to those customers. Hence, by using reverse ETL, you can get a unified view of the customer in all your tools.

In many cases, data has a short shelf life, and needs to be acted on quickly. For example, SaaS companies that follow the Product Led Growth (PLG) model continuously collect product usage data. If a user hits a key milestone in product usage, or gets stuck at a certain point, this information can be shared with the sales or customer support teams for personalized outreach and support at exactly the right moment. Waiting hours or days to act on insights may mean a lost customer or upgrade opportunity.

A real-time data pipeline starts with a streaming ETL platform like Striim that continuously delivers data to your data warehouse. Once there, customer data can be synced to your applications to support your customer-facing team members. Real-time data pipelines underpin superior customer experiences and increased revenue.

To learn more about how Striim supports real-time data integration use cases, please get in touch or try Striim for free today.

 

What Is DataOps and How Can It Add Value to Your Organization?

data

According to a study by Experian, 98% of companies rely on data to enhance their customer experience. In today’s data age, getting data analytics right is more essential than ever. Organizations compete based on how effective their data-driven insights are at helping them with informed decision-making.

However, executing analytics projects is a bane for many. According to Gartner, more than 60% of data analytics projects bite the dust due to fast-moving and complex data landscapes.

Recognizing the modern data challenges, organizations are adopting DataOps to help them handle enterprise-level datasets, improve data quality, build more trust in their data, and exercise greater control over their data storage and processes.

What Is DataOps?

DataOps is an integrated and Agile process-oriented methodology that helps you develop and deliver analytics. It is aimed at improving the management of data throughout the organization.

There are multiple definitions of DataOps. Some think it’s a magic bullet that solves all data management issues. Others think that it just introduces DevOps practices for building data pipelines. However, DataOps has a broader scope that goes beyond data engineering. Here’s how we define it:

DataOps is an umbrella term that can include processes (e.g., data ingestion), practices (e.g., automation of data processes), frameworks (e.g., enabling technologies like AI), and technologies (e.g., a data pipeline tool) that help organizations to plan, build, and manage distributed and complex data architectures. This includes management, communication, integration and development of data analytics solutions, such as dashboards, reports, machine learning models, and self-service analytics.

DataOps aims to eliminate silos between data, software development, and DevOps teams. It encourages line-of-business stakeholders to coordinate with data analysts, data scientists, and data engineers.

The goal of DataOps is to use Agile and DevOps methodologies to ensure that data management aligns with business goals. For instance, an organization sets a target to increase their lead conversion rate. DataOps can make a difference by creating an infrastructure that provides real-time insights to the marketing team, which can convert more leads.

In this scenario, an Agile methodology can be useful for data governance, where you can use iterative development to develop a data warehouse. Likewise, it can help data science teams use continuous integration and continuous delivery (CI/CD) to build environments for the analysis and deployment of models.

DataOps Can Handle High Data Volume and Versatility

Companies have to tackle high amounts of data compared to a few years ago. They have to process it in a wide range of formats (e.g., graphs, tables, images), while their frequency of using that data varies, too. For example, some reports might be required daily, while others are needed on a weekly, monthly, or ad-hoc basis. DataOps can handle these different types of data and tackle varying big data challenges.

With the advent of the Internet of Things (IoT), organizations have to tackle the demons of heterogeneous data as well. This data comes from wearable health monitors, connected appliances, and smart home security systems.

To manage the incoming data from different sources, DataOps can use data analytics pipelines to consolidate data into a data warehouse or any other storage medium and perform complex data transformations to provide analytics via graphs and charts.

DataOps can use statistical process control (SPC) — a lean manufacturing method — to improve data quality. This includes testing data coming from data pipelines, verifying its status as valid and complete, and meeting the defined statistical limits. It enforces the continuous testing of data from sources to users by running tests to monitor inputs and outputs and ensure business logic remains consistent. In case something goes wrong, SPC notifies data teams with automated alerts. This saves them time as they don’t have to manually check data throughout the data lifecycle.

DataOps Can Secure Cloud Data

Around 75% of companies are expected to move their databases into the cloud by 2022. However, many organizations struggle with data protection after migrating their data to the cloud. According to a survey, 70% of companies have to deal with a security breach in the public cloud.

DataOps borrows some of its elements from DevSecOps — short for development, security, and operations. This fusion is also known as DataSecOps, which can help with data protection. DataSecOps brings a security-focused approach where security is embedded in all data operations and projects from the start.

DataSecOps offers security by focusing on five areas:

  1. Awareness – Improve the understanding of data sets and their sensitivity by using data dictionaries or data catalogs.
  2. Policy – Incorporate and uphold a data access policy that makes it crystal clear who can access data and what form of data they can access.
  3. Anonymization – Introduce anonymization into the data access’ security layer, ensuring that business users, who aren’t supposed to view personal identifiable information (PII) data, aren’t able to see it in the first place.
  4. Authentication – Provide a user interface for managing data access and tools.
  5. Audit – Offer the ability to track, report, and audit access when required, as well as develop and monitor access control.

DataOps Can Improve Time to Value

The time it takes to turn a raw idea into something of value is integral to businesses. DataOps reduces lead time with its Agile-based development processes. The waiting time across phases decreases too. In addition, the approach of building and making releases in small fragments enables solutions to be implemented in a gradual manner.

If you develop data solutions at a slow pace, then it might lead to shadow IT. Shadow IT happens when other departments build their own solutions without the approval or involvement of the IT department.

DataOps can increase your development speed by getting feedback to you faster via sprints. Sprints are short iterations where a team is tasked with completing a specific amount of work. A sprint review occurs at the end of each sprint, which allows continuous feedback from data consumers. This feedback also brings more clarity by allowing the feedback to steer the development and create a solution that your data consumer wants.

DataOps Can Automate Repetitive and Menial Tasks

Around 18% of a data engineer’s time is spent on troubleshooting. DataOps brings a focus to automation to help data professionals save time and focus on more valuable high-priority tasks.

Consider one of the most common tasks in the data management lifecycle: data cleaning. Some data professionals have to manually modify and remove data that is incomplete, duplicate, incorrect, or flawed in any way. This process is repetitive and doesn’t require any critical thinking. You can automate it by either setting your customized scripts or installing a built-in data cleaning software.

Some other processes that can be automated include:

  • Simplifying data maintenance tasks like tuning a data warehouse
  • Streamlining data preparation tasks with a tool like KNIME
  • Improving data validation to identify flags and typos, such as types and range

Build Your Own DataOps Architecture with Striim

streaming data pipeline
Striim is a real-time data integration platform that connects over 100 sources and targets across public and private clouds

To develop your own DataOps architecture, you need a reliable set of tools that can help you improve your data flows, especially when it comes to key aspects of DataOps, like data ingestion, data pipelines, data integration, and the use of AI in analytics. Striim is a unified real-time data integration and streaming platform that integrates with over 100 data sources and targets, including databases, message queues, log files, data lakes, and IoT. Striim ensures the continuous flow of data with intelligent data pipelines that span public and private clouds. To learn more about how you can implement DataOps with Striim, get a free demo today

Striim Now Offers Native Integration With Microsoft Azure Cosmos DB

We are excited to announce our new Striim Database Migration Service, StreamShift that provides native integration with Microsoft Azure Cosmos DB. We have worked hard to resolve any pain points around data integration, migration and data analytics for Azure Cosmos DB users. Striim provides a rich user experience, cost effective data movement, enhanced throughput throttling, and flexibility with over 100 native connectors.

Problem

Traditional ETL data movement methods are not suitable for today’s analytics or database migration needs. Batch ETL methods introduce latency by periodically reading from the source data service and writing to target data warehouses or databases after a scheduled time. Any analytics or conclusions made from the target data service are done on old data, delaying business decisions, and potentially creating missed business opportunities. Additionally, we often see a hesitancy to migrate to the cloud where users are concerned of taking any downtime for their mission critical applications. 

Azure Cosmos DB users need native integration that supports relational databases, non-relational and document databases as sources and offers flexibility to fine-tune Azure Cosmos DB target properties.

Striim’s latest integration with Cosmos DB solves the problem

The Striim software platform offers continuous real-time data movement from a wide range of on-premises and cloud-based data sources to Azure. While moving the data, Striim has in-line transformation and processing capability (e.g., denormalization). You can use Striim to move data into the main Azure services, such as Azure Synapse, Azure SQL Database, Azure Cosmos DB, Azure Storage, Azure Event Hubs, Azure Database for MySQL and Azure Database for PostgreSQL, Azure HDInsight, in a consumable form, quickly and continuously. 

Striim offers real-time uninterrupted continuous data replication with automatic data validation, which assures zero data loss and data corruption.

Even though Striim can move data to various other Azure targets, in this blog we will focus on Azure Cosmos DB use cases that were recently released.

Supported sources for Azure Cosmos DB as a target:

Source Target
SQL Azure Cosmos DB
MongoDB Azure Cosmos DB
Cassandra Azure Cosmos DB
Oracle Azure Cosmos DB
MySQL Azure Cosmos DB
PostgreSQL Azure Cosmos DB
Salesforce Azure Cosmos DB
HDFS Azure Cosmos DB
MSJet Azure Cosmos DB

Architecture

The architecture below shows how Striim can replicate data from a range of sources including heterogeneous databases to various targets on Azure. However, this blog will focus on Azure Cosmos DB.

Striim for Azure

 

Low-Impact Change Data Capture

Striim uses CDC (Change Data Capture) to extract change data from the database’s underlying transaction logs in real time, which minimizes the performance load on the RBMS by eliminating additional queries. 

  • Non-stop, non-intrusive data ingestion for high-volume data
  • Support for data warehouses such as Oracle Exadata, Teradata, Amazon Redshift; and databases such as Oracle, SQL Server, HPE Nonstop, MySQL, PostgreSQL, MongoDB, Amazon RDS for Oracle, Amazon RDS for MySQL
  • Real-time data collection from logs, sensors, Hadoop, and message queues to support operational decision making

Continuous Data Processing and Delivery

  • In-flight transformations – including denormalization, filtering, aggregation, enrichment – to store only the data you need, in the right format 

Built-In Monitoring and Validation

  • Interactive, live dashboards for streaming data pipelines
  • Continuous verification of source and target database consistency
  • Real-time alerts via web, text, email

Use case: Replicating On-premises MongoDB data to Azure Cosmos DB

Let’s take a look at how to migrate data from MongoDB to the Azure Cosmos DB API for MongoDB within Striim. Using the new native Azure Cosmos DB connector users can now set properties like collections, RUs, partition key, exclude collections, batch policy, retry policy, etc. before replication.

To get started, in your Azure Cosmos DB instance, create a database mydb containing the collection employee with the partition key /name.

After installing Striim either locally or through the Azure Marketplace, you can take advantage of the Web UI and wizard-based application development to migrate and replicate data to Azure Cosmos DB in only a few steps.

  1. Choose MongoDB to Azure Cosmos DB app from applications available on Striim
  2. Enter your source MongoDB connection details and select the databases and collections to be moved to Azure Cosmos DB.
  3. Striim users now will have customized options to choose the Azure Cosmos DB target APIs between Mongo, Cassandra, or Core (SQL). Throughput (RU/s) calculation and cost can be calculated using Azure Cosmos DB capacity calculator and appropriate partition key must be chosen for the target. The details can be referred directly within Striim’s configuration wizard.
  4. Enter the target Azure Cosmos DB connection details and map the MongoDB to Azure Cosmos DB collections.

That’s it! Striim will handle the rest from validating the connection string and properties required for the data pipeline to automatically moving the data validating the data on the target. After completing the wizard, you’ll arrive at the Flow Designer page, and start seeing data replicated in real time.

Let’s take another example, say we have an on-premises Oracle database with the customer table shown below. While migrating this Oracle database to Azure Cosmos DB we may want to mask or hide the customer Telephone number and SSN columns. 

In two simple steps, we can achieve this in flight with Striim. 

Step 1 – Create App: Within the Striim UI create an application with a source Oracle Reader. In the left-hand menu bar under the Event Transformers tab, drag and drop the To DB Event Transformer. Then, drag and drop the Field Masker onto the pipeline and specify the fields to be masked. Insert type conversion of WA event type to Typed event and create Field Mask component and select the fields to be masked. In our case we want the Telephone number field to be partially masked and SSN to be fully masked. Lastly, drag and drop a Cosmos DB Target to write to Cosmos DB.

Step 2 – Run App: Deploy and run the app. Check the target Azure Cosmos DB Data Explorer you should see the customer phone number and SSN are masked.

Instead of using these out of the box transformations within the UI, you can also write SQL statements using a Continuous Query (CQ), or Java code using an Open Processor (OP) component. The OP can also be used to merge multiple source documents into a single Azure Cosmos DB document. For our example, you can use the attached SQL statement in a CQ instead of the two transformation components.  

SELECT CUSTOMER_ID AS CUSTOMER_ID, 
FIRST_NAME AS FIRST_NAME, 
LAST_NAME AS LAST_NAME, 
CITY_NAME AS CITY_NAME, 
ADDRESS AS ADDRESS, 
maskCreditCardNumber(TELEPHONE_NUMBER, “ANONYMIZE_PARTIALLY”) AS TELEPHONE_NUMBER, 
maskCreditCardNumber(SSN, “ANONYMIZE_COMPLETELY”) AS SSN FROM converted_events2 i;
Source table
Source table

 

Striim flow design
Striim flow design

 

Target Cosmos DB Data explorer output
Target Cosmos DB Data explorer output

 

Benefits

  • Purpose-built service with specific configuration parameters to control scale, performance and cost
  • Driving continuous cloud service consumption through ongoing data flow (vs. scheduled batch load).
  • In-flight transformations – including denormalization, filtering, aggregation, enrichment – to store only the data you need, in the right format 
  • Allowing low-latency data to be available in Azure for more valuable workloads.
  • Mitigating risks in Azure adoption by enabling a phased transition, where customers can use their existing and new Azure systems in parallel. Striim can move real-time data from customers’ existing data warehouses such as Teradata and Exadata, and on-prem or cloud-based OLTP systems, such as Oracle, SQLServer, PostgreSQL, MySQL, and HPE Nonstop using low-impact change data capture (CDC).

Interested in learning more about Striim’s native integration with Azure Cosmos DB? Please visit our listing on the Azure Marketplace.

DataOps vs DevOps: An Overview of the Twins of Digital Transformation

data ops vs dev ops

If you’re comparing DataOps vs DevOps for a practical digital transformation approach, you’re engaging in the wrong debate. Sure DevOps has revolutionized how companies deliver software. But, DataOps is transforming how companies utilize data. So instead, the better question should be: How can I use both DevOps and DataOps to enhance the value I deliver to my customers?

Regardless of the size of your enterprise or the industry you operate in, a good understanding of DevOps and DataOps principles, differences, use cases, and how they fit together is instrumental to accelerating product development and improving your technology processes.

What is DevOps?

Development Operations (or DevOps) combines principles, technologies, and processes that improve and accelerate an organization’s capacity to produce high-quality software applications, allowing it to evolve and improve products faster than traditional software development methods.

How DevOps Fits Into The Technology Stack

Fundamentally, DevOps is about improving the tools and processes around delivering software. In the traditional software development model, the development and operations teams are separate. The development team focuses on designing and writing software. The operations team handles other processes not directly related to writing code, such as software deployments, server provisioning, and operational support. However, the disadvantages to this approach are that the development team has to depend on the operations team to ship out new features, which leads to slower deployments.

Additionally, when bug fixes and problems arise, the operations team has to depend on the development team to resolve them; this leads to a longer time to detect and resolve issues and ultimately affects software quality. Consequently, the DevOps model came as a solution to these pain points.

In a DevOps model, the development and operations teams no longer work in isolation. Often, these two teams combine into a single unit where the software engineers work on the entire application cycle, from development and testing to deployment and operations, to deliver the software faster and more efficiently. Larger companies often have specialized “DevOps engineers” whose primary purpose is to build, test, and maintain the infrastructure and tools that empower software developers to release high-quality software quickly. 

What is DataOps?

Data Operations (or DataOps) is a data management strategy that focuses on improving collaboration, automation, and integration between data managers and consumers to enable quick, automated, and secure data flows (acquisition, transformation, and storage) across an organization. Its purpose is to deliver value from data faster by enabling proper data management and bringing together those who require data and those who operate it, removing friction from the data lifecycle.

How DataOps Fits Into The Technology Stack

The primary purpose of DataOps is to deliver value from data faster by streamlining and optimizing the management and delivery of data, thereby breaking down the traditional barriers that prevent people from accessing the data they need. 

According to a recent study by VentureBeat, lack of data access is one of the reasons why 87% of data science projects never make it to production. For instance, data consumers like data scientists and analysts responsible for utilizing data to generate insights depend on data operators such as database administrators and data engineers to provide data access and infrastructure. For example, take a data scientist who has to rely on a data engineer to clean and validate the data and set up the required environment to run the ML(machine learning) models. In this case, the faster the data scientists get their requirements met, the quicker they can start delivering value on projects.

Additionally, a data scientist who doesn’t understand how the data engineer collected and prepared their data will waste time making inferences out of the noise. Similarly, a data engineer who doesn’t understand the use cases of their data will create unusable data schemas and miss crucial data quality issues. Consequently, the DataOps process came to mitigate these data pain points.

DataOps takes this cluttered mess and turns it into a smooth process where data teams aren’t spending their time trying to fix problems. Instead, they can focus on what matters: providing actionable insights. DataOps relies heavily on the automation capabilities of DevOps to overcome data friction. For example, suppose the processes such as server provisioning and data cleaning are automated. A data scientist can easily access the data they need to run their models, and analysts can run reports in minutes and not days. Larger companies often have specialized “DataOps engineer” roles whose purpose is to automate data infrastructure needs and build, create and deploy tools that help data consumers utilize data quickly to deliver value to the enterprise.

DataOps and DevOps: Overlapping Principles

DevOps and DataOps share some underlying principles. They require a cultural shift from isolation to collaboration. They both depend heavily on tools and technologies for process automation, and they both employ agile methodologies that support incremental delivery. As such, both DevOps and DataOps represent a sweeping change to the core areas of culture, process, and technology.

  • Culture: DevOps and DataOps require a change in culture and mindset, focused on collaboration and delivering value instead of isolation and performing functions. In both cases, every team works together towards a common goal – delivering value. DevOps is about removing the barriers that prevent software from being deployed fast. For DataOps, it is breaking down obstacles that prevent people from managing and accessing data quickly. 
  • Process: DevOps and DataOps require an end-to-end revision of traditional methods focusing on automation and continuous improvement. Both DevOps and DataOps leverage continuous integration and delivery(CI/CD) in their processes. In the case of DevOps, the software is merged into a central repository, tested, built, and deployed to various environments(test and production). In the case of DataOps, CICD involves setting up workflows that automate various data processes such as uploading, cleaning, and validating data from source to destination.
  • Technology. DevOps and DataOps rely heavily on tools to provide complete automation for different workflows(development, testing, deployment, monitoring). For DevOps, tools such as Jenkins and Ansible help automate the entire application lifecycle from development to deployment. In the case of DataOps, platforms like Apache Airflow and DataKitchen help organizations control their data pipelines from data orchestration to deployment. Additionally, data integration tools like Striim automate data integration from multiple sources, helping organizations quickly access their data.

DataOps vs DevOps: Differences and Use Cases

Although DevOps and DataOps have similarities, one mistake companies make when comparing them is thinking they are the same thing. They tend to take everything they have learned about DevOps, apply it to “data,” and present it as DataOps; this misconception can add needless complexity and confusion and fails to reap the benefits of DataOps processes. Some differences between DevOps and DataOps are:

  • DevOps focuses on optimizing the software delivery; DataOps focuses on optimizing data management and access.
  • DevOps involves primarily technical people- software engineers, testers, IT operations team. In contrast, the participants in DataOps are a mix of technical(data engineers, data scientists) and non-technical people (business users and other stakeholders).
  • DevOps requires somewhat limited coordination once set up. However, because of the ever-changing nature of data, its use cases (and everyone who works with it). DataOps requires the consistent coordination of data workflows across the entire organization.

While foundationally, the concepts of DevOps serve as a starting point for DataOps, the latter involves additional considerations to maximize efficiency when operating data and analytical products. 

Each approach has its unique strengths, making it the best choice for different scenarios.

Top DevOps Use Cases

  • Faster development of quality software: One of the top use cases of DevOps is in shipping software products faster. Google’s 2021 State of DevOps report stated that DevOps teams now deploy software updates 973x more frequently than traditional development teams. Additionally, Netflix reported faster and more quality software deployments after switching to DevOps. They implemented a model where all software developers are “Full cycle developersand responsible for the entire application lifecycle. The result was a boost in the speed of software deployments from days to hours.
  • Improved Developer Productivity: Organizations that have implemented DevOps have seen an increase in the productivity of their development teams. By automating the underlying infrastructure to build, test and deploy applications, developers can focus on what matters – building quality solutions. By implementing DevOps practices, Spotify boosted its developer productivity by 99%. Time to develop and deploy websites and backend services went from 14 days to 5 minutes.

Top DataOps Use Cases

  • Accelerates Machine Learning and Data Analytics Workloads: The main goal of DataOps is to remove barriers that prevent people from accessing data. A recent survey by McKinsey reported that organizations spend 80 percent of their analytics time on repetitive tasks such as preparing data. When such repetitive tasks are automated, data consumers like data scientists and data analysts can access data faster to perform machine learning and data analytics workloads. In a recent case study by Data Kitchen, pharmaceutical company Celgene saw improvements in the development and deployment of analytics processes and the quality of the insights after implementing DataOps. Visualizations that took weeks/months were now taking less than a day.
  • Improved Data Quality: Ensuring data quality is of utmost importance to any enterprise. In a study by Gartner, organizations surveyed reported that they lose close to $15 million per annum due to poor data quality. By implementing DataOps practices, companies can improve the quality of data that flows through the organization and save costs. In 2019, Airbnb embarked on a data quality initiative to rebuild the processes and technologies of their data pipelines. They automated the data validation and anomaly detection by leveraging tools that enabled extensive data quality and accuracy in their data pipelines. 
  • Maintain Data Freshness Service Level Agreements: Data has entered a new stage of maturity where data teams must adhere to strict Service Level Agreements (SLAs). Data must be fresh, accurate, traceable, and scalable with maximum uptime so businesses can react in real time to business events and ensure superior customer experiences. By incorporating DataOps practices, companies can ensure that data is dispersed across business systems with minimal latency. For example, Macy’s uses Striim to meet the demands of online buyers by replicating inventory data with sub-second latency, allowing them to scale for peak holiday shopping workloads.

Use Both DevOps and DataOps For The Best Of Both Worlds

Both DevOps and DataOps teams depend on each other to deliver value. Therefore, companies get the best success by incorporating DevOps and DataOps in their technology stack. The result of having both DevOps and DataOps teams working together is accelerated software delivery, improved data management and access, and enhanced value for the organization.

As you begin your digital transformation journey, choose Striim. Striim makes it easy to continuously ingest and manage all your data from different sources in real-time for data warehousing. Sign up for your free trial today!

A Brief Overview of the Data Lakehouse

Both data warehouses and data lakes have been serving companies well for a long time. Despite their pros, each also has its limitations. That’s why data architects envision a single system to store and use data for varying workloads. This is where a data lakehouse has emerged as a major problem-solver in the last few years.

A data lakehouse can help organizations move past the limitations of data warehouses and data lakes. It lets them reach a middle ground where they can get the best of both worlds in terms of data storage and data management.

What is a data lakehouse?

A data lakehouse shores up the gaps left by data warehouses and data lakes — two commonly used data architectures. To understand how a data lakehouse works, let’s first take a brief look at data warehouses and data lakes.

Defining data warehouses

A data warehouse collects data from various data sources within an organization to extract information for analysis and reporting. Usually, data warehouses pull data from databases, which have a specific structure known as schema. This data gets processed into a different database format that’s optimized for BI (business intelligence) use cases, where it’s more effective for complex queries.

This data warehouse process has its advantages. It prioritizes certain factors, such as the integrity of the provided data. However, this approach comes with several drawbacks, including the higher costs due to maintenance and vendor lock-in, necessitating the need for more cost-effective data management approaches. 

Defining data lakes

The data lake was invented in 2010 and rapidly gained mainstream adoption throughout the 2010s. Unlike a data warehouse, a data lake is more adept at processing unstructured data, so it can be used for data analytics. This is the data companies can gather from web scraping, web APIs, or files that don’t follow the structure of a relational database.

In addition, data lakes store data at a more affordable rate. That’s because data lake is installed on low-cost hardware and uses open-source software. But data lakes don’t offer all the features offered by a data warehouse. Consequently, contrary to a data warehouse, the data might be lacking in terms of integrity, quality, and consistency.

Combining the advantages of both into a data lakehouse

A data lakehouse offers the best of both worlds by combining the best aspects of data warehouses and data lakes. Similar to a data warehouse, it offers schema support for structured data and keeps data consistent by supporting ACID transactions.

And like data lakes, a data lakehouse can handle unstructured, semi-structured, and structured data. This data can be stored, transformed, and analyzed for text, audio, video, and images. Finally, data lakehouses offer a more affordable method of storing large volumes of data because they utilize the low-cost object storage options of data lakes to cut costs.

What problems can a data lakehouse solve?

Many organizations use data warehouses and data lakes with plenty of success. However, certain problems show up in certain cases.

  • Data duplication: If a company uses many data warehouses and a data lake, then it’s bound to create data redundancy — when the same piece of data is stored in two or more separate places. Not only is it inefficient, but it may also cause data inconsistency (when the same data is stored in different versions in more than one table). A data lakehouse can help consolidate everything, remove additional copies of data, and create a single version of truth for the company.
  • Siloes between analytics and BI: Data scientists use analytics techniques on data lakes to go through unsorted data, while BI analysts use a data warehouse. A data lakehouse helps both teams to work within a single and shared repository. This aids in reducing data silos.
  • Data staleness: According to a survey by Exasol, 58% of companies make decisions based on outdated data. Data warehouses are part of the problem because it is generally expensive to constantly process and refresh real-time data. A data lakehouse supports reliable and convenient integration of real-time streaming along with micro-batches. This makes sure that analysts can always use the latest data.

The common features of a data lakehouse

A data lakehouse aims to improve efficiency by building a data warehouse on data lake technology. According to a paper from Databricks, a data lakehouse does this by providing the following features:

  • Extended data types: Data lakehouses have access to a broader range of data than data warehouses, allowing them to access system logs, audio, video, and files.
  • Data streaming: Data lakehouses allow enterprises to perform real-time reporting by supporting streaming analytics. Especially when used with streaming data integration products like Striim in concert. 
  • Schemas: Unlike data lakes, data lakehouses apply schemas to data, which helps in the standardization of high volumes of data.
  • BI and analytics support: BI and analytics professionals can share the same data repository. Since a data lakehouse’s data goes through cleaning and integration, it’s useful for analytics. Also, it can store more updated data than a data warehouse. This enhances BI quality.
  • Transaction support: Data lakehouses can handle concurrent write and read transactions and thus can work with several data pipelines.
  • Openness: Data lakehouses support open storage formats (e.g., Parquet). This way, data professionals can use R and Python to access it easily.
  • Processing/storage decoupling: Data lakehouses reduce storage costs by using clusters that run on cheap hardware. A lakehouse can offer data storage in one cluster and query execution on a separate cluster. This decoupling of processing and storage can help to make the most of resources.

Layers in a data lakehouse

Based on Amazon and Databricks data lakehouse architectures, a data lakehouse can have five layers, as shown below:

data lakehouse architecture

 

1- Ingestion layer

The first layer pulls data from multiple data sources and delivers it to the storage layer. The layer uses different protocols to link to a variety of external and internal sources, such as CRM applications, relational databases, and NoSQL databases.

2- Storage layer

The storage layer stores open-source file formats to store unstructured, semi-structured, and structured data. A lakehouse is designed to accept all types of data as objects in affordable object stores (e.g., AWS S3).

You can use open file formats to read these objects via the client tools. As a result, consumption layer components and different APIs can access and work with the same data.

3- Metadata layer

The metadata layer is a unified catalog that encompasses metadata for data lake objects. This layer provides the data warehouse features that are accessible in relational database management systems (RDBMS). For instance, you can create tables, implement upserts, and define features that enhance RDBMS performance.

4- API Layer

This layer is used to host different APIs to allow end-users to process tasks quickly and take advantage of advanced analytics. This layer produces a level of abstraction that enables consumers and developers to get the benefit from using a plethora of languages and libraries. These APIs and libraries are optimized to consume your data assets in your data lake layer (e.g., DataFrames APIs in Apache Spark).

5- Data consumption layer

This layer is used to host different tools and applications, such as Tableau. Client applications can use the data lakehouse architecture to access data stores in the data lake. Employees within a company can use the data lakehouse to perform different analytics activities, such as SQL queries, BI dashboards, and data visualization.

Leverage a data lakehouse for the right use cases

A data lakehouse isn’t a silver bullet that’ll address all your data-related challenges. It can be tricky to build and maintain a data lakehouse due to its monolithic architecture. In addition, its one-size-fits-all design might not always provide the same quality that you can get with other approaches that are designed to tackle more specific use cases. 

On the other hand, there are many scenarios where a data lakehouse can add value to your organization. Data lakehouses can help you to stage all your data in a single tier. You can then optimize this data for various types of queries on unstructured and structured data. For example, if you’re looking to use both AI and BI, then the versatility of a data lakehouse can be useful. You can also use a data lakehouse to address the data inconsistency and redundancy caused by multiple systems. For more details, go through this comparison and decide which data management solution is best for you. 

Data Observability: What Is It and Why Is It Important?

Data observabilityData has become one of the most valuable assets in modern times. As more companies rely on insights from data to drive critical business decisions, this data must be accurate, reliable, and of high quality. A study by Gartner predicts that only 20% of analytic insights will deliver business outcomes, with this other study citing poor data quality as the number one reason why the anticipated value of all business initiatives is never achieved.

Gaining insights from data is essential, but it is also crucial to understand the health of the data in your system to ensure the data is not missing, incorrectly added, or misused. That’s where data observability comes in. Data observability helps organizations manage, monitor, and detect problems in their data and data systems before they lead to “data downtimes,” i.e., periods when your data is incomplete or inaccurate.

What is Data Observability?

Data observability refers to a company’s ability to understand the state of its data and data systems completely. With good data observability, organizations get full visibility into their data pipelines. Data observability empowers teams to develop tools and processes to understand how data flows within the organization, identify data bottlenecks, and eventually prevent data downtimes and inconsistencies.

The Five Pillars of Data Observability

The pillars of data observability provide details that can accurately describe the state of the organization’s data at any given time. These five pillars make a data system observable to the highest degree when combined. According to Barr Moses – CEO of  Monte Carlo Data – there are the five pillars of data observability:

  1. Freshness: Ensuring the data in the data systems is up to date and in sync is one of the biggest issues modern organizations face, especially with multiple and complex data sources. Having data freshness in your data observability stack helps monitor your data system for data timeline inconsistencies and ensures your organization’s data remains up to date. 
  2. Distribution: Data accuracy is critical for building quality and reliable data systems. Distribution refers to the measure of variance in the system. If data wildly varies in the system, then there is an issue with the accuracy. The distribution pillar focuses on the quality of data produced and consumed by the data system. With distribution in your data observability stack, you can monitor your data values for inconsistencies and avoid erroneous data values being injected into your data system.
  3. Volume: Monitoring data volumes is essential to creating a healthy data system. Having the volume pillar in your data observability stack answers questions such as “Is my data intake meeting the estimated thresholds?” and “Is there enough data storage capacity to meet the data demands?” Keeping track of volume helps ensure data requirements are within defined limits.
  4. Schema: As the organization grows and new features are added to the application database, schema changes are inevitable. However, changes to the schema that aren’t well managed can introduce downtimes in your application. The schema pillar in the data observability stack ensures that database schema such as data tables, fields, columns, and names are accurate, up to date, and regularly audited.
  5. Lineage: Having a full picture of your data ecosystem is essential for managing and monitoring the pulse of your data system. Lineage refers to how easy it is to trace the flow of the data through our data systems. Data lineage answers questions such as “how many tables do we have?” “how are they connected?” “what external data sources are we connecting to?” Data lineage in your data observability stack combines the other four pillars into a unified view allowing you to create a blueprint of your data system.

Why Is Data Observability Important?

Data observability goes beyond monitoring and alerting; it allows organizations to understand their data systems fully and enables them to fix data problems in increasingly complex data scenarios or even prevent them in the first place.

Data observability enhances trust in data so businesses can confidently make data-driven decisions

Data insights and machine learning algorithms can be invaluable, but inaccurate and mismanaged data can have catastrophic consequences.

For example, in October 2020, Public Health England (PHE), which tallies daily new Covid-19 infections, discovered an Excel spreadsheet error that caused them to overlook 15,841 new cases between September 25 and October 2. The PHE reported that the error was caused by the Excel spreadsheet used to collect the data reaching its data limit. As a result, the number of daily new instances was far larger than initially reported, and tens of thousands of people who tested positive for Covid-19 were not contacted by the government’s “test and trace” program. 

Data observability helps monitor and track situations quickly and efficiently, enabling organizations to become more confident when making decisions based on data.

Data observability helps timely delivery of quality data for business workloads

Ensuring data is readily available and in the correct format is critical for every organization. Different departments in the organization depend on quality data to carry out business operations — data engineers, data scientists, and data analysts depend on data to deliver insights and analytics. Lack of accurate quality data could result in a breakdown in business processes that can be costly.

For example, let’s imagine your organization runs an ecommerce store with multiple sources of data (sales transactions, stock quantities, user analytics) that consolidate to a data warehouse. The sales department needs sales transactions data to generate financial reports. The marketing department depends on user analytics data to effectively conduct marketing campaigns. Data scientists depend on data to train and deploy machine learning models for the product recommendation engine. If one of the data sources is out of sync or incorrect, it could harm the different aspects of the business.

Data observability ensures the quality, reliability, and consistency of data in the data pipeline by giving organizations a 360-degree view of their data ecosystem, allowing them to drill down and resolve issues that can cause a breakdown in your data pipeline.

Data observability helps you discover and resolve data issues before they affect the business

One of the biggest flaws with pure monitoring systems is they only check for “metrics” or unusual conditions you anticipate or are already aware of. But what about cases you didn’t see coming?

In 2014, Amsterdam’s city council lost €188 million due to a housing benefits error. The software the council used to disburse housing benefits to low-income families was programmed in cents rather than euros, which inadvertently caused the error. The software error caused families to receive significantly more than they expected. People who would typically receive €155 ended up receiving €15,500. More alarming, in this case, is that nothing in the software alerted administrators of the error.

Data observability detects situations you aren’t aware of or wouldn’t think to look for and can prevent issues before they seriously affect the business. Data observability can track relationships to specific issues and provide context and relevant information for root cause analysis and remediation.

A new stage of maturity for data

Furthermore, the rise of Data Observability products like Monte Carlo Data demonstrate that data has entered a new stage of maturity where data teams must adhere to strict Service Level Agreements (SLAs) to meet the needs of their business. Data must be fresh, accurate, traceable, and scalable with maximum uptime so businesses can effectively operationalize the data. But how does the rest of the data stack live up to the challenge?

Deliver Fresh Data With Striim

Striim provides real-time data integration and data streaming, connecting sources and targets across hybrid and multi-cloud environments. With access to granular data integration metrics via a REST API, Striim customers can ensure data delivery SLAs in centralized monitoring and observability tools. 

To meet the demands of online buyers, Macy’s uses Striim to replicate inventory data with sub-second latency, scaling to peak holiday shopping workloads.

Furthermore, Striim’s automated data integration capabilities eliminates integration downtime by detecting schema changes on source databases and automatically replicating the changes to target systems or taking other actions (e.g. sending alerts to third party systems). 

automated schema change detection with Striim
Striim eliminates integration downtime with intelligent workflows that automatically respond to schema changes.

Learn more about Striim with a technical demo with one of our data integration experts or start your free trial here.

Back to top