blob: 3c318d0b90c8a6c99837b91e7c5e07f0bf49bccd [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">13 posts tagged with &quot;devblog&quot; | Apache Pinot™</title><meta data-react-helmet="true" property="og:title" content="13 posts tagged with &quot;devblog&quot; | Apache Pinot™"><meta data-react-helmet="true" property="og:url" content="https://pinot.apache.org/blog/tags/dev-blog"><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,User Analytics,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/dev-blog"><link data-react-helmet="true" rel="alternate" href="https://pinot.apache.org/blog/tags/dev-blog" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://pinot.apache.org/blog/tags/dev-blog" 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>13 posts tagged with &quot;devblog&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/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/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/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/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/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></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>