This post was co-written with Balaram Mathukumilli, Viswanatha Vellaboyana and Keerthi Kambam from DISH Wireless, a wholly owned subsidiary of EchoStar.
EchoStar, a connectivity company providing television entertainment, wireless communications, and award-winning technology to residential and business customers throughout the US, deployed the first standalone, cloud-native Open RAN 5G network on AWS public cloud.
Amazon Redshift Serverless is a fully managed, scalable cloud data warehouse that accelerates your time to insights with fast, simple, and secure analytics at scale. Amazon Redshift data sharing allows you to share data within and across organizations, AWS Regions, and even third-party providers, without moving or copying the data. Additionally, it allows you to use multiple warehouses of different types and sizes for extract, transform, and load (ETL) jobs so you can tune your warehouses based on your write workloads’ price-performance needs.
You can use the Amazon Redshift Streaming Ingestion capability to update your analytics data warehouse in near real time. Redshift Streaming Ingestion simplifies data pipelines by letting you create materialized views directly on top of data streams. With this capability in Amazon Redshift, you can use SQL to connect to and directly ingest data from data streams, such as Amazon Kinesis Data Streams or Amazon Managed Streaming for Apache Kafka (Amazon MSK), and pull data directly to Amazon Redshift.
EchoStar uses Redshift Streaming Ingestion to ingest over 10 TB of data daily from more than 150 MSK topics in near real time across its Open RAN 5G network. This post provides an overview of real-time data analysis with Amazon Redshift and how EchoStar uses it to ingest hundreds of megabytes per second. As data sources and volumes grew across its network, EchoStar migrated from a single Redshift Serverless workgroup to a multi-warehouse architecture with live data sharing. This resulted in improved performance for ingesting and analyzing their rapidly growing data.
“By adopting the strategy of ‘parse and transform later,’ and establishing an Amazon Redshift data warehouse farm with a multi-cluster architecture, we leveraged the power of Amazon Redshift for direct streaming ingestion and data sharing.
“This innovative approach improved our data latency, reducing it from two–three days to an average of 37 seconds. Additionally, we achieved better scalability, with Amazon Redshift direct streaming ingestion supporting over 150 MSK topics.”
—Sandeep Kulkarni, VP, Software Engineering & Head of Wireless OSS Platforms at EchoStar
EchoStar use case
EchoStar needed to provide near real-time access to 5G network performance data for downstream consumers and interactive analytics applications. This data is sourced from the 5G network EMS observability infrastructure and is streamed in near real-time using AWS services like AWS Lambda and AWS Step Functions. The streaming data produced many small files, ranging from bytes to kilobytes. To efficiently integrate this data, a messaging system like Amazon MSK was required.
EchoStar was processing over 150 MSK topics from their messaging system, with each topic containing around 1 billion rows of data per day. This resulted in an average total data volume of 10 TB per day. To use this data, EchoStar needed to visualize it, perform spatial analysis, join it with third-party data sources, develop end-user applications, and use the insights to make near real-time improvements to their terrestrial 5G network. EchoStar needed a solution that does the following:
- Optimize parsing and loading of over 150 MSK topics to enable downstream workloads to run simultaneously without impacting each other
- Allow hundreds of queries to run in parallel with desired query throughput
- Seamlessly scale capacity with the increase in user base and maintain cost-efficiency
Solution overview
EchoStar migrated from a single Redshift Serverless workgroup to a multi-warehouse Amazon Redshift architecture in partnership with AWS. The new architecture enables workload isolation by separating streaming ingestion and ETL jobs from analytics workloads across multiple Redshift compute instances. At the same time, it provides live data sharing using a single copy of the data between the data warehouse. This architecture takes advantage of AWS capabilities to scale Redshift streaming ingestion jobs and isolate workloads while maintaining data access.
The following diagram shows the high-level end-to-end serverless architecture and overall data pipeline.
The solution consists of the following key components:
- Primary ETL Redshift Serverless workgroup – A primary ETL producer workgroup of size 392 RPU
- Secondary Redshift Serverless workgroups – Additional producer workgroups of varying sizes to distribute and scale near real-time data ingestion from over 150 MSK topics based on price-performance requirements
- Consumer Redshift Serverless workgroup – A consumer workgroup instance to run analytics using Tableau
To efficiently load multiple MSK topics into Redshift Serverless in parallel, we first identified the topics with the highest data volumes in order to determine the appropriate sizing for secondary workgroups.
We began by sizing the system initially to Redshift Serverless workgroup of 64 RPU. Then we onboarded a small number of MSK topics, creating related streaming materialized views. We incrementally added more materialized views, evaluating overall ingestion cost, performance, and latency needs within a single workgroup. This initial benchmarking gave us a solid baseline to onboard the remaining MSK topics across multiple workgroups.
In addition to a multi-warehouse approach and workgroup sizing, we optimized such large-scale data volume ingestion with an average latency of 37 seconds by splitting ingestion jobs into two steps:
- Streaming materialized views – Use
JSON_PARSE
to ingest data from MSK topics in Amazon Redshift - Flattening materialized views – Shred and perform transformations as a second step, reading data from the respective streaming materialized view
The following diagram depicts the high-level approach.
Best practices
In this section, we share some of the best practices we observed while implementing this solution:
- We performed an initial Redshift Serverless workgroup sizing based on three key factors:
- Number of records per second per MSK topic
- Average record size per MSK topic
- Desired latency SLA
- Additionally, we created only one streaming materialized view for a given MSK topic. Creation of multiple materialized views per MSK topic can slow down the ingestion performance because each materialized view becomes a consumer for that topic and shares the Amazon MSK bandwidth for that topic.
- While defining the streaming materialized view, we avoided using JSON_EXTRACT_PATH_TEXT to pre-shred data, because json_extract_path_text operates on the data row by row, which significantly impacts ingestion throughput. Instead, we adopted JSON_PARSE with the CAN_JSON_PARSE function to ingest data from the stream at lowest latency and to guard against errors. The following is a sample SQL query we used for the MSK topics (the actual data source names have been masked due to security reasons):
- We kept the streaming materialized views simple and moved all transformations like unnesting, aggregation, and case expressions to a later step as flattening materialized views. The following is a sample SQL query we used to flatten data by reading the streaming materialized views created in the previous step (the actual data source and column names have been masked due to security reasons):
- The streaming materialized views were set to auto refresh so that they can continuously ingest data into Amazon Redshift from MSK topics.
- The flattening materialized views were set to manual refresh based on SLA requirements using Amazon Managed Workflows for Apache Airflow (Amazon MWAA).
- We skipped defining any sort key in the streaming materialized views to further accelerate the ingestion speed.
- Lastly, we used SYS_MV_REFRESH_HISTORY and SYS_STREAM_SCAN_STATES system views to monitor the streaming ingestion refreshes and latencies.
For more information about best practices and monitoring techniques, refer to Best practices to implement near-real-time analytics using Amazon Redshift Streaming Ingestion with Amazon MSK.
Results
EchoStar saw improvements with this solution in both performance and scalability across their 5G Open RAN network.
Performance
By isolating and scaling Redshift Streaming Ingestion refreshes across multiple Redshift Serverless workgroups, EchoStar met their latency SLA requirements. We used the following SQL query to measure latencies:
When we further aggregate the preceding query to only the mv_name
level (removing partition_id
, which uniquely identifies a partition in an MSK topic), we find the average daily performance results we achieved on a Redshift Serverless workgroup size of 64 RPU as shown in the following chart. (The actual materialized view names have been hashed for security reasons because it maps to an external vendor name and data source.)
S.No. | stream_name_hash | min_latency_secs | max_latency_secs | avg_records_per_day |
1 | e022b6d13d83faff02748d3762013c |
1 | 6 | 186,395,805 |
2 | a8cc0770bb055a87bbb3d37933fc01 |
1 | 6 | 186,720,769 |
3 | 19413c1fc8fd6f8e5f5ae009515ffb |
2 | 4 | 5,858,356 |
4 | 732c2e0b3eb76c070415416c09ffe0 |
3 | 27 | 12,494,175 |
5 | 8b4e1ffad42bf77114ab86c2ea91d6 |
3 | 4 | 149,927,136 |
6 | 70e627d11eba592153d0f08708c0de |
5 | 5 | 121,819 |
7 | e15713d6b0abae2b8f6cd1d2663d94 |
5 | 31 | 148,768,006 |
8 | 234eb3af376b43a525b7c6bf6f8880 |
6 | 64 | 45,666 |
9 | 38e97a2f06bcc57595ab88eb8bec57 |
7 | 100 | 45,666 |
10 | 4c345f2f24a201779f43bd585e53ba |
9 | 12 | 101,934,969 |
11 | a3b4f6e7159d9b69fd4c4b8c5edd06 |
10 | 14 | 36,508,696 |
12 | 87190a106e0889a8c18d93a3faafeb |
13 | 69 | 14,050,727 |
13 | b1388bad6fc98c67748cc11ef2ad35 |
25 | 118 | 509 |
14 | cf8642fccc7229106c451ea33dd64d |
28 | 66 | 13,442,254 |
15 | c3b2137c271d1ccac084c09531dfcd |
29 | 74 | 12,515,495 |
16 | 68676fc1072f753136e6e992705a4d |
29 | 69 | 59,565 |
17 | 0ab3087353bff28e952cd25f5720f4 |
37 | 71 | 12,775,822 |
18 | e6b7f10ea43ae12724fec3e0e3205c |
39 | 83 | 2,964,715 |
19 | 93e2d6e0063de948cc6ce2fb5578f2 |
45 | 45 | 1,969,271 |
20 | 88cba4fffafd085c12b5d0a01d0b84 |
46 | 47 | 12,513,768 |
21 | d0408eae66121d10487e562bd481b9 |
48 | 57 | 12,525,221 |
22 | de552412b4244386a23b4761f877ce |
52 | 52 | 7,254,633 |
23 | 9480a1a4444250a0bc7a3ed67eebf3 |
58 | 96 | 12,522,882 |
24 | db5bd3aa8e1e7519139d2dc09a89a7 |
60 | 103 | 12,518,688 |
25 | e6541f290bd377087cdfdc2007a200 |
71 | 83 | 176,346,585 |
26 | 6f519c71c6a8a6311f2525f38c233d |
78 | 115 | 100,073,438 |
27 | 3974238e6aff40f15c2e3b6224ef68 |
79 | 82 | 12,770,856 |
28 | 7f356f281fc481976b51af3d76c151 |
79 | 96 | 75,077 |
29 | e2e8e02c7c0f68f8d44f650cd91be2 |
92 | 99 | 12,525,210 |
30 | 3555e0aa0630a128dede84e1f8420a |
97 | 105 | 8,901,014 |
31 | 7f4727981a6ba1c808a31bd2789f3a |
108 | 110 | 11,599,385 |
All 31 materialized views running and refreshing concurrently and continuously show a minimum latency of 1 second and a maximum latency of 118 seconds over the last 7 days, meeting EchoStar’s SLA requirements.
Scalability
With this Redshift data sharing enabled multi-warehouse architecture approach, EchoStar can now quickly scale their Redshift compute resources on demand by using the Redshift data sharing architecture to onboard the remaining 150 MSK topics. In addition, as their data sources and MSK topics increase further, they can quickly add additional Redshift Serverless workgroups (for example, another Redshift Serverless 128 RPU workgroup) to meet their desired SLA requirements.
Conclusion
By using the scalability of Amazon Redshift and a multi-warehouse architecture with data sharing, EchoStar delivers near real-time access to over 150 million rows of data across over 150 MSK topics, totaling 10 TB ingested daily, to their users.
This split multi-producer/consumer model of Amazon Redshift can bring benefits to many workloads that have similar performance characteristics as EchoStar’s warehouse. With this pattern, you can scale your workload to meet SLAs while optimizing for price and performance. Please reach out to your AWS Account Team to engage an AWS specialist for additional help or for a proof of concept.
About the authors
Balaram Mathukumilli is Director, Enterprise Data Services at DISH Wireless. He is deeply passionate about Data and Analytics solutions. With 20+ years of experience in Enterprise and Cloud transformation, he has worked across domains such as PayTV, Media Sales, Marketing and Wireless. Balaram works closely with the business partners to identify data needs, data sources, determine data governance, develop data infrastructure, build data analytics capabilities, and foster a data-driven culture to ensure their data assets are properly managed, used effectively, and are secure
Viswanatha Vellaboyana, a Solutions Architect at DISH Wireless, is deeply passionate about Data and Analytics solutions. With 20 years of experience in enterprise and cloud transformation, he has worked across domains such as Media, Media Sales, Communication, and Health Insurance. He collaborates with enterprise clients, guiding them in architecting, building, and scaling applications to achieve their desired business outcomes.
Keerthi Kambam is a Senior Engineer at DISH Network specializing in AWS Services. She builds scalable data engineering and analytical solutions for dish customer faced applications. She is passionate about solving complex data challenges with cloud solutions.
Raks Khare is a Senior Analytics Specialist Solutions Architect at AWS based out of Pennsylvania. He helps customers across varying industries and regions architect data analytics solutions at scale on the AWS platform. Outside of work, he likes exploring new travel and food destinations and spending quality time with his family.
Adi Eswar has been a core member of the AI/ML and Analytics Specialist team, leading the customer experience of customer’s existing workloads and leading key initiatives as part of the Analytics Customer Experience Program and Redshift enablement in AWS-TELCO customers. He spends his free time exploring new food, cultures, national parks and museums with his family.
Shirin Bhambhani is a Senior Solutions Architect at AWS. She works with customers to build solutions and accelerate their cloud migration journey. She enjoys simplifying customer experiences on AWS.
Vinayak Rao is a Senior Customer Solutions Manager at AWS. He collaborates with customers, partners, and internal AWS teams to drive customer success, delivery of technical solutions, and cloud adoption.
This post was originally published on the 3rd party mentioned in the title ofthis site