blob: b582a6b1ed26a5d31cc8ad627feb3cfddce4d6f6 [file] [log] [blame]
<!doctype html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-beta.4">
<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache Pinot™ Blog RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Pinot™ Blog Atom Feed">
<link rel="preconnect" href="https://www.google-analytics.com">
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-157446650-1","auto"),ga("send","pageview")</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
<link rel="search" type="application/opensearchdescription+xml" title="Apache Pinot™" href="/opensearch.xml">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Ubuntu|Roboto|Source+Code+Pro">
<link rel="stylesheet" href="https://at-ui.github.io/feather-font/css/iconfont.css"><title data-react-helmet="true">29 posts tagged with &quot;user-facing analytics&quot; | Apache Pinot™</title><meta data-react-helmet="true" property="og:title" content="29 posts tagged with &quot;user-facing analytics&quot; | Apache Pinot™"><meta data-react-helmet="true" property="og:url" content="https://pinot.apache.org/blog/tags/user-facing-analytics"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="blog_tags_posts"><meta data-react-helmet="true" name="description" content="Apache Pinot"><meta data-react-helmet="true" name="description" content="Real-time Analytics"><meta data-react-helmet="true" name="description" content="User-facing Analytics"><meta data-react-helmet="true" name="description" content="user facing analytics"><meta data-react-helmet="true" name="description" content="Olap"><meta data-react-helmet="true" name="description" content="Consumer-facing facing analytics"><meta data-react-helmet="true" name="description" content="Fast Analytics"><meta data-react-helmet="true" name="description" content="Who uses Apache Pinot?"><meta data-react-helmet="true" name="keywords" content="Pinot,LinkedIn,Data Scaling,User-Facing Analytics,Real-time data platform"><link data-react-helmet="true" rel="shortcut icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://pinot.apache.org/blog/tags/user-facing-analytics"><link data-react-helmet="true" rel="alternate" href="https://pinot.apache.org/blog/tags/user-facing-analytics" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://pinot.apache.org/blog/tags/user-facing-analytics" hreflang="x-default"><link data-react-helmet="true" rel="preconnect" href="https://BH4D9OD16A-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.f8c6b66d.css">
<link rel="preload" href="/assets/js/runtime~main.59053854.js" as="script">
<link rel="preload" href="/assets/js/main.5e591844.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#252532;color:#fff" role="banner"><div class="announcementBarContent_3EUC announcementBarCloseable_3myR">⭐️ If you love <b>Apache Pinot</b>, please give it a star on <a target="_blank" href="https://github.com/apache/pinot"><b>GitHub</b></a>! ⭐️</div><button type="button" class="announcementBarClose_38nx clean-btn" aria-label="Close"><span aria-hidden="true">×</span></button></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><img src="/img/pinot-navbar-logo-722f37.svg" alt="Pinot" class="themedImage_1VuW themedImage--light_3UqQ navbar__logo"><img src="/img/pinot-navbar-logo-722f37.svg" alt="Pinot" class="themedImage_1VuW themedImage--dark_hz6m navbar__logo"></a></div><div class="navbar__items navbar__items--right"><a href="https://docs.pinot.apache.org/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Docs</a><a class="navbar__item navbar__link" href="/download">Download</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog">Blog</a><a href="https://github.com/apache/pinot" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link"><span>GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_3J9K"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a><div class="react-toggle toggle_3Zt9 react-toggle--checked react-toggle--disabled"><div class="react-toggle-track" role="button" tabindex="-1"><div class="react-toggle-track-check"><span class="toggle_71bT" style="margin-left:2px">🌙</span></div><div class="react-toggle-track-x"><span class="toggle_71bT" style="margin-left:2px">☀️</span></div><div class="react-toggle-thumb"></div></div><input type="checkbox" checked="" class="react-toggle-screenreader-only" aria-label="Switch between dark and light mode"></div><div class="searchBox_1Doo"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper blog-wrapper blog-tags-post-page"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_2ahu thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_2hhb margin-bottom--md">All our posts</div><ul class="sidebarItemList_2xAf"><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2021/06/16/LinkedIn-TextAnalytics">Text analytics on LinkedIn Talent Insights using Apache Pinot</a></li><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2021/06/13/DevBlog-Geospatial">Introduction to Geospatial Queries in Apache Pinot</a></li><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2021/04/29/Uber-Charon">Automating Merchant Live Monitoring with Real-Time Analytics - Charon</a></li><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2021/04/27/DevBlog-PinotInRetailChain">Deploying Apache Pinot at a Large Retail Chain</a></li><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2021/04/16/LinkedIn-Theta">Solving for the cardinality of set intersection at scale with Pinot and Theta Sketches</a></li><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2021/04/08/DevBlog-UpsertsIntro">Introduction to Upserts in Apache Pinot</a></li><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2021/02/02/DevBlog-PrestoPinot">Real-time Analytics with Presto and Apache Pinot</a></li><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2021/01/08/DevBlog-DebeziumCDC">Change Data Analysis with Debezium and Apache Pinot</a></li><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2020/12/01/LinkedIn-Lamda">From Lambda to Lambda-less Lessons learned</a></li><li class="sidebarItem_2UVv"><a class="sidebarItemLink_1RT6" href="/blog/2020/10/20/Uber-Operating">Operating Apache Pinot at Uber Scale</a></li></ul></nav></aside><main class="col col--7"><header class="margin-bottom--xl"><h1>29 posts tagged with &quot;user-facing analytics&quot;</h1><a href="/blog/tags">View All Tags</a></header><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2021/06/16/LinkedIn-TextAnalytics">Text analytics on LinkedIn Talent Insights using Apache Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2021-06-16T00:00:00.000Z">June 16, 2021</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>LinkedIn Talent Insights (LTI) is a platform that helps organizations understand the external labor market and their internal workforce, and enables the long term success of their employees. Users of LTI have the flexibility to construct searches using the various facets of the LinkedIn Economic Graph (skills, titles, location, company, etc.).</p><p><a href="https://engineering.linkedin.com/blog/2021/text-analytics-on-linkedin-talent-insights-using-apache-pinot" target="_blank" rel="noopener noreferrer">Read More at https://engineering.linkedin.com/blog/2021/text-analytics-on-linkedin-talent-insights-using-apache-pinot</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2021/06/ltipinot6.png" alt="Text analytics on LinkedIn Talent Insights using Apache Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/data">Data</a><a class="margin-horiz--sm" href="/blog/tags/text-analytics">Text analytics</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Text analytics on LinkedIn Talent Insights using Apache Pinot" href="/blog/2021/06/16/LinkedIn-TextAnalytics"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2021/06/13/DevBlog-Geospatial">Introduction to Geospatial Queries in Apache Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2021-06-13T00:00:00.000Z">June 13, 2021</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="Kenny Bastani"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">Kenny Bastani</a></div><small class="avatar__subtitle">Kenny Bastani</small></div></div></header><div class="markdown"><p>Geospatial data has been widely used across the industry, spanning multiple verticals, such as ride-sharing and delivery, transportation infrastructure, defense and intel, public health. Deriving insights from timely and accurate geospatial data could enable mission-critical use cases in the organizations and fuel a vibrant marketplace across the industry. In the design document for this new Pinot feature, we discuss the challenges of analyzing geospatial at scale and propose the geospatial support in Pinot.</p><p>Read More at <a href="https://medium.com/apache-pinot-developer-blog/introduction-to-geospatial-queries-in-apache-pinot-b63e2362e2a9" target="_blank" rel="noopener noreferrer">https://medium.com/apache-pinot-developer-blog/introduction-to-geospatial-queries-in-apache-pinot-b63e2362e2a9</a></p><p><img src="https://miro.medium.com/max/1400/0*1xrDSs9lLZ5dD3zK" alt="Introduction to Geospatial Queries in Apache Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/h-3">H3</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Introduction to Geospatial Queries in Apache Pinot" href="/blog/2021/06/13/DevBlog-Geospatial"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2021/04/29/Uber-Charon">Automating Merchant Live Monitoring with Real-Time Analytics - Charon</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2021-04-29T00:00:00.000Z">April 29, 2021</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://eng.uber.com/category/articles/uberdata/" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1192909783856103427/6A4s8gW2_400x400.png" alt="Uber"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://eng.uber.com/category/articles/uberdata/" target="_blank" rel="noopener noreferrer">Uber</a></div><small class="avatar__subtitle">Uber Data Team</small></div></div></header><div class="markdown"><p>At Uber, live monitoring and automation of Ops is critical to preserve marketplace health, maintain reliability, and gain efficiency in markets. By the virtue of the word “live”, this monitoring needs to show what is happening now, with prompt access to fresh data, and the ability to recommend appropriate actions based on that data. Uber’s data platform provides the self-serve tools which empower the Ops teams to build their own live monitoring tools, and support their regional teams by building rich solutions.</p><p>For this project, the requirement was to provide merchant level monitoring and handle the edge cases which remain unaddressed by the sophisticated internal marketplace management tools. We used a variety of Uber’s real-time data platform components to build a tool called Charon to reduce impact of poor marketplace reliability on the merchants.</p><p>Read More at <a href="https://eng.uber.com/charon/" target="_blank" rel="noopener noreferrer">https://eng.uber.com/charon/</a></p><p><img src="https://1fykyq3mdn5r21tpna3wkdyi-wpengine.netdna-ssl.com/wp-content/uploads/2021/04/deliverDoor@3x-768x263.png" alt="Operating Apache Pinot at Uber Scale"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/uber">Uber</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Automating Merchant Live Monitoring with Real-Time Analytics - Charon" href="/blog/2021/04/29/Uber-Charon"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2021/04/27/DevBlog-PinotInRetailChain">Deploying Apache Pinot at a Large Retail Chain</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2021-04-27T00:00:00.000Z">April 27, 2021</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="PinotDev"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">PinotDev</a></div><small class="avatar__subtitle">Pinot Editorial Team</small></div></div></header><div class="markdown"><p>Blog gives an overview of our use of Apache Pinot to solve some of biggest challenges around Data Analytics in Large Retail Chain</p><p><a href="https://medium.com/apache-pinot-developer-blog/deploying-apache-pinot-at-a-large-retail-chain-42aed2921a38" target="_blank" rel="noopener noreferrer">Read More at https://medium.com/apache-pinot-developer-blog/deploying-apache-pinot-at-a-large-retail-chain-42aed2921a38</a></p><p><img src="https://miro.medium.com/max/1400/1*EtqD0vTPEe569jybXCt69w.png" alt="Deploying Apache Pinot at a Large Retail Chain"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Deploying Apache Pinot at a Large Retail Chain" href="/blog/2021/04/27/DevBlog-PinotInRetailChain"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2021/04/16/LinkedIn-Theta">Solving for the cardinality of set intersection at scale with Pinot and Theta Sketches</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2021-04-16T00:00:00.000Z">April 16, 2021</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>The Lambda architecture has become a popular architectural style that promises both speed and accuracy in data processing by using a hybrid approach of both batch processing and stream processing methods.</p><p>Read More at <a href="https://engineering.linkedin.com/blog/2021/pinot-and-theta-sketches" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/blog/2021/pinot-and-theta-sketches</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2021/04/thetasketches2.png" alt="From Lambda to Lambda-less Lessons learned"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Solving for the cardinality of set intersection at scale with Pinot and Theta Sketches" href="/blog/2021/04/16/LinkedIn-Theta"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2021/04/08/DevBlog-UpsertsIntro">Introduction to Upserts in Apache Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2021-04-08T00:00:00.000Z">April 8, 2021</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="Kenny Bastani"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">Kenny Bastani</a></div><small class="avatar__subtitle">Kenny Bastani</small></div></div></header><div class="markdown"><p>Since the 0.6.0 release of Apache Pinot, a new feature was made available for stream ingestion that allows you to upsert events from an immutable log. Typically, upsert is a term used to describe inserting a record into a database if it does not already exist or update it if it does exist. In Apache Pinot’s case, upsert isn’t precisely the same concept, and I wanted to write this blog post to explain why it’s exciting and how you can start using it.</p><p>Read More at <a href="https://medium.com/apache-pinot-developer-blog/introduction-to-upserts-in-apache-pinot-987c12149d93" target="_blank" rel="noopener noreferrer">https://medium.com/apache-pinot-developer-blog/introduction-to-upserts-in-apache-pinot-987c12149d93</a></p><p><img src="https://miro.medium.com/max/1400/0*So3GjHjLY7DJAiaP" alt="Introduction to Upserts in Apache Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/upsert">Upsert</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Introduction to Upserts in Apache Pinot" href="/blog/2021/04/08/DevBlog-UpsertsIntro"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2021/02/02/DevBlog-PrestoPinot">Real-time Analytics with Presto and Apache Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2021-02-02T00:00:00.000Z">February 2, 2021</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="PinotDev"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">PinotDev</a></div><small class="avatar__subtitle">Pinot Editorial Team</small></div></div></header><div class="markdown"><p>In this world, most analytics products either focus on ad-hoc analytics, which requires query flexibility without guaranteed latency, or low latency analytics with limited query capability. In this blog, we will explore how to get the best of both worlds using Apache Pinot and Presto.</p><p><a href="https://medium.com/apache-pinot-developer-blog/real-time-analytics-with-presto-and-apache-pinot-part-i-cc672caea307" target="_blank" rel="noopener noreferrer">Read Part 1 at https://medium.com/apache-pinot-developer-blog/real-time-analytics-with-presto-and-apache-pinot-part-i-cc672caea307</a></p><p><a href="https://medium.com/apache-pinot-developer-blog/real-time-analytics-with-presto-and-apache-pinot-part-ii-3d09ff937713" target="_blank" rel="noopener noreferrer">Read Part 2 at https://medium.com/apache-pinot-developer-blog/real-time-analytics-with-presto-and-apache-pinot-part-ii-3d09ff937713</a></p><p><img src="https://miro.medium.com/max/1400/0*hJc6aV9aBJaKyXcx" alt="Real-time Analytics with Presto and Apache Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/presto">Presto</a><a class="margin-horiz--sm" href="/blog/tags/trino">Trino</a><a class="margin-horiz--sm" href="/blog/tags/presto-sql">PrestoSQL</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Real-time Analytics with Presto and Apache Pinot" href="/blog/2021/02/02/DevBlog-PrestoPinot"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2021/01/08/DevBlog-DebeziumCDC">Change Data Analysis with Debezium and Apache Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2021-01-08T00:00:00.000Z">January 8, 2021</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="Kenny Bastani"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">Kenny Bastani</a></div><small class="avatar__subtitle">Kenny Bastani</small></div></div></header><div class="markdown"><p>In this blog post, we’re going to explore an exciting new world of real-time analytics based on combining the popular CDC tool, Debezium, with the real-time OLAP datastore, Apache Pinot.</p><p><a href="https://medium.com/apache-pinot-developer-blog/change-data-analysis-with-debezium-and-apache-pinot-b4093dc178a7" target="_blank" rel="noopener noreferrer">Read More at https://medium.com/apache-pinot-developer-blog/change-data-analysis-with-debezium-and-apache-pinot-b4093dc178a7</a></p><p><img src="https://miro.medium.com/max/1400/1*dnSikeGxTrfrF95niX16PA.png" alt="Change Data Analysis with Debezium and Apache Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/debezium">Debezium</a><a class="margin-horiz--sm" href="/blog/tags/cdc">CDC</a><a class="margin-horiz--sm" href="/blog/tags/change-data-analysis">Change Data Analysis</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Change Data Analysis with Debezium and Apache Pinot" href="/blog/2021/01/08/DevBlog-DebeziumCDC"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/12/01/LinkedIn-Lamda">From Lambda to Lambda-less Lessons learned</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-12-01T00:00:00.000Z">December 1, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>The Lambda architecture has become a popular architectural style that promises both speed and accuracy in data processing by using a hybrid approach of both batch processing and stream processing methods.</p><p>Read More at <a href="https://engineering.linkedin.com/blog/2020/lambda-to-lambda-less-architecture" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/blog/2020/lambda-to-lambda-less-architecture</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2019/03/pinotincubator2.png" alt="From Lambda to Lambda-less Lessons learned"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about From Lambda to Lambda-less Lessons learned" href="/blog/2020/12/01/LinkedIn-Lamda"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/10/20/Uber-Operating">Operating Apache Pinot at Uber Scale</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-10-20T00:00:00.000Z">October 20, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://eng.uber.com/category/articles/uberdata/" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1192909783856103427/6A4s8gW2_400x400.png" alt="Uber"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://eng.uber.com/category/articles/uberdata/" target="_blank" rel="noopener noreferrer">Uber</a></div><small class="avatar__subtitle">Uber Data Team</small></div></div></header><div class="markdown"><p>Uber has a complex marketplace consisting of riders, drivers, eaters, restaurants and so on. Operating that marketplace at a global scale requires real-time intelligence and decision making. For instance, identifying delayed Uber Eats orders or abandoned carts helps to enable our community operations team to take corrective action. Having a real-time dashboard of different events such as consumer demand, driver availability, or trips happening in a city is crucial for day-to-day operation, incident triaging, and financial intelligence.</p><p>Read More at <a href="https://eng.uber.com/operating-apache-pinot/" target="_blank" rel="noopener noreferrer">https://eng.uber.com/operating-apache-pinot/</a></p><p><img src="https://1fykyq3mdn5r21tpna3wkdyi-wpengine.netdna-ssl.com/wp-content/uploads/2020/10/1224-5.png" alt="Operating Apache Pinot at Uber Scale"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/uber">Uber</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a><a class="margin-horiz--sm" href="/blog/tags/financial-intelligence">financial intelligence</a></div><div class="col text--right"><a aria-label="Read more about Operating Apache Pinot at Uber Scale" href="/blog/2020/10/20/Uber-Operating"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/10/16/DevBlog-TwitterTrollAnalysis">Deep Analysis of Russian Twitter Trolls</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-10-16T00:00:00.000Z">October 16, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="Kenny Bastani"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">Kenny Bastani</a></div><small class="avatar__subtitle">Kenny Bastani</small></div></div></header><div class="markdown"><p>The history behind Russian disinformation is a dense and continuously evolving subject. The world’s best research hasn’t seemed to hit the mainstream yet, which made this an excellent opportunity to see if I could use some open source tooling to surface new analytical evidence.</p><p>In this blog post, I’ll show you how to use Apache Pinot and Superset to analyze 3 million tweets by the Internet Research Agency (IRA) open-sourced by FiveThirtyEight.</p><p><a href="https://towardsdatascience.com/a-deep-analysis-of-russian-trolls-with-apache-pinot-and-superset-590c8c4d1843" target="_blank" rel="noopener noreferrer">Read More at https://towardsdatascience.com/a-deep-analysis-of-russian-trolls-with-apache-pinot-and-superset-590c8c4d1843</a></p><p><img src="https://miro.medium.com/max/4320/0*iqUTy0GkLFTcSYlR.png" alt="Deep Analysis of Russian Twitter Trolls"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Deep Analysis of Russian Twitter Trolls" href="/blog/2020/10/16/DevBlog-TwitterTrollAnalysis"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/08/08/DevBlog-IngestPlugins">Leverage Plugins to Ingest Parquet Files from S3 in Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-08-08T00:00:00.000Z">August 8, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="PinotDev"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">PinotDev</a></div><small class="avatar__subtitle">Pinot Editorial Team</small></div></div></header><div class="markdown"><p>One of the primary advantages of using Pinot is its pluggable architecture. The plugins make it easy to add support for any third-party system which can be an execution framework, a filesystem, or input format.</p><p>In this tutorial, we will use three such plugins to easily ingest data and push it to our Pinot cluster. The plugins we will be using are -</p><ul><li>pinot-batch-ingestion-spark</li><li>pinot-s3</li><li>pinot-parquet</li></ul><p><a href="https://medium.com/apache-pinot-developer-blog/leverage-plugins-to-ingest-parquet-files-from-s3-in-pinot-decb12e4d09d" target="_blank" rel="noopener noreferrer">Read more at https://medium.com/apache-pinot-developer-blog/leverage-plugins-to-ingest-parquet-files-from-s3-in-pinot-decb12e4d09d</a></p><p><img src="https://miro.medium.com/max/6000/0*afbs7azGt-GpSVeP" alt="Leverage Plugins to Ingest Parquet Files from S3 in Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/sla">SLA</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Leverage Plugins to Ingest Parquet Files from S3 in Pinot" href="/blog/2020/08/08/DevBlog-IngestPlugins"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/08/08/DevBlog-PinotMonitoring">Monitoring Apache Pinot with JMX, Prometheus and Grafana</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-08-08T00:00:00.000Z">August 8, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="PinotDev"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">PinotDev</a></div><small class="avatar__subtitle">Pinot Editorial Team</small></div></div></header><div class="markdown"><p>I may be kicking open doors here, but a simple question has always helped me start from somewhere. When it comes to investigating degraded user experience caused by latency, can I observe high resource usage on all or some nodes of the system?</p><p><a href="https://medium.com/apache-pinot-developer-blog/monitoring-apache-pinot-99034050c1a5" target="_blank" rel="noopener noreferrer">Read more at https://medium.com/apache-pinot-developer-blog/monitoring-apache-pinot-99034050c1a5</a></p><p><img src="https://miro.medium.com/max/1400/1*5kWginewoWzzQHQoZdPAGQ.png" alt="Monitoring Apache Pinot with JMX, Prometheus and Grafana"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/monitoring">Monitoring</a><a class="margin-horiz--sm" href="/blog/tags/jmx">JMX</a><a class="margin-horiz--sm" href="/blog/tags/prometheus">Prometheus</a><a class="margin-horiz--sm" href="/blog/tags/grafana">Grafana</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Monitoring Apache Pinot with JMX, Prometheus and Grafana" href="/blog/2020/08/08/DevBlog-PinotMonitoring"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/08/08/DevBlog-SLAApps">Achieving 99th percentile latency SLA using Apache Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-08-08T00:00:00.000Z">August 8, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="PinotDev"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">PinotDev</a></div><small class="avatar__subtitle">Pinot Editorial Team</small></div></div></header><div class="markdown"><p>In this article, we talk about how users can build critical site-facing analytical applications requiring high throughput and strict p99th query latency SLA using Apache Pinot.</p><p><a href="https://medium.com/apache-pinot-developer-blog/achieving-99th-percentile-latency-sla-using-apache-pinot-2ba4ce1d9eff" target="_blank" rel="noopener noreferrer">Read more at https://medium.com/apache-pinot-developer-blog/achieving-99th-percentile-latency-sla-using-apache-pinot-2ba4ce1d9eff</a></p><p><img src="https://miro.medium.com/max/1140/0*VCPyrmNB2PteCmnC" alt="Achieving 99th percentile latency SLA using Apache Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/sla">SLA</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Achieving 99th percentile latency SLA using Apache Pinot" href="/blog/2020/08/08/DevBlog-SLAApps"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/08/08/DevBlog-ScalarUDFs">Utilize UDFs to Supercharge Queries in Apache Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-08-08T00:00:00.000Z">August 8, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="PinotDev"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">PinotDev</a></div><small class="avatar__subtitle">Pinot Editorial Team</small></div></div></header><div class="markdown"><p>Apache Pinot is a realtime distributed OLAP datastore that can answer hundreds of thousands of queries with millisecond latencies. You can head over to <a href="https://pinot.apache.org/" target="_blank" rel="noopener noreferrer">https://pinot.apache.org/</a> to get started with Apache Pinot.</p><p>While using any database, we can come across a scenario where a function required for the query is not supported out of the box. In such time, we have to resort to raising a pull request for a new function or finding a tedious workaround.</p><p>Scalar Functions that allow users to write and add their functions as a plugin.</p><p><a href="https://medium.com/apache-pinot-developer-blog/utilize-udfs-to-supercharge-queries-in-apache-pinot-e488a0f164f1" target="_blank" rel="noopener noreferrer">Read more at https://medium.com/apache-pinot-developer-blog/utilize-udfs-to-supercharge-queries-in-apache-pinot-e488a0f164f1</a></p><p><img src="https://miro.medium.com/max/10368/0*VtswFI-HcaXyyjhK" alt="Utilize UDFs to Supercharge Queries in Apache Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/sla">SLA</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Utilize UDFs to Supercharge Queries in Apache Pinot" href="/blog/2020/08/08/DevBlog-ScalarUDFs"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/07/28/DevBlog-AnomalyDetection">Building a culture around metrics and anomaly detection</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-07-28T00:00:00.000Z">July 28, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="Kenny Bastani"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">Kenny Bastani</a></div><small class="avatar__subtitle">Kenny Bastani</small></div></div></header><div class="markdown"><p>Anomaly detection is a very broad term. Usually it means that you want to see if things are running as usual. This could go from your business metrics down to the lowest level of how your systems are running. Anomaly detection is an entire process. It’s not just a tool that you get out of the box that measures time series data. Similar to DevOps, anomaly detection is a culture of different roles engaging in a process that combines tooling with human analysis.</p><p>Read More at <a href="https://medium.com/apache-pinot-developer-blog/building-a-culture-around-metrics-and-anomaly-detection-da740960fcc2" target="_blank" rel="noopener noreferrer">https://medium.com/apache-pinot-developer-blog/building-a-culture-around-metrics-and-anomaly-detection-da740960fcc2</a></p><p><img src="https://miro.medium.com/max/1400/0*xYm2ZURZVpyJ1JQ5" alt="Building a culture around metrics and anomaly detection"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Building a culture around metrics and anomaly detection" href="/blog/2020/07/28/DevBlog-AnomalyDetection"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/07/28/DevBlog-DevUpStack">Moving developers up the stack with Apache Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-07-28T00:00:00.000Z">July 28, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="Kenny Bastani"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">Kenny Bastani</a></div><small class="avatar__subtitle">Kenny Bastani</small></div></div></header><div class="markdown"><p>Once upon a time, an internet company named LinkedIn faced the challenge of having petabytes of connected data with no way to analyze it in real-time. As this was a problem that was the first of its kind, there was only one solution. The company put together a talented team of engineers and tasked them with building the right tool for the job. Today, that tool goes by the name of Apache Pinot.</p><p>Read More at <a href="https://medium.com/apache-pinot-developer-blog/moving-developers-up-the-stack-with-apache-pinot-29d36717a3f4" target="_blank" rel="noopener noreferrer">https://medium.com/apache-pinot-developer-blog/moving-developers-up-the-stack-with-apache-pinot-29d36717a3f4</a></p><p><img src="https://miro.medium.com/max/1400/1*dnSikeGxTrfrF95niX16PA.png" alt="Moving developers up the stack with Apache Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Moving developers up the stack with Apache Pinot" href="/blog/2020/07/28/DevBlog-DevUpStack"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/07/14/LinkedIn-BatchRealtime">Bridging batch and stream processing for the Recruiter usage statistics dashboard</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-07-14T00:00:00.000Z">July 14, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>Batch and streaming computations are often combined together in the Lambda architecture,
but carry the cost of maintaining two different code bases for the same logic.</p><p>Read More at <a href="https://engineering.linkedin.com/blog/2020/bridging-batch-and-stream-processing" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/blog/2020/bridging-batch-and-stream-processing</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2020/07/bridging-1.png" alt="Bridging batch and stream processing for the Recruiter usage statistics dashboard"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Bridging batch and stream processing for the Recruiter usage statistics dashboard" href="/blog/2020/07/14/LinkedIn-BatchRealtime"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/06/29/LinkedIn-TalentInsight">Building LinkedIn Talent Insights to democratize data-driven decision making</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-06-29T00:00:00.000Z">June 29, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>LinkedIn is a mission-driven organization, and we take our mission of “connecting the world&#x27;s professionals to make them more productive and successful” very seriously.</p><p>Read More at <a href="https://engineering.linkedin.com/blog/2020/building-linkedin-talent-insights" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/blog/2020/building-linkedin-talent-insights</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2020/06/lti-1.png" alt="Building LinkedIn Talent Insights to democratize data-driven decision making"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Building LinkedIn Talent Insights to democratize data-driven decision making" href="/blog/2020/06/29/LinkedIn-TalentInsight"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/06/25/LinkedIn-SmartAlerts">Monitoring business performance data with ThirdEye smart alerts</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-06-25T00:00:00.000Z">June 25, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>Explain how ThirdEye smart alerts and automated dashboards helped the LinkedIn Premium business operations team monitor key metrics—such as new free trial signups—for the timely detection of outliers in business performance data.</p><p>Read More at <a href="https://engineering.linkedin.com/blog/2020/monitoring-business-performance-data-with-thirdeye-smart-alerts" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/blog/2020/monitoring-business-performance-data-with-thirdeye-smart-alerts</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2020/06/thirdeye_business_performance-3.png" alt="Monitoring business performance data with ThirdEye smart alerts"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Monitoring business performance data with ThirdEye smart alerts" href="/blog/2020/06/25/LinkedIn-SmartAlerts"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/04/10/DevBlog-AnalyzeGitEvents">Using Apache Pinot and Kafka to Analyze GitHub Events</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-04-10T00:00:00.000Z">April 10, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1400521020973400069/5y2UMi4r_400x400.jpg" alt="Kenny Bastani"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://medium.com/apache-pinot-developer-blog" target="_blank" rel="noopener noreferrer">Kenny Bastani</a></div><small class="avatar__subtitle">Kenny Bastani</small></div></div></header><div class="markdown"><p>In this blog post, we’ll show you how Pinot and Kafka can be used together to ingest, query, and visualize event streams sourced from the public GitHub API. For the step-by-step instructions, please visit our documentation, which will guide you through the specifics of running this example in your development environment.</p><p>Read More at <a href="https://medium.com/apache-pinot-developer-blog/using-apache-pinot-and-kafka-to-analyze-github-events-93cdcb57d5f7" target="_blank" rel="noopener noreferrer">https://medium.com/apache-pinot-developer-blog/using-apache-pinot-and-kafka-to-analyze-github-events-93cdcb57d5f7</a></p><p><img src="https://miro.medium.com/max/4728/1*eR64jBH1ZvC3uNfPP56p5g.png" alt="Using Apache Pinot and Kafka to Analyze GitHub Events"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/dev-blog">DevBlog</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Using Apache Pinot and Kafka to Analyze GitHub Events" href="/blog/2020/04/10/DevBlog-AnalyzeGitEvents"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/02/20/LinkedIn-Thirdeye">Analyzing anomalies with ThirdEye</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-02-20T00:00:00.000Z">February 20, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>Focus on the behind-the-scenes functionalities of ThirdEye that analyze the multi-dimensional time series data
and help our engineers understand why these anomalies happened through a dimension heatmap</p><p><a href="https://engineering.linkedin.com/blog/2020/analyzing-anomalies-with-thirdeye" target="_blank" rel="noopener noreferrer">Read More at https://engineering.linkedin.com/blog/2020/analyzing-anomalies-with-thirdeye</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2020/02/datacube-1.png" alt="Analyzing anomalies with ThirdEye"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Analyzing anomalies with ThirdEye" href="/blog/2020/02/20/LinkedIn-Thirdeye"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2020/01/15/Pinot-Presto-SQL">Engineering SQL Support on Apache Pinot at Uber</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2020-01-15T00:00:00.000Z">January 15, 2020</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://eng.uber.com/category/articles/uberdata/" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1192909783856103427/6A4s8gW2_400x400.png" alt="Uber"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://eng.uber.com/category/articles/uberdata/" target="_blank" rel="noopener noreferrer">Uber</a></div><small class="avatar__subtitle">Uber Data Team</small></div></div></header><div class="markdown"><p>Uber leverages real-time analytics on aggregate data to improve the user experience across our products, from fighting fraudulent behavior on Uber Eats to forecasting demand on our platform.</p><p>To resolve these issues, we built a solution that linked Presto, a query engine that supports full ANSI SQL, and Pinot, a real-time OLAP (online analytical processing) datastore. This married solution allows users to write ad-hoc SQL queries, empowering teams to unlock significant analysis capabilities.</p><p><a href="https://eng.uber.com/engineering-sql-support-on-apache-pinot/" target="_blank" rel="noopener noreferrer">Read More at https://eng.uber.com/engineering-sql-support-on-apache-pinot/</a></p><p><img src="https://1fykyq3mdn5r21tpna3wkdyi-wpengine.netdna-ssl.com/wp-content/uploads/2020/01/Header-SQL-768x329.png" alt="SQL Support on Apache Pinot at Uber"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/uber">Uber</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a><a class="margin-horiz--sm" href="/blog/tags/presto">Presto</a><a class="margin-horiz--sm" href="/blog/tags/sql">SQL</a></div><div class="col text--right"><a aria-label="Read more about Engineering SQL Support on Apache Pinot at Uber" href="/blog/2020/01/15/Pinot-Presto-SQL"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2019/07/11/LinkedIn-AutoTune">Auto-tuning Pinot real-time consumption</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2019-07-11T00:00:00.000Z">July 11, 2019</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>Focus on Auto tuning Pinot, a scalable distributed columnar OLAP data store developed at LinkedIn, delivers real-time analytics for site-facing use cases such as LinkedIn&#x27;s Who viewed my profile, Talent insights, and more.</p><p>Read More at <a href="https://engineering.linkedin.com/blog/2020/bridging-batch-and-stream-processing" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/blog/2020/bridging-batch-and-stream-processing</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2020/07/bridging-1.png" alt="Bridging batch and stream processing for the Recruiter usage statistics dashboard"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Auto-tuning Pinot real-time consumption" href="/blog/2019/07/11/LinkedIn-AutoTune"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2019/06/14/LinkedIn-StarTree">Star-tree index - Powering fast aggregations on Pinot</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2019-06-14T00:00:00.000Z">June 14, 2019</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>Introduced Star-Tree index to utilize the pre-aggregated documents in a smart way that achieves low query latencies,
while using the storage space efficiently.</p><p>Read More at <a href="https://engineering.linkedin.com/blog/2019/06/star-tree-index--powering-fast-aggregations-on-pinot" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/blog/2019/06/star-tree-index--powering-fast-aggregations-on-pinot</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2019/06/startree3.png" alt="Star-tree index - Powering fast aggregations on Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Star-tree index - Powering fast aggregations on Pinot" href="/blog/2019/06/14/LinkedIn-StarTree"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2019/01/09/LinkedIn-IntroThirdEye">Introducing ThirdEye - LinkedIn’s Business-Wide Monitoring Platform</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2019-01-09T00:00:00.000Z">January 9, 2019</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>ThirdEye is a comprehensive platform for real-time monitoring of metrics that covers a wide variety of use-cases.
LinkedIn relies on ThirdEye to monitor site performance, track member growth, understand adoption of new features,
flag sustained attempts to circumvent system security, and many other areas</p><p>Read More at <a href="https://engineering.linkedin.com/blog/2019/01/introducing-thirdeye--linkedins-business-wide-monitoring-platfor" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/blog/2019/01/introducing-thirdeye--linkedins-business-wide-monitoring-platfor</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/site-assets/images/blog/posts/2019/06/startree3.png" alt="Star-tree index - Powering fast aggregations on Pinot"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/third-eye">ThirdEye</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Introducing ThirdEye - LinkedIn’s Business-Wide Monitoring Platform" href="/blog/2019/01/09/LinkedIn-IntroThirdEye"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2017/09/17/Restaurant-Manager">Engineering Restaurant Manager - UberEATS Analytics Dashboard</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2017-09-17T00:00:00.000Z">September 17, 2017</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://eng.uber.com/category/articles/uberdata/" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://pbs.twimg.com/profile_images/1192909783856103427/6A4s8gW2_400x400.png" alt="Uber"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://eng.uber.com/category/articles/uberdata/" target="_blank" rel="noopener noreferrer">Uber</a></div><small class="avatar__subtitle">Uber Data Team</small></div></div></header><div class="markdown"><p>At Uber, we use data analytics to architect more magical user experiences across our products. Whenever possible, we harness these data engineering capabilities to empower our partners to better serve their customers. For instance, in late 2016, the UberEATS engineering team built a comprehensive analytics dashboard that provides restaurant partners with additional insights about the health of their business.</p><p>Read More at <a href="https://eng.uber.com/restaurant-manager/" target="_blank" rel="noopener noreferrer">https://eng.uber.com/restaurant-manager/</a></p><p><img src="https://1fykyq3mdn5r21tpna3wkdyi-wpengine.netdna-ssl.com/wp-content/uploads/2017/09/image4-2.png" alt="Engineering Restaurant Manager - UberEATS Analytics Dashboard"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/uber-data">Uber Data</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a><a class="margin-horiz--sm" href="/blog/tags/financial-intelligence">financial intelligence</a></div><div class="col text--right"><a aria-label="Read more about Engineering Restaurant Manager - UberEATS Analytics Dashboard" href="/blog/2017/09/17/Restaurant-Manager"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2015/06/10/Open-Sourcing-Pinot">Open Sourcing Pinot - Scaling the Wall of Real-Time Analytics</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2015-06-10T00:00:00.000Z">June 10, 2015</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://github.com/kishoreg" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://avatars.githubusercontent.com/kishoreg" alt="Kishore Gopalakrishna"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://github.com/kishoreg" target="_blank" rel="noopener noreferrer">Kishore Gopalakrishna</a></div><small class="avatar__subtitle">Apache Pinot Team</small></div></div></header><div class="markdown"><p>LinkedIn’s real-time analytics infrastructure, that we built to allow us to slice and dice across billions of rows in real-time across a wide variety of products. Read More at (<a href="https://engineering.linkedin.com/pinot/open-sourcing-pinot-scaling-wall-real-time-analytics" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/pinot/open-sourcing-pinot-scaling-wall-real-time-analytics</a>)</p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/a-b-testing">A/B Testing</a><a class="margin-horiz--sm" href="/blog/tags/infrastructure">Infrastructure</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about Open Sourcing Pinot - Scaling the Wall of Real-Time Analytics" href="/blog/2015/06/10/Open-Sourcing-Pinot"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="blogPostTitle_GeHD"><a href="/blog/2015/05/16/LinkedIn-Scaling">A Brief History of Scaling LinkedIn</a></h2><div class="blogPostData_291c margin-vert--md"><time datetime="2015-05-16T00:00:00.000Z">May 16, 2015</time> · One min read</div><div class="avatar margin-vert--md"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer" class="avatar__photo-link avatar__photo"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Linkedin_icon.svg/512px-Linkedin_icon.svg.png" alt="LinkedIn"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://engineering.linkedin.com/blog/topic/pinot" target="_blank" rel="noopener noreferrer">LinkedIn</a></div><small class="avatar__subtitle">LinkedIn Engineering Team</small></div></div></header><div class="markdown"><p>LinkedIn started in 2003 with the goal of connecting to your network for better job opportunities. It had only 2,700 members the first week. Fast forward many years, and LinkedIn’s product portfolio, member base, and server load has grown tremendously.</p><p>Today, LinkedIn operates globally with more than 350 million members. We serve tens of thousands of web pages every second of every day. We&#x27;ve hit our mobile moment where mobile accounts for more than 50 percent of all global traffic. All those requests are fetching data from our backend systems, which in turn handle millions of queries per second.</p><p>Read More at <a href="https://engineering.linkedin.com/architecture/brief-history-scaling-linkedin" target="_blank" rel="noopener noreferrer">https://engineering.linkedin.com/architecture/brief-history-scaling-linkedin</a></p><p><img src="https://content.linkedin.com/content/dam/engineering/en-us/blog/migrated/data_centers_pops_0.png" alt="A Brief History of Scaling LinkedIn"></p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><a class="margin-horiz--sm" href="/blog/tags/pinot">Pinot</a><a class="margin-horiz--sm" href="/blog/tags/linked-in">LinkedIn</a><a class="margin-horiz--sm" href="/blog/tags/real-time-data-platform">real-time data platform</a><a class="margin-horiz--sm" href="/blog/tags/realtime">Realtime</a><a class="margin-horiz--sm" href="/blog/tags/analytics">Analytics</a><a class="margin-horiz--sm" href="/blog/tags/user-facing-analytics">User-Facing Analytics</a></div><div class="col text--right"><a aria-label="Read more about A Brief History of Scaling LinkedIn" href="/blog/2015/05/16/LinkedIn-Scaling"><b>Read More</b></a></div></footer></article></main></div></div></div><footer class="footer"><div class="container"><div class="row footer__links"><div class="col footer__col"><h4 class="footer__title">About</h4><ul class="footer__items"><li class="footer__item"><a href="https://docs.pinot.apache.org/" target="_blank" rel="noopener noreferrer" class="footer__link-item">What is Pinot?</a></li><li class="footer__item"><a href="https://docs.pinot.apache.org/pinot-components" target="_blank" rel="noopener noreferrer" class="footer__link-item">Components</a></li><li class="footer__item"><a href="https://docs.pinot.apache.org/basics/architecture" target="_blank" rel="noopener noreferrer" class="footer__link-item">Architecture</a></li><li class="footer__item"><a href="https://docs.pinot.apache.org/plugins/plugin-architecture" target="_blank" rel="noopener noreferrer" class="footer__link-item">Plugins Architecture</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">Integrations</h4><ul class="footer__items"><li class="footer__item"><a href="https://docs.pinot.apache.org/integrations/presto" target="_blank" rel="noopener noreferrer" class="footer__link-item">Presto</a></li><li class="footer__item"><a href="https://docs.pinot.apache.org/integrations/superset" target="_blank" rel="noopener noreferrer" class="footer__link-item">Superset</a></li><li class="footer__item"><a href="https://docs.pinot.apache.org/integrations/thirdeye" target="_blank" rel="noopener noreferrer" class="footer__link-item">ThirdEye</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">Docs</h4><ul class="footer__items"><li class="footer__item"><a href="https://docs.pinot.apache.org/getting-started" target="_blank" rel="noopener noreferrer" class="footer__link-item">Getting Started</a></li><li class="footer__item"><a href="https://docs.pinot.apache.org/pinot-components" target="_blank" rel="noopener noreferrer" class="footer__link-item">Pinot Components</a></li><li class="footer__item"><a href="https://docs.pinot.apache.org/users" target="_blank" rel="noopener noreferrer" class="footer__link-item">User Guide</a></li><li class="footer__item"><a href="https://docs.pinot.apache.org/operating-pinot" target="_blank" rel="noopener noreferrer" class="footer__link-item">Administration</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">Community</h4><ul class="footer__items"><li class="footer__item"><a href="https://join.slack.com/t/apache-pinot/shared_invite/zt-5z7pav2f-yYtjZdVA~EDmrGkho87Vzw" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack</a></li><li class="footer__item"><a href="https://github.com/apache/pinot" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github</a></li><li class="footer__item"><a href="https://twitter.com/ApachePinot" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter</a></li><li class="footer__item"><a href="mailto:dev-subscribe@pinot.apache.org?Subject=SubscribeToPinot" target="_blank" rel="noopener noreferrer" class="footer__link-item">Mailing List</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">Apache</h4><ul class="footer__items"><li class="footer__item"><a href="https://www.apache.org/events/current-event" target="_blank" rel="noopener noreferrer" class="footer__link-item">Events</a></li><li class="footer__item"><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Thanks</a></li><li class="footer__item"><a href="https://www.apache.org/licenses" target="_blank" rel="noopener noreferrer" class="footer__link-item">License</a></li><li class="footer__item"><a href="https://www.apache.org/security" target="_blank" rel="noopener noreferrer" class="footer__link-item">Security</a></li><li class="footer__item"><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Sponsorship</a></li><li class="footer__item"><a href="https://www.apache.org" target="_blank" rel="noopener noreferrer" class="footer__link-item">Foundation</a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://pinot.apache.org/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_qW4Z"><img src="/img/logo.svg" alt="Apache Pinot™" class="themedImage_1VuW themedImage--light_3UqQ footer__logo"><img src="/img/logo.svg" alt="Apache Pinot™" class="themedImage_1VuW themedImage--dark_hz6m footer__logo"></a></div><div class="footerCopyright_2yvt">Copyright © 2021 The Apache Software Foundation.<br>Apache Pinot, Pinot, Apache, the Apache feather logo, and the Apache Pinot project logo are registered trademarks of The Apache Software Foundation.<br><br>This page has references to third party software - Presto, PrestoDB, ThirdEye, that are not part of the Apache Software Foundation and are not covered under the Apache License.</div></div></div></footer></div>
<script src="/assets/js/runtime~main.59053854.js"></script>
<script src="/assets/js/main.5e591844.js"></script>
</body>
</html>