blob: 9004d0070efa2b27418f2fc8aeecd76bcbf81e9d [file] [log] [blame]
<!DOCTYPE html><html lang="en-us" class="__variable_1fc36d scroll-smooth"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/6905431624c34d00-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/static/images/hero_diagram_mobile.svg" fetchPriority="high"/><link rel="preload" as="image" href="/static/images/hero_diagram.svg" fetchPriority="high"/><link rel="stylesheet" href="/_next/static/css/9e925a33b1acdac1.css" crossorigin="" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-dde39ac7c1b4eb4b.js" crossorigin=""/><script src="/_next/static/chunks/fd9d1056-f172993f20f9bb67.js" async="" crossorigin=""></script><script src="/_next/static/chunks/472-928e738895d89765.js" async="" crossorigin=""></script><script src="/_next/static/chunks/main-app-344a87763a0866a6.js" async="" crossorigin=""></script><script src="/_next/static/chunks/326-3a90a6443b9c824c.js" async=""></script><script src="/_next/static/chunks/980-6e243f9cd384c7d2.js" async=""></script><script src="/_next/static/chunks/702-a2bf9fe707814b79.js" async=""></script><script src="/_next/static/chunks/app/layout-776a485845c720ef.js" async=""></script><script src="/_next/static/chunks/413-f9f40b83f7bb3f22.js" async=""></script><script src="/_next/static/chunks/502-48e8504077f850af.js" async=""></script><script src="/_next/static/chunks/app/page-ab6b8b01ac93430b.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-ZXG79NJEBY" as="script"/><title>Apache Pinot™</title><meta name="description" content="Realtime distributed OLAP datastore"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><link rel="canonical" href="https://pinot.apache.org/"/><link rel="alternate" type="application/rss+xml" href="https://pinot.apache.org/feed.xml"/><meta property="og:title" content="Apache Pinot™"/><meta property="og:description" content="Realtime distributed OLAP datastore"/><meta property="og:url" content="https://pinot.apache.org/"/><meta property="og:site_name" content="Apache Pinot™"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://pinot.apache.org/static/images/twitter-card.png"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Apache Pinot™"/><meta name="twitter:description" content="Realtime distributed OLAP datastore"/><meta name="twitter:image" content="https://pinot.apache.org/static/images/twitter-card.png"/><meta name="next-size-adjust"/><meta http-equiv="Content-Security-Policy" content="default-src &#x27;self&#x27;;script-src &#x27;self&#x27; &#x27;unsafe-eval&#x27; &#x27;unsafe-inline&#x27; giscus.app analytics.umami.is www.youtube.com www.googletagmanager.com www.google-analytics.com;style-src &#x27;self&#x27; &#x27;unsafe-inline&#x27;;img-src * blob: data:;media-src *.s3.amazonaws.com;connect-src *;font-src &#x27;self&#x27;;frame-src www.youtube.com youtube.com giscus.app youtu.be https://www.youtube.com https://youtube.com;"/><link rel="apple-touch-icon" sizes="76x76" href="/static/favicons/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="/static/favicons/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="/static/favicons/favicon-16x16.png"/><link rel="manifest" href="/static/favicons/site.webmanifest"/><link rel="mask-icon" href="/static/favicons/safari-pinned-tab.svg" color="#5bbad5"/><meta name="msapplication-TileColor" content="#000000"/><meta name="theme-color" media="(prefers-color-scheme: light)" content="#fff"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#000"/><link rel="alternate" type="application/rss+xml" href="/feed.xml"/><script src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js" crossorigin="" noModule=""></script></head><body class="bg-white text-black antialiased dark:bg-gray-950 dark:text-white"><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light','dark');var e=localStorage.getItem('theme');if('system'===e||(!e&&false)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark')}else{d.style.colorScheme = 'light';c.add('light')}}else if(e){c.add(e|| '')}else{c.add('light')}if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'light'}catch(e){}}()</script><div class="mx-auto flex max-w-screen-customDesktop flex-col justify-between font-sans"><div class="inset-x-0 top-0 z-50 flex text-center text-base sm:text-left"><div class="flex w-full flex-col items-center justify-center bg-sky-200 pt-1 md:flex-row md:pt-0"><div class="flex flex-wrap items-center justify-center md:justify-start">🎉🎉🎉 Announcing the release of Apache Pinot 1.1.0</div><div class="flex items-center justify-center"><a href="https://github.com/apache/pinot/releases/tag/release-1.1.0" target="_blank" class="inline-flex items-center justify-center whitespace-nowrap rounded-md ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 underline-offset-4 hover:text-vine-120 h-10 px-4 py-2 mr-2 text-base font-semibold leading-tight text-vine-100">learn more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right mr-2 h-5 w-5"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></div><header class="border-b-1 flex items-center justify-between border-b px-5 py-3 md:px-[4rem] md:py-4"><div class="flex"><a aria-label="" href="/"><div class="flex items-center justify-between"><div class=""><svg xmlns="http://www.w3.org/2000/svg" width="120" height="48" fill="none"><g fill="#C7154A" clip-path="url(#logo_svg__a)"><path d="M42.99 18.448c1.032-.553 2.21-.831 3.535-.831 1.542 0 2.938.38 4.187 1.14 1.248.76 2.236 1.841 2.965 3.241.728 1.402 1.091 3.025 1.091 4.872s-.363 3.482-1.091 4.903c-.729 1.424-1.717 2.525-2.965 3.307-1.25.782-2.645 1.173-4.187 1.173-1.325 0-2.493-.271-3.503-.815-1.01-.543-1.83-1.226-2.46-2.053v14.612H36V17.912h4.562v2.606c.586-.825 1.395-1.515 2.426-2.068l.002-.002m6.452 5.605c-.445-.793-1.032-1.395-1.76-1.808a4.72 4.72 0 0 0-2.362-.618c-.847 0-1.602.211-2.33.635-.728.423-1.315 1.038-1.76 1.841-.445.804-.668 1.749-.668 2.835 0 1.087.221 2.032.668 2.835.445.804 1.032 1.417 1.76 1.842a4.557 4.557 0 0 0 2.33.635 4.57 4.57 0 0 0 2.362-.652c.728-.435 1.313-1.053 1.76-1.856.445-.804.668-1.76.668-2.867s-.223-2.025-.668-2.818v-.004M62.947 17.912v18.051h-4.562V17.912h4.562m.551-6.079a2.833 2.833 0 1 1-5.666 0 2.833 2.833 0 0 1 5.666 0M82.954 19.687c1.325 1.358 1.988 3.253 1.988 5.685v10.59H80.38v-9.97c0-1.434-.358-2.537-1.075-3.307-.717-.772-1.695-1.157-2.933-1.157-1.239 0-2.254.387-2.982 1.157-.728.772-1.091 1.873-1.091 3.307v9.97h-4.562V17.91h4.562v2.248a6.322 6.322 0 0 1 2.33-1.841c.944-.445 1.981-.669 3.111-.669 2.15 0 3.889.68 5.214 2.037v.002M92.892 35.098c-1.39-.77-2.482-1.861-3.275-3.275-.794-1.411-1.19-3.041-1.19-4.888s.406-3.475 1.221-4.888a8.502 8.502 0 0 1 3.34-3.275c1.412-.772 2.987-1.157 4.725-1.157 1.739 0 3.312.387 4.725 1.157a8.5 8.5 0 0 1 3.34 3.275c.815 1.411 1.222 3.041 1.222 4.888s-.418 3.475-1.255 4.888a8.708 8.708 0 0 1-3.388 3.275c-1.424.772-3.014 1.157-4.774 1.157-1.76 0-3.301-.385-4.691-1.157m7.021-3.421c.729-.402 1.309-1.005 1.744-1.809.435-.803.651-1.781.651-2.933 0-1.715-.451-3.035-1.351-3.958-.902-.924-2.004-1.385-3.307-1.385s-2.395.461-3.275 1.385c-.88.923-1.32 2.243-1.32 3.958 0 1.715.428 3.035 1.287 3.958.858.924 1.938 1.385 3.241 1.385.825 0 1.602-.2 2.33-.603v.002M115.96 21.658v8.734c0 .608.147 1.048.44 1.32.293.271.787.406 1.482.406H120v3.845h-2.867c-3.845 0-5.766-1.868-5.766-5.605v-8.7h-2.15v-3.746h2.15V13l4.595-1v5.912h4.04v3.746h-4.042M20.03 46.757l-5.538-1.385A1.97 1.97 0 0 1 13 43.46v-5.462c0-.841.349-1.601.907-2.146a12.212 12.212 0 0 0 6.975-3.644c2.602-2.731 3.627-6.578 2.882-10.251L21 9h-4V4a1 1 0 0 0-2 0v7a1 1 0 0 1-2 0v-1a1 1 0 0 0-2 0v6.758a4.489 4.489 0 0 1 2.694-.755c2.278.095 4.156 1.934 4.297 4.21a4.501 4.501 0 0 1-6.992 4.029V29a1 1 0 0 1-2 0V7a1 1 0 0 0-2 0v2h-4L.237 21.957c-.745 3.675.279 7.52 2.882 10.251a12.202 12.202 0 0 0 6.975 3.644c.558.545.907 1.305.907 2.146V43.4c0 .938-.639 1.757-1.55 1.985l-5.48 1.37c-.57.143-.97.655-.97 1.243h18c0-.588-.4-1.1-.97-1.243v.002"></path><path d="M13.5 23a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5M8 5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M12 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16 2a1 1 0 1 0 0-2 1 1 0 0 0 0 2"></path></g><defs><clipPath id="logo_svg__a"><path fill="#fff" d="M0 0h120v48H0z"></path></clipPath></defs></svg></div><div class="hidden h-6 text-2xl font-semibold sm:block"></div></div></a><div class="ml-[4.5rem] flex items-center gap-12 text-lg leading-5"><a target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org" class="hidden sm:block font-medium text-gray-900 dark:text-gray-100">Docs</a><a class="hidden sm:block font-medium text-gray-900 dark:text-gray-100" href="/download">Download</a><a class="hidden sm:block font-medium text-gray-900 dark:text-gray-100" href="/powered-by">Powered by</a><a class="hidden sm:block font-medium text-gray-900 dark:text-gray-100" href="/blog">Blog</a></div></div><button aria-label="Toggle Menu" class="sm:hidden"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="none"><mask id="menu_svg__a" width="32" height="32" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#D9D9D9" d="M0 0h32v32H0z"></path></mask><g mask="url(#menu_svg__a)"><path fill="#201F1F" d="M4.667 23.513v-2h22.666v2H4.667Zm0-6.513v-2h22.666v2H4.667Zm0-6.513v-2h22.666v2H4.667Z"></path></g></svg></button><div class="hidden gap-3 sm:flex"><button aria-label="Search"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-6 w-6 text-gray-900 dark:text-gray-100"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"></path></svg></button><a target="_blank" rel="noopener noreferrer" href="https://github.com/apache/pinot" class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground rounded-md px-3 py-2 text-base"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="mr-2"><g clip-path="url(#github_svg__a)"><path fill-rule="evenodd" d="M12.01 0C5.369 0 0 5.5 0 12.304c0 5.44 3.44 10.043 8.212 11.673.597.122.815-.265.815-.59 0-.286-.02-1.264-.02-2.283-3.34.734-4.036-1.466-4.036-1.466-.537-1.426-1.332-1.793-1.332-1.793-1.094-.754.08-.754.08-.754 1.212.082 1.849 1.263 1.849 1.263 1.073 1.874 2.803 1.345 3.5 1.019.098-.795.417-1.345.755-1.65-2.665-.285-5.468-1.345-5.468-6.07 0-1.345.477-2.445 1.232-3.3-.119-.306-.537-1.57.12-3.26 0 0 1.014-.326 3.3 1.263.98-.27 1.989-.407 3.003-.408 1.014 0 2.048.143 3.002.408 2.287-1.59 3.301-1.263 3.301-1.263.657 1.69.239 2.954.12 3.26.775.855 1.232 1.955 1.232 3.3 0 4.725-2.803 5.764-5.488 6.07.438.387.815 1.12.815 2.281 0 1.65-.02 2.975-.02 3.382 0 .326.22.713.816.59C20.56 22.347 24 17.744 24 12.305 24.02 5.5 18.63 0 12.01 0" clip-rule="evenodd"></path></g><defs><clipPath id="github_svg__a"><path fill="#fff" d="M0 0h24v24H0z"></path></clipPath></defs></svg>3.5k</a><button class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 text-primary-foreground hover:bg-vine-120 rounded-md bg-vine-100 px-6 py-2 text-base"><a target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/basics/getting-started">Get Started</a></button></div></header><main><div><section class="md:mx-auto md:max-w-screen-outerLiveArea"><div class="p-8 text-center md:pb-12 md:pt-24"><h1 class="mb-4 text-4xl font-bold leading-[45px] md:text-[3.5rem] md:leading-[70px]">Insights, Unlocked in Real Time.</h1><p class="m-auto mb-8 max-w-4xl text-lg md:leading-[28.80px]">Apache Pinot™: The real-time analytics open source platform for lightning-fast insights, effortless scaling, and cost-effective data-driven decisions.</p><div class="flex justify-center gap-4"><button class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 text-primary-foreground hover:bg-vine-120 rounded-lg bg-vine-100 px-8 py-3 text-xl"><a target="_blank" href="https://docs.pinot.apache.org/basics/getting-started">Get Started</a></button><button class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-background hover:bg-accent rounded-lg border-2 border-vine-100 px-8 py-3 text-xl text-vine-100 hover:border-vine-120 hover:text-vine-120"><a target="_blank" href="https://apache-pinot.slack.com/join/shared_invite/zt-5z7pav2f-yYtjZdVA~EDmrGkho87Vzw#/shared-invite/email">Join Slack</a></button></div></div><div><div class="block sm:hidden"><img alt="Apache Pinot" fetchPriority="high" width="500" height="300" decoding="async" data-nimg="1" class="m-auto pb-14" style="color:transparent" src="/static/images/hero_diagram_mobile.svg"/></div><div class="hidden sm:block"><img alt="Apache Pinot" fetchPriority="high" width="1224" height="500" decoding="async" data-nimg="1" class="m-auto pb-14" style="color:transparent" src="/static/images/hero_diagram.svg"/></div></div></section><section class="bg-stone-100 dark:bg-gray-900"><div class="flex flex-col px-5 py-14 sm:flex-row sm:px-6 md:mx-auto md:max-w-screen-outerLiveArea md:gap-20 md:px-[5.5rem] md:py-[6.5rem]"><article class="flex flex-1 flex-col"><header><h2 class="mb-3 text-[1.75rem] font-bold md:text-[2.5rem]">What is Apache Pinot?</h2></header><p class="text-base leading-relaxed md:text-lg">Originally developed at LinkedIn, Apache PinotTM is a real-time distributed OLAP datastore, purpose-built to provide ultra low-latency analytics at extremely high throughput.</p><br/><p class="text-base leading-relaxed md:text-lg">With its distributed architecture and columnar storage, Apache Pinot empowers businesses to gain valuable insights from real-time data, supporting data-driven decision-making and applications.</p><a target="_blank" class="inline-flex items-center whitespace-nowrap rounded-md ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 underline-offset-4 hover:text-vine-120 h-10 my-6 mr-2 justify-start p-0 text-lg font-semibold leading-tight text-vine-100" href="https://docs.pinot.apache.org/">Learn More<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right mr-2 h-5 w-5"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></article><aside class="flex-1"><iframe class="h-[197px] w-full md:h-full" src="https://www.youtube.com/embed/_lqdfq2c9cQ" title="What is Apache Pinot?" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen=""></iframe></aside></div></section><section class="flex px-6 py-14 md:mx-auto md:max-w-screen-outerLiveArea md:px-[6.75rem] md:py-[6.5rem]"><div class="mx-auto max-w-7xl"><h3 class="pb-8 text-center text-[1.75rem] font-semibold md:pb-16 md:text-[2rem]">Features</h3><div class="grid grid-cols-1 gap-y-10 sm:grid-cols-2 md:gap-x-[5.625rem] md:gap-y-24 lg:grid-cols-3"><div class="flex flex-col items-center md:w-[20.875rem]"><img alt="Fast Queries" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="mb-4 md:mb-5" style="color:transparent" src="/static/images/features/fast_queries.svg"/><h3 class="mb-2 text-lg font-semibold">Fast Queries</h3><p class="text-center leading-relaxed">Filter and aggregate petabyte data sets with P90 latencies in the tens of milliseconds—fast enough to return live results interactively in the UI.</p></div><div class="flex flex-col items-center md:w-[20.875rem]"><img alt="High Concurrency" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="mb-4 md:mb-5" style="color:transparent" src="/static/images/features/high_concurrency.svg"/><h3 class="mb-2 text-lg font-semibold">High Concurrency</h3><p class="text-center leading-relaxed">With user-facing applications querying Pinot directly, it can serve hundreds of thousands of concurrent queries per second.</p></div><div class="flex flex-col items-center md:w-[20.875rem]"><img alt="Batch and Streaming Ingest" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="mb-4 md:mb-5" style="color:transparent" src="/static/images/features/batch_ingest.svg"/><h3 class="mb-2 text-lg font-semibold">Batch and Streaming Ingest</h3><p class="text-center leading-relaxed">Ingest from <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://kafka.apache.org/">Apache Kafka</a>, <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://pulsar.apache.org/">Apache Pulsar</a>, and <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://aws.amazon.com/kinesis/">AWS Kinesis</a> in real time. Batch ingest from Hadoop, Spark, AWS S3, and more. Combine batch and streaming sources into a single table for querying.</p></div><div class="flex flex-col items-center md:w-[20.875rem]"><img alt="Upserts" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="mb-4 md:mb-5" style="color:transparent" src="/static/images/features/upsert.svg"/><h3 class="mb-2 text-lg font-semibold">Upserts</h3><p class="text-center leading-relaxed">Ingest the same record many times, but see only the latest value at query time. Upserts are built-in and production-tested since version 0.6.</p></div><div class="flex flex-col items-center md:w-[20.875rem]"><img alt="Versatile Joins" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="mb-4 md:mb-5" style="color:transparent" src="/static/images/features/versatile_joins.svg"/><h3 class="mb-2 text-lg font-semibold">Versatile Joins</h3><p class="text-center leading-relaxed">Perform arbitrary fact/dimension and fact/fact joins on petabyte data sets.</p></div><div class="flex flex-col items-center md:w-[20.875rem]"><img alt="Rich Indexing Options" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="mb-4 md:mb-5" style="color:transparent" src="/static/images/features/options.svg"/><h3 class="mb-2 text-lg font-semibold">Rich Indexing Options</h3><p class="text-center leading-relaxed">Choose from pluggable indexes including <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/basics/indexing/timestamp-index">timestamp</a>, <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/basics/indexing/inverted-index">inverted</a>, <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/basics/indexing/star-tree-index">StarTree</a>, <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/basics/indexing/bloom-filter">Bloom filter</a>, <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/basics/indexing/range-index">range</a>, <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/basics/indexing/text-search-support">text</a>, <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/basics/indexing/json-index">JSON</a>, and <a class="text-blue-600 underline hover:text-blue-800" target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/basics/indexing/geospatial-support">geospatial</a> options.</p></div><div class="flex flex-col items-center md:w-[20.875rem]"><img alt="Built for Scale" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="mb-4 md:mb-5" style="color:transparent" src="/static/images/features/built_scale.svg"/><h3 class="mb-2 text-lg font-semibold">Built for Scale</h3><p class="text-center leading-relaxed">Pinot is horizontally scalable and fault-tolerant, adaptable to workloads across the storage and throughput spectrum.</p></div><div class="flex flex-col items-center md:w-[20.875rem]"><img alt="SQL Query Interface" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="mb-4 md:mb-5" style="color:transparent" src="/static/images/features/sql_query.svg"/><h3 class="mb-2 text-lg font-semibold">SQL Query Interface</h3><p class="text-center leading-relaxed">The highly standard SQL query interface is accessible through a built-in query editor and a REST API.</p></div><div class="flex flex-col items-center md:w-[20.875rem]"><img alt="Built-in Multitenancy" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="mb-4 md:mb-5" style="color:transparent" src="/static/images/features/multitenancy.svg"/><h3 class="mb-2 text-lg font-semibold">Built-in Multitenancy</h3><p class="text-center leading-relaxed">Manage and secure data in isolated logical namespaces for cloud-friendly resource management.</p></div></div></div></section><section class="bg-stone-100 dark:bg-gray-900"><div class="flex flex-col px-[2.625rem] py-14 md:mx-auto md:max-w-screen-outerLiveArea md:px-[13.25rem] md:py-[6.5rem]"><article><div class="relative rounded border-[1.5px] border-amber-800" role="region" aria-roledescription="carousel"><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground absolute h-8 w-8 rounded-full top-1/2 -translate-y-1/2 left-0 z-10 -ml-10" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#C69781" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left h-8 w-8"><path d="m15 18-6-6 6-6"></path></svg><span class="sr-only">Previous slide</span></button><div class="overflow-hidden"><div class="flex"><div role="group" aria-roledescription="slide" class="min-w-0 shrink-0 grow-0 basis-full p-4 flex flex-col items-center justify-center p-4"><img alt="Razopay" loading="lazy" width="132" height="28" decoding="async" data-nimg="1" class=" pb-5 pt-8" style="color:transparent" src="/static/images/carousel/razorpay.svg"/><span class=" max-w-[52rem]"><p class="text-center text-lg text-gray-900 dark:text-white md:text-xl">“<!-- -->Apache Pinot has truly played a fundamental role in Razorpay&#x27;s monitoring journey!<!-- -->”</p><p class="pb-1 pt-4 text-center text-gray-500 dark:text-gray-300 md:text-base">- <!-- -->Prashant Pandey</p></span></div><div role="group" aria-roledescription="slide" class="min-w-0 shrink-0 grow-0 basis-full p-4 flex flex-col items-center justify-center p-4"><img alt="Stripe" loading="lazy" width="132" height="28" decoding="async" data-nimg="1" class=" pb-5 pt-8" style="color:transparent" src="/static/images/carousel/stripe.svg"/><span class=" max-w-[52rem]"><p class="text-center text-lg text-gray-900 dark:text-white md:text-xl">“<!-- -->Pinot enables us to execute sub-second, petabyte-scale aggregation queries over fresh financial events in our internal ledger. We chose Pinot because of its rich feature set and scalability, which has enabled better performance than our previous solution — at a lower cost.<!-- -->”</p><p class="pb-1 pt-4 text-center text-gray-500 dark:text-gray-300 md:text-base">- <!-- -->Peter Bakkum</p></span></div><div role="group" aria-roledescription="slide" class="min-w-0 shrink-0 grow-0 basis-full p-4 flex flex-col items-center justify-center p-4"><img alt="Webex" loading="lazy" width="132" height="28" decoding="async" data-nimg="1" class=" pb-5 pt-8" style="color:transparent" src="/static/images/carousel/webex.svg"/><span class=" max-w-[52rem]"><p class="text-center text-lg text-gray-900 dark:text-white md:text-xl">“<!-- -->Forget sluggish queries!! Apache Pinot whipped our runtime aggregates, with sub-second latencies on all but the most complex queries. On top of the speed boost, Pinot slashed our storage footprint by 10x, letting us shrink the cluster by a whopping 500 nodes<!-- -->”</p><p class="pb-1 pt-4 text-center text-gray-500 dark:text-gray-300 md:text-base">- <!-- -->WEBEX</p></span></div></div></div><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground absolute h-8 w-8 rounded-full top-1/2 -translate-y-1/2 right-0 z-10 -mr-10" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#C69781" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right h-8 w-8"><path d="m9 18 6-6-6-6"></path></svg><span class="sr-only">Next slide</span></button><div class="mb-8 flex items-center justify-center"><button type="button" class="mx-1 h-2 w-2 rounded-full bg-amber-800 transition-opacity duration-300 opacity-100" aria-label="Go to slide 1"></button><button type="button" class="mx-1 h-2 w-2 rounded-full bg-amber-800 transition-opacity duration-300 opacity-30" aria-label="Go to slide 2"></button><button type="button" class="mx-1 h-2 w-2 rounded-full bg-amber-800 transition-opacity duration-300 opacity-30" aria-label="Go to slide 3"></button></div></div></article><a class="inline-flex items-center whitespace-nowrap rounded-md ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 underline-offset-4 hover:text-vine-120 h-10 justify-center p-0 pt-8 text-base font-semibold leading-tight text-vine-100 md:pt-12" href="/powered-by">See Company Stories<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right mr-2 h-5 w-5"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></section><section class="px-6 py-14 md:mx-auto md:max-w-screen-outerLiveArea md:px-[13.5rem] md:py-[6.5rem]"><h3 class="pb-8 text-center text-[2rem] font-bold md:pb-14">Join our Community</h3><div class="flex flex-wrap justify-center gap-x-[1.375rem] gap-y-6 lg:gap-[6.75rem]"><a href="https://join.slack.com/t/apache-pinot/shared_invite/zt-5z7pav2f-yYtjZdVA~EDmrGkho87Vzw" class="flex h-36 w-40 flex-col items-center justify-center rounded-lg border-2 border-amber-800 transition-colors hover:bg-gray-100 focus:bg-gray-100 dark:border-gray-800 dark:hover:bg-gray-800 dark:focus:bg-gray-800" target="_blank"><div class="w-16 h-16 flex relative mb-2 items-center justify-center"><img alt="Slack icon" loading="lazy" width="44" height="44" decoding="async" data-nimg="1" style="color:transparent;width:auto;height:auto" src="/static/images/socials/slack.svg"/></div><span class="mt-2 text-lg">Slack</span></a><a href="https://github.com/apache/pinot" class="flex h-36 w-40 flex-col items-center justify-center rounded-lg border-2 border-amber-800 transition-colors hover:bg-gray-100 focus:bg-gray-100 dark:border-gray-800 dark:hover:bg-gray-800 dark:focus:bg-gray-800" target="_blank"><div class="w-16 h-16 flex relative mb-2 items-center justify-center"><img alt="GitHub icon" loading="lazy" width="44" height="44" decoding="async" data-nimg="1" style="color:transparent;width:auto;height:auto" src="/static/images/socials/github.svg"/></div><span class="mt-2 text-lg">GitHub</span></a><a href="https://www.meetup.com/apache-pinot/" class="flex h-36 w-40 flex-col items-center justify-center rounded-lg border-2 border-amber-800 transition-colors hover:bg-gray-100 focus:bg-gray-100 dark:border-gray-800 dark:hover:bg-gray-800 dark:focus:bg-gray-800" target="_blank"><div class="w-16 h-16 flex relative mb-2 items-center justify-center"><img alt="Meetups icon" loading="lazy" width="44" height="44" decoding="async" data-nimg="1" style="color:transparent;width:auto;height:auto" src="/static/images/socials/meetup.svg"/></div><span class="mt-2 text-lg">Meetups</span></a><a href="https://rtasummit.com" class="flex h-36 w-40 flex-col items-center justify-center rounded-lg border-2 border-amber-800 transition-colors hover:bg-gray-100 focus:bg-gray-100 dark:border-gray-800 dark:hover:bg-gray-800 dark:focus:bg-gray-800" target="_blank"><div class="w-auto h-16 flex relative mb-2 items-center justify-center"><img alt="RTA Summit icon" loading="lazy" width="120" height="44" decoding="async" data-nimg="1" style="color:transparent;width:auto;height:auto" src="/static/images/socials/rta.svg"/></div><span class="mt-2 text-lg">RTA Summit</span></a></div></section><section class="bg-stone-100 dark:bg-gray-900 "><div class="mx-auto flex flex-col px-5 py-14 sm:flex-row sm:px-6 md:mx-auto md:max-w-screen-outerLiveArea md:px-[11.75rem] md:py-[6.5rem]"><article class="flex flex-col"><header class="pb-6 md:pb-8 md:pt-6"><h2 class=" text-[2rem] font-bold leading-10 text-gray-900 dark:text-white md:text-5xl md:leading-[4rem]">Start Your Real-Time Analytics Journey.</h2></header><div class="flex justify-start pb-6"><button class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 text-primary-foreground hover:bg-vine-120 mr-2 rounded-lg bg-vine-100 px-8 py-3 text-xl"><a target="_blank" href="https://docs.pinot.apache.org/basics/getting-started">Get Started</a></button></div></article><aside class="flex flex-col overflow-hidden rounded-lg md:w-4/6"><div class="my-4 rounded-lg border-2 border-amber-800"><div class="overflow-hidden rounded-lg"><div class="flex items-center justify-between border-b border-amber-800 p-4"><div class="flex space-x-2"><div class="h-3 w-3 rounded-full bg-red-500"></div><div class="h-3 w-3 rounded-full bg-yellow-400"></div><div class="h-3 w-3 rounded-full bg-green-500"></div></div></div><div class="mb-2 ml-8 flex space-x-1 border-b-2"><button class="border-b-4 px-4 py-2
pt-5 font-[Source_Code_Pro]
border-rose-700 text-base font-semibold">x86</button><button class="border-b-4 px-4 py-2
pt-5 font-[Source_Code_Pro]
border-transparent opacity-30">ARM64</button></div><div class="table w-full whitespace-pre-wrap p-4 font-[Source_Code_Pro] leading-loose"><div class="table-row"><span class="table-cell select-none pr-1 text-gray-400">1</span><span class="table-cell">docker run -p 9000:9000 \</span></div><div class="table-row"><span class="table-cell select-none pr-1 text-gray-400">2</span><span class="table-cell">apachepinot/pinot:1.1.0 \</span></div><div class="table-row"><span class="table-cell select-none pr-1 text-gray-400">3</span><span class="table-cell">QuickStart -type hybrid</span></div></div></div><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3 m-7 w-16 border-2 border-vine-100 text-vine-100">copy</button></div></aside></div></section><section aria-labelledby="blog-section-title" class="md:mx-auto md:max-w-screen-outerLiveArea"><h4 id="blog-section-title" class="m-12 text-center text-[2rem] font-bold leading-10 lg:mt-24">Pinot Blog</h4><div class="grid grid-cols-1 gap-[1.875rem] md:grid-cols-3 lg:px-24"><a aria-label="Announcing Apache Pinot 1.0™" class="px-5 sm:px-0" href="/blog/2023/09/19/Annoucing-Apache-Pinot-1-0"><div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full border-neutral-500 p-5"><div class="flex flex-col space-y-1.5 h-full justify-between p-0"><div><h3 class="tracking-tight pb-2 text-xl font-semibold leading-8 text-stone-900">Announcing Apache Pinot 1.0™</h3><p class="text-sm leading-[1.1rem] text-stone-900">Hubert Dulay, Mayank Shrivastava, Neha Pawar</p></div><p class="text-sm text-muted-foreground leading-[1.1rem]">September 19th, 2023<!-- --> • <!-- -->13 min read</p></div></div></a><a aria-label="Segment Compaction for Upsert Enabled Tables in Apache Pinot" class="px-5 sm:px-0" href="/blog/2023/08/04/segment-compaction-for-upsert-enabled-tables-in-apache-pinot-3f30657aa077"><div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full border-neutral-500 p-5"><div class="flex flex-col space-y-1.5 h-full justify-between p-0"><div><h3 class="tracking-tight pb-2 text-xl font-semibold leading-8 text-stone-900">Segment Compaction for Upsert Enabled Tables in Apache Pinot</h3><p class="text-sm leading-[1.1rem] text-stone-900">Robert Zych</p></div><p class="text-sm text-muted-foreground leading-[1.1rem]">August 4th, 2023<!-- --> • <!-- -->4 min read</p></div></div></a><a aria-label="Star-Tree Index in Apache Pinot - Part 3 - Understanding the Impact in Real Customer Scenarios" class="px-5 sm:px-0" href="/blog/2023/07/12/star-tree-index-in-apache-pinot-part-3-understanding-the-impact-in-real-customer"><div class="rounded-lg border bg-card text-card-foreground shadow-sm h-full border-neutral-500 p-5"><div class="flex flex-col space-y-1.5 h-full justify-between p-0"><div><h3 class="tracking-tight pb-2 text-xl font-semibold leading-8 text-stone-900">Star-Tree Index in Apache Pinot - Part 3 - Understanding the Impact in Real Customer Scenarios</h3><p class="text-sm leading-[1.1rem] text-stone-900">Sandeep Dabade, Kulbir Nijjer</p></div><p class="text-sm text-muted-foreground leading-[1.1rem]">July 12th, 2023<!-- --> • <!-- -->8 min read</p></div></div></a></div><div class="mt-8 pb-14 text-center md:pb-32"><a class="inline-flex items-center justify-center whitespace-nowrap rounded-md ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 underline-offset-4 hover:text-vine-120 h-10 px-4 py-2 text-base font-semibold leading-tight text-vine-100" href="/blog">Browse All<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right mr-2 h-5 w-5"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></section></div></main><footer class="border-t bg-sky-100 px-5 py-10 md:px-[6.75rem] md:pb-10 md:pt-16"><div class="mx-auto flex max-w-7xl flex-wrap justify-between"><div class="flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="120" height="48" fill="none"><g fill="#C7154A" clip-path="url(#logo_svg__a)"><path d="M42.99 18.448c1.032-.553 2.21-.831 3.535-.831 1.542 0 2.938.38 4.187 1.14 1.248.76 2.236 1.841 2.965 3.241.728 1.402 1.091 3.025 1.091 4.872s-.363 3.482-1.091 4.903c-.729 1.424-1.717 2.525-2.965 3.307-1.25.782-2.645 1.173-4.187 1.173-1.325 0-2.493-.271-3.503-.815-1.01-.543-1.83-1.226-2.46-2.053v14.612H36V17.912h4.562v2.606c.586-.825 1.395-1.515 2.426-2.068l.002-.002m6.452 5.605c-.445-.793-1.032-1.395-1.76-1.808a4.72 4.72 0 0 0-2.362-.618c-.847 0-1.602.211-2.33.635-.728.423-1.315 1.038-1.76 1.841-.445.804-.668 1.749-.668 2.835 0 1.087.221 2.032.668 2.835.445.804 1.032 1.417 1.76 1.842a4.557 4.557 0 0 0 2.33.635 4.57 4.57 0 0 0 2.362-.652c.728-.435 1.313-1.053 1.76-1.856.445-.804.668-1.76.668-2.867s-.223-2.025-.668-2.818v-.004M62.947 17.912v18.051h-4.562V17.912h4.562m.551-6.079a2.833 2.833 0 1 1-5.666 0 2.833 2.833 0 0 1 5.666 0M82.954 19.687c1.325 1.358 1.988 3.253 1.988 5.685v10.59H80.38v-9.97c0-1.434-.358-2.537-1.075-3.307-.717-.772-1.695-1.157-2.933-1.157-1.239 0-2.254.387-2.982 1.157-.728.772-1.091 1.873-1.091 3.307v9.97h-4.562V17.91h4.562v2.248a6.322 6.322 0 0 1 2.33-1.841c.944-.445 1.981-.669 3.111-.669 2.15 0 3.889.68 5.214 2.037v.002M92.892 35.098c-1.39-.77-2.482-1.861-3.275-3.275-.794-1.411-1.19-3.041-1.19-4.888s.406-3.475 1.221-4.888a8.502 8.502 0 0 1 3.34-3.275c1.412-.772 2.987-1.157 4.725-1.157 1.739 0 3.312.387 4.725 1.157a8.5 8.5 0 0 1 3.34 3.275c.815 1.411 1.222 3.041 1.222 4.888s-.418 3.475-1.255 4.888a8.708 8.708 0 0 1-3.388 3.275c-1.424.772-3.014 1.157-4.774 1.157-1.76 0-3.301-.385-4.691-1.157m7.021-3.421c.729-.402 1.309-1.005 1.744-1.809.435-.803.651-1.781.651-2.933 0-1.715-.451-3.035-1.351-3.958-.902-.924-2.004-1.385-3.307-1.385s-2.395.461-3.275 1.385c-.88.923-1.32 2.243-1.32 3.958 0 1.715.428 3.035 1.287 3.958.858.924 1.938 1.385 3.241 1.385.825 0 1.602-.2 2.33-.603v.002M115.96 21.658v8.734c0 .608.147 1.048.44 1.32.293.271.787.406 1.482.406H120v3.845h-2.867c-3.845 0-5.766-1.868-5.766-5.605v-8.7h-2.15v-3.746h2.15V13l4.595-1v5.912h4.04v3.746h-4.042M20.03 46.757l-5.538-1.385A1.97 1.97 0 0 1 13 43.46v-5.462c0-.841.349-1.601.907-2.146a12.212 12.212 0 0 0 6.975-3.644c2.602-2.731 3.627-6.578 2.882-10.251L21 9h-4V4a1 1 0 0 0-2 0v7a1 1 0 0 1-2 0v-1a1 1 0 0 0-2 0v6.758a4.489 4.489 0 0 1 2.694-.755c2.278.095 4.156 1.934 4.297 4.21a4.501 4.501 0 0 1-6.992 4.029V29a1 1 0 0 1-2 0V7a1 1 0 0 0-2 0v2h-4L.237 21.957c-.745 3.675.279 7.52 2.882 10.251a12.202 12.202 0 0 0 6.975 3.644c.558.545.907 1.305.907 2.146V43.4c0 .938-.639 1.757-1.55 1.985l-5.48 1.37c-.57.143-.97.655-.97 1.243h18c0-.588-.4-1.1-.97-1.243v.002"></path><path d="M13.5 23a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5M8 5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M12 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16 2a1 1 0 1 0 0-2 1 1 0 0 0 0 2"></path></g><defs><clipPath id="logo_svg__a"><path fill="#fff" d="M0 0h120v48H0z"></path></clipPath></defs></svg></div><div class="flex flex-wrap gap-x-16 gap-y-5 py-8 md:pl-24 md:pr-[21.625rem]"> <div><h5 class="mb-4 text-lg font-semibold">Resources</h5><div class="flex justify-between gap-x-10"><div class="flex flex-col"><a target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/" class="block py-1 text-gray-600 hover:text-gray-900">Docs</a><a target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/getting-started" class="block py-1 text-gray-600 hover:text-gray-900">Getting Started</a><a target="_blank" rel="noopener noreferrer" href="https://docs.pinot.apache.org/integrations/thirdeye" class="block py-1 text-gray-600 hover:text-gray-900">ThirdEye</a></div><div class="flex flex-col"><a class="block py-1 text-gray-600 hover:text-gray-900" href="/powered-by">Company Stories</a><a class="block py-1 text-gray-600 hover:text-gray-900" href="/download">Download</a><a class="block py-1 text-gray-600 hover:text-gray-900" href="/blog">Blog</a></div></div></div><div><h5 class="mb-4 text-lg font-semibold">Apache</h5><div class="flex justify-between gap-x-10"><div class="flex flex-col"><a target="_blank" rel="noopener noreferrer" href="https://www.apache.org" class="block py-1 text-gray-600 hover:text-gray-900">Foundation</a><a target="_blank" rel="noopener noreferrer" href="https://www.apache.org/licenses" class="block py-1 text-gray-600 hover:text-gray-900">License</a><a target="_blank" rel="noopener noreferrer" href="https://www.apache.org/security" class="block py-1 text-gray-600 hover:text-gray-900">Security</a></div><div class="flex flex-col"><a target="_blank" rel="noopener noreferrer" href="https://www.apache.org/foundation/sponsorship.html" class="block py-1 text-gray-600 hover:text-gray-900">Sponsorship</a><a target="_blank" rel="noopener noreferrer" href="https://www.apache.org/events/current-event" class="block py-1 text-gray-600 hover:text-gray-900">Events</a><a target="_blank" rel="noopener noreferrer" href="https://www.apache.org/foundation/thanks.html" class="block py-1 text-gray-600 hover:text-gray-900">Thanks</a></div></div></div></div><div class="mt-4 flex justify-center md:mt-0"><a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/apache-pinot/shared_invite/zt-5z7pav2f-yYtjZdVA~EDmrGkho87Vzw" class="mr-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-slack fill-gray-900"><rect width="3" height="8" x="13" y="2" rx="1.5"></rect><path d="M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5"></path><rect width="3" height="8" x="8" y="14" rx="1.5"></rect><path d="M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5"></path><rect width="8" height="3" x="14" y="13" rx="1.5"></rect><path d="M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5"></path><rect width="8" height="3" x="2" y="8" rx="1.5"></rect><path d="M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5"></path></svg></a><a target="_blank" rel="noopener noreferrer" href="https://github.com/apache/pinot"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" size="24"><g clip-path="url(#github_svg__a)"><path fill-rule="evenodd" d="M12.01 0C5.369 0 0 5.5 0 12.304c0 5.44 3.44 10.043 8.212 11.673.597.122.815-.265.815-.59 0-.286-.02-1.264-.02-2.283-3.34.734-4.036-1.466-4.036-1.466-.537-1.426-1.332-1.793-1.332-1.793-1.094-.754.08-.754.08-.754 1.212.082 1.849 1.263 1.849 1.263 1.073 1.874 2.803 1.345 3.5 1.019.098-.795.417-1.345.755-1.65-2.665-.285-5.468-1.345-5.468-6.07 0-1.345.477-2.445 1.232-3.3-.119-.306-.537-1.57.12-3.26 0 0 1.014-.326 3.3 1.263.98-.27 1.989-.407 3.003-.408 1.014 0 2.048.143 3.002.408 2.287-1.59 3.301-1.263 3.301-1.263.657 1.69.239 2.954.12 3.26.775.855 1.232 1.955 1.232 3.3 0 4.725-2.803 5.764-5.488 6.07.438.387.815 1.12.815 2.281 0 1.65-.02 2.975-.02 3.382 0 .326.22.713.816.59C20.56 22.347 24 17.744 24 12.305 24.02 5.5 18.63 0 12.01 0" clip-rule="evenodd"></path></g><defs><clipPath id="github_svg__a"><path fill="#fff" d="M0 0h24v24H0z"></path></clipPath></defs></svg></a></div></div><div class="mt-8 border-t border-neutral-300 pt-4 text-left text-sm text-gray-600">Copyright © <!-- -->2024<!-- --> The Apache Software Foundation. Apache Pinot, Pinot, Apache, the Apache feather logo, and the Apache Pinot project logo are registered trademarks of The Apache Software Foundation. This page has references to third party software - Presto, PrestoDB, ThirdEye, Trino, TrinoDB, that are not part of the Apache Software Foundation and are not covered under the Apache License.</div></footer></div><script src="/_next/static/chunks/webpack-dde39ac7c1b4eb4b.js" crossorigin="" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/6905431624c34d00-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/css/9e925a33b1acdac1.css\",\"style\",{\"crossOrigin\":\"\"}]\n0:\"$L3\"\n"])</script><script>self.__next_f.push([1,"4:I[3728,[],\"\"]\n6:I[9928,[],\"\"]\n7:I[7821,[\"326\",\"static/chunks/326-3a90a6443b9c824c.js\",\"980\",\"static/chunks/980-6e243f9cd384c7d2.js\",\"702\",\"static/chunks/702-a2bf9fe707814b79.js\",\"185\",\"static/chunks/app/layout-776a485845c720ef.js\"],\"ThemeProviders\"]\n8:I[3994,[\"326\",\"static/chunks/326-3a90a6443b9c824c.js\",\"980\",\"static/chunks/980-6e243f9cd384c7d2.js\",\"702\",\"static/chunks/702-a2bf9fe707814b79.js\",\"185\",\"static/chunks/app/layout-776a485845c720ef.js\"],\"\"]\n9:I[9640,[\"326\",\"static/chunks/326-3a90a6443b9c824c.js"])</script><script>self.__next_f.push([1,"\",\"980\",\"static/chunks/980-6e243f9cd384c7d2.js\",\"702\",\"static/chunks/702-a2bf9fe707814b79.js\",\"185\",\"static/chunks/app/layout-776a485845c720ef.js\"],\"AlgoliaSearchProvider\"]\na:I[7975,[\"326\",\"static/chunks/326-3a90a6443b9c824c.js\",\"980\",\"static/chunks/980-6e243f9cd384c7d2.js\",\"702\",\"static/chunks/702-a2bf9fe707814b79.js\",\"185\",\"static/chunks/app/layout-776a485845c720ef.js\"],\"\"]\nb:I[6954,[],\"\"]\nc:I[7264,[],\"\"]\nd:I[8326,[\"326\",\"static/chunks/326-3a90a6443b9c824c.js\",\"980\",\"static/chunks/980-6e243f9cd384c7d2.js\""])</script><script>self.__next_f.push([1,",\"702\",\"static/chunks/702-a2bf9fe707814b79.js\",\"185\",\"static/chunks/app/layout-776a485845c720ef.js\"],\"\"]\n10:T9fe,"])</script><script>self.__next_f.push([1,"M42.99 18.448c1.032-.553 2.21-.831 3.535-.831 1.542 0 2.938.38 4.187 1.14 1.248.76 2.236 1.841 2.965 3.241.728 1.402 1.091 3.025 1.091 4.872s-.363 3.482-1.091 4.903c-.729 1.424-1.717 2.525-2.965 3.307-1.25.782-2.645 1.173-4.187 1.173-1.325 0-2.493-.271-3.503-.815-1.01-.543-1.83-1.226-2.46-2.053v14.612H36V17.912h4.562v2.606c.586-.825 1.395-1.515 2.426-2.068l.002-.002m6.452 5.605c-.445-.793-1.032-1.395-1.76-1.808a4.72 4.72 0 0 0-2.362-.618c-.847 0-1.602.211-2.33.635-.728.423-1.315 1.038-1.76 1.841-.445.804-.668 1.749-.668 2.835 0 1.087.221 2.032.668 2.835.445.804 1.032 1.417 1.76 1.842a4.557 4.557 0 0 0 2.33.635 4.57 4.57 0 0 0 2.362-.652c.728-.435 1.313-1.053 1.76-1.856.445-.804.668-1.76.668-2.867s-.223-2.025-.668-2.818v-.004M62.947 17.912v18.051h-4.562V17.912h4.562m.551-6.079a2.833 2.833 0 1 1-5.666 0 2.833 2.833 0 0 1 5.666 0M82.954 19.687c1.325 1.358 1.988 3.253 1.988 5.685v10.59H80.38v-9.97c0-1.434-.358-2.537-1.075-3.307-.717-.772-1.695-1.157-2.933-1.157-1.239 0-2.254.387-2.982 1.157-.728.772-1.091 1.873-1.091 3.307v9.97h-4.562V17.91h4.562v2.248a6.322 6.322 0 0 1 2.33-1.841c.944-.445 1.981-.669 3.111-.669 2.15 0 3.889.68 5.214 2.037v.002M92.892 35.098c-1.39-.77-2.482-1.861-3.275-3.275-.794-1.411-1.19-3.041-1.19-4.888s.406-3.475 1.221-4.888a8.502 8.502 0 0 1 3.34-3.275c1.412-.772 2.987-1.157 4.725-1.157 1.739 0 3.312.387 4.725 1.157a8.5 8.5 0 0 1 3.34 3.275c.815 1.411 1.222 3.041 1.222 4.888s-.418 3.475-1.255 4.888a8.708 8.708 0 0 1-3.388 3.275c-1.424.772-3.014 1.157-4.774 1.157-1.76 0-3.301-.385-4.691-1.157m7.021-3.421c.729-.402 1.309-1.005 1.744-1.809.435-.803.651-1.781.651-2.933 0-1.715-.451-3.035-1.351-3.958-.902-.924-2.004-1.385-3.307-1.385s-2.395.461-3.275 1.385c-.88.923-1.32 2.243-1.32 3.958 0 1.715.428 3.035 1.287 3.958.858.924 1.938 1.385 3.241 1.385.825 0 1.602-.2 2.33-.603v.002M115.96 21.658v8.734c0 .608.147 1.048.44 1.32.293.271.787.406 1.482.406H120v3.845h-2.867c-3.845 0-5.766-1.868-5.766-5.605v-8.7h-2.15v-3.746h2.15V13l4.595-1v5.912h4.04v3.746h-4.042M20.03 46.757l-5.538-1.385A1.97 1.97 0 0 1 13 43.46v-5.462c0-.841.349-1.601.907-2.146a12.212 12.212 0 0 0 6.975-3.644c2.602-2.731 3.627-6.578 2.882-10.251L21 9h-4V4a1 1 0 0 0-2 0v7a1 1 0 0 1-2 0v-1a1 1 0 0 0-2 0v6.758a4.489 4.489 0 0 1 2.694-.755c2.278.095 4.156 1.934 4.297 4.21a4.501 4.501 0 0 1-6.992 4.029V29a1 1 0 0 1-2 0V7a1 1 0 0 0-2 0v2h-4L.237 21.957c-.745 3.675.279 7.52 2.882 10.251a12.202 12.202 0 0 0 6.975 3.644c.558.545.907 1.305.907 2.146V43.4c0 .938-.639 1.757-1.55 1.985l-5.48 1.37c-.57.143-.97.655-.97 1.243h18c0-.588-.4-1.1-.97-1.243v.002"])</script><script>self.__next_f.push([1,"3:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9e925a33b1acdac1.css\",\"precedence\":\"next\",\"crossOrigin\":\"\"}]],[\"$\",\"$L4\",null,{\"buildId\":\"rmcKjFZ3e9kKdH1iJwCIQ\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/\",\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialHead\":[false,\"$L5\"],\"globalErrorComponent\":\"$6\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en-us\",\"className\":\"__variable_1fc36d scroll-smooth\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self';script-src 'self' 'unsafe-eval' 'unsafe-inline' giscus.app analytics.umami.is www.youtube.com www.googletagmanager.com www.google-analytics.com;style-src 'self' 'unsafe-inline';img-src * blob: data:;media-src *.s3.amazonaws.com;connect-src *;font-src 'self';frame-src www.youtube.com youtube.com giscus.app youtu.be https://www.youtube.com https://youtube.com;\"}],[\"$\",\"link\",null,{\"rel\":\"apple-touch-icon\",\"sizes\":\"76x76\",\"href\":\"/static/favicons/apple-touch-icon.png\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/png\",\"sizes\":\"32x32\",\"href\":\"/static/favicons/favicon-32x32.png\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/png\",\"sizes\":\"16x16\",\"href\":\"/static/favicons/favicon-16x16.png\"}],[\"$\",\"link\",null,{\"rel\":\"manifest\",\"href\":\"/static/favicons/site.webmanifest\"}],[\"$\",\"link\",null,{\"rel\":\"mask-icon\",\"href\":\"/static/favicons/safari-pinned-tab.svg\",\"color\":\"#5bbad5\"}],[\"$\",\"meta\",null,{\"name\":\"msapplication-TileColor\",\"content\":\"#000000\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"#fff\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"#000\"}],[\"$\",\"link\",null,{\"rel\":\"alternate\",\"type\":\"application/rss+xml\",\"href\":\"/feed.xml\"}]]}],[\"$\",\"body\",null,{\"className\":\"bg-white text-black antialiased dark:bg-gray-950 dark:text-white\",\"children\":[\"$\",\"$L7\",null,{\"children\":[[\"$undefined\",\"$undefined\",\"$undefined\",\"$undefined\",[[\"$\",\"$L8\",null,{\"strategy\":\"afterInteractive\",\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-ZXG79NJEBY\"}],[\"$\",\"$L8\",null,{\"strategy\":\"afterInteractive\",\"id\":\"ga-script\",\"children\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'G-ZXG79NJEBY');\\n \"}]]],[\"$\",\"div\",null,{\"className\":\"mx-auto flex max-w-screen-customDesktop flex-col justify-between font-sans\",\"children\":[\"$\",\"$L9\",null,{\"algoliaConfig\":{\"appId\":\"CKRA00L2X9\",\"apiKey\":\"6531f8f7783a88d76629190843f1801e\",\"indexName\":\"prod_apache_pinot_docs\"},\"children\":[[\"$\",\"$La\",null,{}],[\"$\",\"main\",null,{\"children\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"loadingScripts\":\"$undefined\",\"hasLoading\":false,\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$\",\"div\",null,{\"className\":\"flex flex-col items-start justify-start md:mt-24 md:flex-row md:items-center md:justify-center md:space-x-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"space-x-2 pb-8 pt-6 md:space-y-5\",\"children\":[\"$\",\"h1\",null,{\"className\":\"text-6xl font-extrabold leading-9 tracking-tight text-gray-900 dark:text-gray-100 md:border-r-2 md:px-6 md:text-8xl md:leading-14\",\"children\":\"404\"}]}],[\"$\",\"div\",null,{\"className\":\"max-w-md\",\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-4 text-xl font-bold leading-normal md:text-2xl\",\"children\":\"Sorry we couldn't find this page.\"}],[\"$\",\"p\",null,{\"className\":\"mb-8\",\"children\":\"But dont worry, you can find plenty of other things on our homepage.\"}],[\"$\",\"$Ld\",null,{\"href\":\"/\",\"className\":\"focus:shadow-outline-blue inline rounded-lg border border-transparent bg-blue-600 px-4 py-2 text-sm font-medium leading-5 text-white shadow transition-colors duration-150 hover:bg-blue-700 focus:outline-none dark:hover:bg-blue-500\",\"children\":\"Back to homepage\"}]]}]]}],\"notFoundStyles\":[],\"initialChildNode\":[\"$Le\",\"$Lf\",null],\"childPropSegment\":\"__PAGE__\",\"styles\":null}]}],[\"$\",\"footer\",null,{\"className\":\"border-t bg-sky-100 px-5 py-10 md:px-[6.75rem] md:pb-10 md:pt-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mx-auto flex max-w-7xl flex-wrap justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":120,\"height\":48,\"fill\":\"none\",\"children\":[[\"$\",\"g\",null,{\"fill\":\"#C7154A\",\"clipPath\":\"url(#logo_svg__a)\",\"children\":[[\"$\",\"path\",null,{\"d\":\"$10\"}],[\"$\",\"path\",null,{\"d\":\"M13.5 23a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5M8 5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M12 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16 2a1 1 0 1 0 0-2 1 1 0 0 0 0 2\"}]]}],[\"$\",\"defs\",null,{\"children\":[\"$\",\"clipPath\",null,{\"id\":\"logo_svg__a\",\"children\":[\"$\",\"path\",null,{\"fill\":\"#fff\",\"d\":\"M0 0h120v48H0z\"}]}]}]]}]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-x-16 gap-y-5 py-8 md:pl-24 md:pr-[21.625rem]\",\"children\":[\" \",[[\"$\",\"div\",\"Resources\",{\"children\":[[\"$\",\"h5\",null,{\"className\":\"mb-4 text-lg font-semibold\",\"children\":\"Resources\"}],[\"$\",\"div\",null,{\"className\":\"flex justify-between gap-x-10\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col\",\"children\":[[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://docs.pinot.apache.org/\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Docs\"}],[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://docs.pinot.apache.org/getting-started\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Getting Started\"}],[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://docs.pinot.apache.org/integrations/thirdeye\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"ThirdEye\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col\",\"children\":[[\"$\",\"$Ld\",null,{\"href\":\"/powered-by\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Company Stories\"}],[\"$\",\"$Ld\",null,{\"href\":\"/download\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Download\"}],[\"$\",\"$Ld\",null,{\"href\":\"/blog\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Blog\"}]]}]]}]]}],[\"$\",\"div\",\"Apache\",{\"children\":[[\"$\",\"h5\",null,{\"className\":\"mb-4 text-lg font-semibold\",\"children\":\"Apache\"}],[\"$\",\"div\",null,{\"className\":\"flex justify-between gap-x-10\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col\",\"children\":[[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://www.apache.org\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Foundation\"}],[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://www.apache.org/licenses\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"License\"}],[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://www.apache.org/security\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col\",\"children\":[[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://www.apache.org/foundation/sponsorship.html\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Sponsorship\"}],[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://www.apache.org/events/current-event\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Events\"}],[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://www.apache.org/foundation/thanks.html\",\"className\":\"block py-1 text-gray-600 hover:text-gray-900\",\"children\":\"Thanks\"}]]}]]}]]}]]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex justify-center md:mt-0\",\"children\":[[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://join.slack.com/t/apache-pinot/shared_invite/zt-5z7pav2f-yYtjZdVA~EDmrGkho87Vzw\",\"className\":\"mr-4\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-slack fill-gray-900\",\"children\":[[\"$\",\"rect\",\"diqz80\",{\"width\":\"3\",\"height\":\"8\",\"x\":\"13\",\"y\":\"2\",\"rx\":\"1.5\"}],[\"$\",\"path\",\"183iwg\",{\"d\":\"M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5\"}],[\"$\",\"rect\",\"hqg7r1\",{\"width\":\"3\",\"height\":\"8\",\"x\":\"8\",\"y\":\"14\",\"rx\":\"1.5\"}],[\"$\",\"path\",\"76g71w\",{\"d\":\"M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5\"}],[\"$\",\"rect\",\"1kmz0a\",{\"width\":\"8\",\"height\":\"3\",\"x\":\"14\",\"y\":\"13\",\"rx\":\"1.5\"}],[\"$\",\"path\",\"jc4sz0\",{\"d\":\"M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5\"}],[\"$\",\"rect\",\"1omvl4\",{\"width\":\"8\",\"height\":\"3\",\"x\":\"2\",\"y\":\"8\",\"rx\":\"1.5\"}],[\"$\",\"path\",\"16f3cl\",{\"d\":\"M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5\"}],\"$undefined\"]}]}],[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://github.com/apache/pinot\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"fill\":\"currentColor\",\"size\":24,\"children\":[[\"$\",\"g\",null,{\"clipPath\":\"url(#github_svg__a)\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"M12.01 0C5.369 0 0 5.5 0 12.304c0 5.44 3.44 10.043 8.212 11.673.597.122.815-.265.815-.59 0-.286-.02-1.264-.02-2.283-3.34.734-4.036-1.466-4.036-1.466-.537-1.426-1.332-1.793-1.332-1.793-1.094-.754.08-.754.08-.754 1.212.082 1.849 1.263 1.849 1.263 1.073 1.874 2.803 1.345 3.5 1.019.098-.795.417-1.345.755-1.65-2.665-.285-5.468-1.345-5.468-6.07 0-1.345.477-2.445 1.232-3.3-.119-.306-.537-1.57.12-3.26 0 0 1.014-.326 3.3 1.263.98-.27 1.989-.407 3.003-.408 1.014 0 2.048.143 3.002.408 2.287-1.59 3.301-1.263 3.301-1.263.657 1.69.239 2.954.12 3.26.775.855 1.232 1.955 1.232 3.3 0 4.725-2.803 5.764-5.488 6.07.438.387.815 1.12.815 2.281 0 1.65-.02 2.975-.02 3.382 0 .326.22.713.816.59C20.56 22.347 24 17.744 24 12.305 24.02 5.5 18.63 0 12.01 0\",\"clipRule\":\"evenodd\"}]}],[\"$\",\"defs\",null,{\"children\":[\"$\",\"clipPath\",null,{\"id\":\"github_svg__a\",\"children\":[\"$\",\"path\",null,{\"fill\":\"#fff\",\"d\":\"M0 0h24v24H0z\"}]}]}]]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-8 border-t border-neutral-300 pt-4 text-left text-sm text-gray-600\",\"children\":[\"Copyright © \",2024,\" The Apache Software Foundation. Apache Pinot, Pinot, Apache, the Apache feather logo, and the Apache Pinot project logo are registered trademarks of The Apache Software Foundation. This page has references to third party software - Presto, PrestoDB, ThirdEye, Trino, TrinoDB, that are not part of the Apache Software Foundation and are not covered under the Apache License.\"]}]]}]]}]}]]}]}]]}],null]}]]\n"])</script><script>self.__next_f.push([1,"11:I[1570,[\"326\",\"static/chunks/326-3a90a6443b9c824c.js\",\"413\",\"static/chunks/413-f9f40b83f7bb3f22.js\",\"980\",\"static/chunks/980-6e243f9cd384c7d2.js\",\"502\",\"static/chunks/502-48e8504077f850af.js\",\"931\",\"static/chunks/app/page-ab6b8b01ac93430b.js\"],\"\"]\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"$L11\",null,{\"posts\":[{\"title\":\"Announcing Apache Pinot 1.0™\",\"date\":\"2023-09-19T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"joins\",\"compression\",\"null support\",\"pluggable index\",\"spark integration\"],\"summary\":\"Introducing Apache Pinot 1.0 Release\",\"authors\":[\"dulay\",\"shrivastava\",\"pawar\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"13 min read\",\"minutes\":12.255,\"time\":735300,\"words\":2451},\"slug\":\"2023/09/19/Annoucing-Apache-Pinot-1-0\",\"customSlug\":\"2023/09/19/Annoucing-Apache-Pinot-1-0\",\"path\":\"blog/2023/09/19/Annoucing-Apache-Pinot-1-0\",\"customPath\":\"blog/2023/09/19/Annoucing-Apache-Pinot-1-0\",\"filePath\":\"blog/2023-09-19-Annoucing-Apache-Pinot-1-0.mdx\",\"toc\":[{\"value\":\"What Makes a “1.0 Release?”\",\"url\":\"#what-makes-a-10-release\",\"depth\":2},{\"value\":\"Join Support\",\"url\":\"#join-support\",\"depth\":2},{\"value\":\"Upsert Improvements\",\"url\":\"#upsert-improvements\",\"depth\":2},{\"value\":\"Segment Compaction for Upsert Tables\",\"url\":\"#segment-compaction-for-upsert-tables\",\"depth\":3},{\"value\":\"DELETE Support for Upsert Tables\",\"url\":\"#delete-support-for-upsert-tables\",\"depth\":3},{\"value\":\"NULL Value Support\",\"url\":\"#null-value-support\",\"depth\":2},{\"value\":\"Aggregations\",\"url\":\"#aggregations\",\"depth\":3},{\"value\":\"Group By\",\"url\":\"#group-by\",\"depth\":3},{\"value\":\"Sorting\",\"url\":\"#sorting\",\"depth\":3},{\"value\":\"Index Pluggability\",\"url\":\"#index-pluggability\",\"depth\":2},{\"value\":\"Apache Pinot Spark 3 Connector and Passing Pinot Options\",\"url\":\"#apache-pinot-spark-3-connector-and-passing-pinot-options\",\"depth\":2},{\"value\":\"Petabyte-Scale Log Storage and Search in Pinot with CLP\",\"url\":\"#petabyte-scale-log-storage-and-search-in-pinot-with-clp\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2},{\"value\":\"Resources\",\"url\":\"#resources\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Announcing Apache Pinot 1.0™\",\"datePublished\":\"2023-09-19T00:00:00.000Z\",\"dateModified\":\"2023-09-19T00:00:00.000Z\",\"description\":\"Introducing Apache Pinot 1.0 Release\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-09-19-Annoucing-Apache-Pinot-1-0\"}},{\"title\":\"Segment Compaction for Upsert Enabled Tables in Apache Pinot\",\"date\":\"2023-08-04T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"blog post\",\"feature contribution\",\"segment compaction\",\"Apache Pinot project\",\"older records\",\"storage space\",\"configuration\",\"impact\",\"freeing up storage\"],\"summary\":\"The blog post discusses the feature contribution of segment compaction to Apache Pinot project, addressing the issue of older records consuming unnecessary storage space. It explains the configuration and impact of segment compaction in freeing up storage. The author expresses gratitude and offers support for questions or feedback on segment compaction.\",\"authors\":[\"zych\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"4 min read\",\"minutes\":3.565,\"time\":213900,\"words\":713},\"slug\":\"2023/08/04/segment-compaction-for-upsert-enabled-tables-in-apache-pinot-3f30657aa077\",\"customSlug\":\"2023/08/04/segment-compaction-for-upsert-enabled-tables-in-apache-pinot-3f30657aa077\",\"path\":\"blog/2023/08/04/segment-compaction-for-upsert-enabled-tables-in-apache-pinot-3f30657aa077\",\"customPath\":\"blog/2023/08/04/segment-compaction-for-upsert-enabled-tables-in-apache-pinot-3f30657aa077\",\"filePath\":\"blog/2023-08-04-segment-compaction-for-upsert-enabled-tables-in-apache-pinot-3f30657aa077.mdx\",\"toc\":[{\"value\":\"Context and Configuration\",\"url\":\"#context-and-configuration\",\"depth\":2},{\"value\":\"Example Use Case\",\"url\":\"#example-use-case\",\"depth\":2},{\"value\":\"Conclusion\",\"url\":\"#conclusion\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Segment Compaction for Upsert Enabled Tables in Apache Pinot\",\"datePublished\":\"2023-08-04T00:00:00.000Z\",\"dateModified\":\"2023-08-04T00:00:00.000Z\",\"description\":\"The blog post discusses the feature contribution of segment compaction to Apache Pinot project, addressing the issue of older records consuming unnecessary storage space. It explains the configuration and impact of segment compaction in freeing up storage. The author expresses gratitude and offers support for questions or feedback on segment compaction.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-08-04-segment-compaction-for-upsert-enabled-tables-in-apache-pinot-3f30657aa077\"}},{\"title\":\"Star-Tree Index in Apache Pinot - Part 3 - Understanding the Impact in Real Customer Scenarios\",\"date\":\"2023-07-12T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"blog post\",\"implementing\",\"startree index\",\"query performance\",\"AdTech platform\",\"reducing latency\",\"cybersecurity threat detection\",\"multiplayer game leaderboard tracking\",\"improved query performance\",\"cost savings\",\"real production use cases\",\"StarTree Cloud\",\"realtime analytics\",\"95% to 99% improvement\"],\"summary\":\"The blog post discusses how implementing a star-tree index significantly improved query performance for an AdTech platform by reducing latency. This index has also been successful in cybersecurity threat detection and multiplayer game leaderboard tracking, resulting in improved query performance and cost savings. Real production use cases showed a 95% to 99% improvement in query performance using StarTree Cloud for real-time analytics.\",\"authors\":[\"dabade\",\"nijjer\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"8 min read\",\"minutes\":7.675,\"time\":460500,\"words\":1535},\"slug\":\"2023/07/12/star-tree-index-in-apache-pinot-part-3-understanding-the-impact-in-real-customer\",\"customSlug\":\"2023/07/12/star-tree-index-in-apache-pinot-part-3-understanding-the-impact-in-real-customer\",\"path\":\"blog/2023/07/12/star-tree-index-in-apache-pinot-part-3-understanding-the-impact-in-real-customer\",\"customPath\":\"blog/2023/07/12/star-tree-index-in-apache-pinot-part-3-understanding-the-impact-in-real-customer\",\"filePath\":\"blog/2023-07-12-star-tree-index-in-apache-pinot-part-3-understanding-the-impact-in-real-customer.mdx\",\"toc\":[{\"value\":\"AdTech Use Case\",\"url\":\"#adtech-use-case\",\"depth\":2},{\"value\":\"Why was the existing system not working?\",\"url\":\"#why-was-the-existing-system-not-working\",\"depth\":3},{\"value\":\"The Problem and Challenges?\",\"url\":\"#the-problem-and-challenges\",\"depth\":3},{\"value\":\"Data Size and Infra Footprint for the Pilot: \",\"url\":\"#data-size-and-infra-footprint-for-the-pilot\",\"depth\":3},{\"value\":\"Impact Summary:\",\"url\":\"#impact-summary\",\"depth\":3},{\"value\":\"CyberSecurity Use Case:\",\"url\":\"#cybersecurity-use-case\",\"depth\":2},{\"value\":\"Why was the existing system not working?\",\"url\":\"#why-was-the-existing-system-not-working\",\"depth\":3},{\"value\":\"The Problem and Challenges?\",\"url\":\"#the-problem-and-challenges\",\"depth\":3},{\"value\":\"Data Size and Infra Footprint for the Pilot: \",\"url\":\"#data-size-and-infra-footprint-for-the-pilot\",\"depth\":3},{\"value\":\"Impact Summary:\",\"url\":\"#impact-summary\",\"depth\":3},{\"value\":\"Multiplayer Game Leaderboard Use Case\",\"url\":\"#multiplayer-game-leaderboard-use-case\",\"depth\":2},{\"value\":\"The Problem and Challenges?\",\"url\":\"#the-problem-and-challenges\",\"depth\":3},{\"value\":\"Data Size and Infra Footprint for the Pilot: \",\"url\":\"#data-size-and-infra-footprint-for-the-pilot\",\"depth\":3},{\"value\":\"Impact Summary:\",\"url\":\"#impact-summary\",\"depth\":3},{\"value\":\"Quick Recap: Star-Tree Index Performance Improvements\",\"url\":\"#quick-recap-star-tree-index-performance-improvements\",\"depth\":2},{\"value\":\"Intrigued by What You’ve Read?\",\"url\":\"#intrigued-by-what-youve-read\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Star-Tree Index in Apache Pinot - Part 3 - Understanding the Impact in Real Customer Scenarios\",\"datePublished\":\"2023-07-12T00:00:00.000Z\",\"dateModified\":\"2023-07-12T00:00:00.000Z\",\"description\":\"The blog post discusses how implementing a star-tree index significantly improved query performance for an AdTech platform by reducing latency. This index has also been successful in cybersecurity threat detection and multiplayer game leaderboard tracking, resulting in improved query performance and cost savings. Real production use cases showed a 95% to 99% improvement in query performance using StarTree Cloud for real-time analytics.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-07-12-star-tree-index-in-apache-pinot-part-3-understanding-the-impact-in-real-customer\",\"author\":[{\"@type\":\"Person\",\"name\":\"Sandeep Dabade\"},{\"@type\":\"Person\",\"name\":\"Kulbir Nijjer\"}]}},{\"title\":\"Real-Time Mastodon Usage with Apache Kafka, Apache Pinot, and Streamlit\",\"date\":\"2023-06-01T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"blog post\",\"analyzing user activity\",\"server popularity\",\"Mastodon\",\"Kafka Connect\",\"Parquet\",\"Seaborn\",\"DuckDB\",\"potential\",\"Apache Pinot\",\"realtime data streaming\",\"dashboard\",\"instructions\",\"ingesting\",\"Apache Avro messages\",\"Pinot table\",\"querying data\"],\"summary\":\"The blog post discusses analyzing user activity and server popularity on Mastodon using Kafka Connect, Parquet, Seaborn, and DuckDB. It explores the potential of using Apache Pinot for real-time data streaming and creating a dashboard. The post provides instructions on ingesting Apache Avro messages into Pinot, creating a Pinot table, and querying the data.\",\"authors\":[\"needham\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"7 min read\",\"minutes\":6.755,\"time\":405300,\"words\":1351},\"slug\":\"2023/06/01/real-time-mastodon-usage-with-apache-kafka-apache-pinot-and-streamlit\",\"customSlug\":\"2023/06/01/real-time-mastodon-usage-with-apache-kafka-apache-pinot-and-streamlit\",\"path\":\"blog/2023/06/01/real-time-mastodon-usage-with-apache-kafka-apache-pinot-and-streamlit\",\"customPath\":\"blog/2023/06/01/real-time-mastodon-usage-with-apache-kafka-apache-pinot-and-streamlit\",\"filePath\":\"blog/2023-06-01-real-time-mastodon-usage-with-apache-kafka-apache-pinot-and-streamlit.mdx\",\"toc\":[{\"value\":\"The Existing Solution: Kafka Connect, Parquet, Seaborn and DuckDB \",\"url\":\"#the-existing-solution-kafka-connect-parquet-seaborn-and-duckdb\",\"depth\":2},{\"value\":\"Going Real-Time with Apache Pinot™\",\"url\":\"#going-real-time-with-apache-pinot\",\"depth\":2},{\"value\":\"Setup\",\"url\":\"#setup\",\"depth\":2},{\"value\":\"Pinot Schema and Table\",\"url\":\"#pinot-schema-and-table\",\"depth\":2},{\"value\":\"Ingest Data into Kafka\",\"url\":\"#ingest-data-into-kafka\",\"depth\":2},{\"value\":\"Query Pinot\",\"url\":\"#query-pinot\",\"depth\":2},{\"value\":\"Streamlit\",\"url\":\"#streamlit\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Real-Time Mastodon Usage with Apache Kafka, Apache Pinot, and Streamlit\",\"datePublished\":\"2023-06-01T00:00:00.000Z\",\"dateModified\":\"2023-06-01T00:00:00.000Z\",\"description\":\"The blog post discusses analyzing user activity and server popularity on Mastodon using Kafka Connect, Parquet, Seaborn, and DuckDB. It explores the potential of using Apache Pinot for real-time data streaming and creating a dashboard. The post provides instructions on ingesting Apache Avro messages into Pinot, creating a Pinot table, and querying the data.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-06-01-real-time-mastodon-usage-with-apache-kafka-apache-pinot-and-streamlit\"}},{\"title\":\"Change Data Capture with Apache Pinot - How Does It Work?\",\"date\":\"2023-05-23T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"CDC\",\"Debezium\"],\"summary\":\"This blog post discusses the use of Change Data Capture (CDC) in Apache Pinot and the data format used in Debezium for efficient querying and analytics. It explains the elements of the format and its usage in indexing JSON fields. It also mentions the availability of CDC connectors in Debezium for various streaming systems.\",\"authors\":[\"dulay\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"10 min read\",\"minutes\":9.105,\"time\":546300,\"words\":1821},\"slug\":\"2023/05/23/change-data-capture-with-apache-pinot-how-does-it-work\",\"customSlug\":\"2023/05/23/change-data-capture-with-apache-pinot-how-does-it-work\",\"path\":\"blog/2023/05/23/change-data-capture-with-apache-pinot-how-does-it-work\",\"customPath\":\"blog/2023/05/23/change-data-capture-with-apache-pinot-how-does-it-work\",\"filePath\":\"blog/2023-05-23-change-data-capture-with-apache-pinot-how-does-it-work.mdx\",\"toc\":[{\"value\":\"Pre-Image, Post-Image, or Diffs?\",\"url\":\"#pre-image-post-image-or-diffs\",\"depth\":2},{\"value\":\"How to Capture Change Data with Debezium\",\"url\":\"#how-to-capture-change-data-with-debezium\",\"depth\":2},{\"value\":\"Debezium Data Format\",\"url\":\"#debezium-data-format\",\"depth\":2},{\"value\":\"Materialized Views\",\"url\":\"#materialized-views\",\"depth\":2},{\"value\":\"Upsert in Apache Pinot\",\"url\":\"#upsert-in-apache-pinot\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Change Data Capture with Apache Pinot - How Does It Work?\",\"datePublished\":\"2023-05-23T00:00:00.000Z\",\"dateModified\":\"2023-05-23T00:00:00.000Z\",\"description\":\"This blog post discusses the use of Change Data Capture (CDC) in Apache Pinot and the data format used in Debezium for efficient querying and analytics. It explains the elements of the format and its usage in indexing JSON fields. It also mentions the availability of CDC connectors in Debezium for various streaming systems.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-05-23-change-data-capture-with-apache-pinot-how-does-it-work\",\"author\":[{\"@type\":\"Person\",\"name\":\"Hubert Dulay\"}]}},{\"title\":\"Apache Pinot Tutorial for Getting Started - A Step-by-Step Guide\",\"date\":\"2023-05-18T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"data explorer\",\"getting started\",\"streaming\",\"kafka\"],\"summary\":\"This blog post is a guide to getting started with Apache Pinot, including installing and running the necessary components of a Pinot cluster. It also explains how to set up schemas, tables, and load data into Pinot, as well as how to run queries using the Pinot Data Explorer. The next article in the series will cover consuming event streaming data with Apache Pinot and Apache Kafka.\",\"authors\":[\"herman\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"8 min read\",\"minutes\":7.91,\"time\":474600,\"words\":1582},\"slug\":\"2023/05/18/apache-pinot-tutorial-for-getting-started-a-step-by-step-guide\",\"customSlug\":\"2023/05/18/apache-pinot-tutorial-for-getting-started-a-step-by-step-guide\",\"path\":\"blog/2023/05/18/apache-pinot-tutorial-for-getting-started-a-step-by-step-guide\",\"customPath\":\"blog/2023/05/18/apache-pinot-tutorial-for-getting-started-a-step-by-step-guide\",\"filePath\":\"blog/2023-05-18-apache-pinot-tutorial-for-getting-started-a-step-by-step-guide.mdx\",\"toc\":[{\"value\":\"The Obligatory What is Apache Pinot and StarTree Section\",\"url\":\"#the-obligatory-what-is-apache-pinot-and-startree-section\",\"depth\":2},{\"value\":\"What do you need to run Apache Pinot?\",\"url\":\"#what-do-you-need-to-run-apache-pinot\",\"depth\":2},{\"value\":\"Step-by-step installation of Apache Pinot\",\"url\":\"#step-by-step-installation-of-apache-pinot\",\"depth\":2},{\"value\":\"Step 1: \",\"url\":\"#step-1\",\"depth\":3},{\"value\":\"Step 2:\",\"url\":\"#step-2\",\"depth\":3},{\"value\":\"Step 3:\",\"url\":\"#step-3\",\"depth\":3},{\"value\":\"Step 4:\",\"url\":\"#step-4\",\"depth\":3},{\"value\":\"Step 5:\",\"url\":\"#step-5\",\"depth\":3},{\"value\":\"What’s under the hood?\",\"url\":\"#whats-under-the-hood\",\"depth\":2},{\"value\":\"Conclusion\",\"url\":\"#conclusion\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Apache Pinot Tutorial for Getting Started - A Step-by-Step Guide\",\"datePublished\":\"2023-05-18T00:00:00.000Z\",\"dateModified\":\"2023-05-18T00:00:00.000Z\",\"description\":\"This blog post is a guide to getting started with Apache Pinot, including installing and running the necessary components of a Pinot cluster. It also explains how to set up schemas, tables, and load data into Pinot, as well as how to run queries using the Pinot Data Explorer. The next article in the series will cover consuming event streaming data with Apache Pinot and Apache Kafka.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-05-18-apache-pinot-tutorial-for-getting-started-a-step-by-step-guide\"}},{\"title\":\"StarTree Indexes in Apache Pinot Part-1 - Understanding the Impact on Query Performance\",\"date\":\"2023-05-16T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"star-tree index\"],\"summary\":\"The blog post explains the star-tree index in Apache Pinot and its benefits compared to traditional materialized views. By implementing a star-tree index, query performance significantly improved, reducing query latency from 1,513 ms to just 4 ms and drastically reducing disk reads by 99.999%.\",\"authors\":[\"dabade\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"7 min read\",\"minutes\":6.25,\"time\":375000,\"words\":1250},\"slug\":\"2023/05/16/star-tree-indexes-in-apache-pinot-part-1-understanding-the-impact-on-query-performance\",\"customSlug\":\"2023/05/16/star-tree-indexes-in-apache-pinot-part-1-understanding-the-impact-on-query-performance\",\"path\":\"blog/2023/05/16/star-tree-indexes-in-apache-pinot-part-1-understanding-the-impact-on-query-performance\",\"customPath\":\"blog/2023/05/16/star-tree-indexes-in-apache-pinot-part-1-understanding-the-impact-on-query-performance\",\"filePath\":\"blog/2023-05-16-star-tree-indexes-in-apache-pinot-part-1-understanding-the-impact-on-query-performance.mdx\",\"toc\":[{\"value\":\"1. The Dataset:\",\"url\":\"#1-the-dataset\",\"depth\":2},{\"value\":\"Schema:\",\"url\":\"#schema\",\"depth\":3},{\"value\":\"2. Query Pattern\",\"url\":\"#2-query-pattern\",\"depth\":2},{\"value\":\"Star-Tree Index Config:\",\"url\":\"#star-tree-index-config\",\"depth\":3},{\"value\":\"4. Query Results and Stats\",\"url\":\"#4-query-results-and-stats\",\"depth\":2},{\"value\":\"Iteration #1: w/o any Apache Pinot optimizations:\",\"url\":\"#iteration-1-wo-any-apache-pinot-optimizations\",\"depth\":3},{\"value\":\"Iteration #2: w/ Inverted Index \",\"url\":\"#iteration-2-w-inverted-index\",\"depth\":3},{\"value\":\"Iteration #3: w/ Star-Tree Index: \",\"url\":\"#iteration-3-w-star-tree-index\",\"depth\":3},{\"value\":\"Comparison:\",\"url\":\"#comparison\",\"depth\":3},{\"value\":\"5. Impact Summary:\",\"url\":\"#5-impact-summary\",\"depth\":2},{\"value\":\"Key Benefits of the Star-Tree Index:\",\"url\":\"#key-benefits-of-the-star-tree-index\",\"depth\":3}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"StarTree Indexes in Apache Pinot Part-1 - Understanding the Impact on Query Performance\",\"datePublished\":\"2023-05-16T00:00:00.000Z\",\"dateModified\":\"2023-05-16T00:00:00.000Z\",\"description\":\"The blog post explains the star-tree index in Apache Pinot and its benefits compared to traditional materialized views. By implementing a star-tree index, query performance significantly improved, reducing query latency from 1,513 ms to just 4 ms and drastically reducing disk reads by 99.999%.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-05-16-star-tree-indexes-in-apache-pinot-part-1-understanding-the-impact-on-query-performance\"}},{\"title\":\"Geospatial Indexing in Apache Pinot\",\"date\":\"2023-05-11T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"geospatial indexing\"],\"summary\":\"This post will explore a new API endpoint that lets you check how much Pinot is lagging when ingesting from Apache Kafka.\",\"authors\":[\"needham\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"9 min read\",\"minutes\":8.305,\"time\":498300,\"words\":1661},\"slug\":\"2023/05/11/Geospatial-Indexing-in-Apache-Pinot\",\"customSlug\":\"2023/05/11/Geospatial-Indexing-in-Apache-Pinot\",\"path\":\"blog/2023/05/11/Geospatial-Indexing-in-Apache-Pinot\",\"customPath\":\"blog/2023/05/11/Geospatial-Indexing-in-Apache-Pinot\",\"filePath\":\"blog/2023-05-11-Geospatial-Indexing-in-Apache-Pinot.mdx\",\"toc\":[{\"value\":\"What is geospatial indexing?\",\"url\":\"#what-is-geospatial-indexing\",\"depth\":2},{\"value\":\"How do geospatial indexes work in Apache Pinot?\",\"url\":\"#how-do-geospatial-indexes-work-in-apache-pinot\",\"depth\":2},{\"value\":\"When is the geospatial index used?\",\"url\":\"#when-is-the-geospatial-index-used\",\"depth\":2},{\"value\":\"How do you know the index usage?\",\"url\":\"#how-do-you-know-the-index-usage\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Geospatial Indexing in Apache Pinot\",\"datePublished\":\"2023-05-11T00:00:00.000Z\",\"dateModified\":\"2023-05-11T00:00:00.000Z\",\"description\":\"This post will explore a new API endpoint that lets you check how much Pinot is lagging when ingesting from Apache Kafka.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-05-11-Geospatial-Indexing-in-Apache-Pinot\",\"author\":[{\"@type\":\"Person\",\"name\":\"Mark Needham\"}]}},{\"title\":\"Apache Pinot™ 0.12 - Consumer Record Lag\",\"date\":\"2023-03-30T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"consumer record lag\",\"kafka\"],\"summary\":\"This post will explore a new API endpoint that lets you check how much Pinot is lagging when ingesting from Apache Kafka.\",\"authors\":[\"needham\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"5 min read\",\"minutes\":4.57,\"time\":274200,\"words\":914},\"slug\":\"2023/03/30/Apache-Pinot-0-12-Consumer-Record-Lag\",\"customSlug\":\"2023/03/30/Apache-Pinot-0-12-Consumer-Record-Lag\",\"path\":\"blog/2023/03/30/Apache-Pinot-0-12-Consumer-Record-Lag\",\"customPath\":\"blog/2023/03/30/Apache-Pinot-0-12-Consumer-Record-Lag\",\"filePath\":\"blog/2023-03-30-Apache-Pinot-0-12-Consumer-Record-Lag.mdx\",\"toc\":[{\"value\":\"Why do we need this?\",\"url\":\"#why-do-we-need-this\",\"depth\":2},{\"value\":\"Worked Example\",\"url\":\"#worked-example\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Apache Pinot™ 0.12 - Consumer Record Lag\",\"datePublished\":\"2023-03-30T00:00:00.000Z\",\"dateModified\":\"2023-03-30T00:00:00.000Z\",\"description\":\"This post will explore a new API endpoint that lets you check how much Pinot is lagging when ingesting from Apache Kafka.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-03-30-Apache-Pinot-0-12-Consumer-Record-Lag\"}},{\"title\":\"Apache Pinot™ 0.12 - Configurable Time Boundary\",\"date\":\"2023-02-21T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"hybrid tables\",\"time boundary\"],\"summary\":\"This post will explore the ability to configure the time boundary when working with hybrid tables.\",\"authors\":[\"needham\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"4 min read\",\"minutes\":3.415,\"time\":204900,\"words\":683},\"slug\":\"2023/02/21/Apache-Pinot-0-12-Configurable-Time-Boundary\",\"customSlug\":\"2023/02/21/Apache-Pinot-0-12-Configurable-Time-Boundary\",\"path\":\"blog/2023/02/21/Apache-Pinot-0-12-Configurable-Time-Boundary\",\"customPath\":\"blog/2023/02/21/Apache-Pinot-0-12-Configurable-Time-Boundary\",\"filePath\":\"blog/2023-02-21-Apache-Pinot-0-12-Configurable-Time-Boundary.mdx\",\"toc\":[{\"value\":\"What is a hybrid table?\",\"url\":\"#what-is-a-hybrid-table\",\"depth\":2},{\"value\":\"How do you query a hybrid table?\",\"url\":\"#how-do-you-query-a-hybrid-table\",\"depth\":2},{\"value\":\"So, what’s the problem?\",\"url\":\"#so-whats-the-problem\",\"depth\":2},{\"value\":\"And the solution?\",\"url\":\"#and-the-solution\",\"depth\":2},{\"value\":\"Neat, anything else I should know?\",\"url\":\"#neat-anything-else-i-should-know\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Apache Pinot™ 0.12 - Configurable Time Boundary\",\"datePublished\":\"2023-02-21T00:00:00.000Z\",\"dateModified\":\"2023-02-21T00:00:00.000Z\",\"description\":\"This post will explore the ability to configure the time boundary when working with hybrid tables.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-02-21-Apache-Pinot-0-12-Configurable-Time-Boundary\",\"author\":[{\"@type\":\"Person\",\"name\":\"Mark Needham\"}]}},{\"title\":\"Apache Pinot™ 0.11 - Deduplication on Real-Time Tables\",\"date\":\"2023-01-29T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"deduplication\"],\"summary\":\"Learn about the deduplication for the real-time tables feature in Apache Pinot\",\"authors\":[\"needham\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"8 min read\",\"minutes\":7.395,\"time\":443700,\"words\":1479},\"slug\":\"2023/01/29/Apache-Pinot-Deduplication-on-Real-Time-Tables\",\"customSlug\":\"2023/01/29/Apache-Pinot-Deduplication-on-Real-Time-Tables\",\"path\":\"blog/2023/01/29/Apache-Pinot-Deduplication-on-Real-Time-Tables\",\"customPath\":\"blog/2023/01/29/Apache-Pinot-Deduplication-on-Real-Time-Tables\",\"filePath\":\"blog/2023-01-29-Apache-Pinot-Deduplication-on-Real-Time-Tables.mdx\",\"toc\":[{\"value\":\"Why do we need deduplication on real-time tables?\",\"url\":\"#why-do-we-need-deduplication-on-real-time-tables\",\"depth\":2},{\"value\":\"How does dedup differ from upserts?\",\"url\":\"#how-does-dedup-differ-from-upserts\",\"depth\":2},{\"value\":\"Setting up Apache Kafka and Apache Pinot\",\"url\":\"#setting-up-apache-kafka-and-apache-pinot\",\"depth\":2},{\"value\":\"Data Generation\",\"url\":\"#data-generation\",\"depth\":2},{\"value\":\"Pinot Schema/Table Config\",\"url\":\"#pinot-schematable-config\",\"depth\":2},{\"value\":\"How does it work? \",\"url\":\"#how-does-it-work\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Apache Pinot™ 0.11 - Deduplication on Real-Time Tables\",\"datePublished\":\"2023-01-29T00:00:00.000Z\",\"dateModified\":\"2023-01-29T00:00:00.000Z\",\"description\":\"Learn about the deduplication for the real-time tables feature in Apache Pinot\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-01-29-Apache-Pinot-Deduplication-on-Real-Time-Tables\"}},{\"title\":\"Apache Pinot™ 0.11 - Pausing Real-Time Ingestion\",\"date\":\"2022-11-28T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"pause\",\"resume\",\"real-time ingestion\"],\"summary\":\"Learn about a feature that lets you pause and resume real-time data ingestion in Apache Pinot\",\"authors\":[\"needham\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"7 min read\",\"minutes\":6.475,\"time\":388500,\"words\":1295},\"slug\":\"2022/11/28/Apache-Pinot-Pausing-Real-Time-Ingestion\",\"customSlug\":\"2022/11/28/Apache-Pinot-Pausing-Real-Time-Ingestion\",\"path\":\"blog/2022/11/28/Apache-Pinot-Pausing-Real-Time-Ingestion\",\"customPath\":\"blog/2022/11/28/Apache-Pinot-Pausing-Real-Time-Ingestion\",\"filePath\":\"blog/2022-11-28-Apache-Pinot-Pausing-Real-Time-Ingestion.mdx\",\"toc\":[{\"value\":\"How does real-time ingestion work?\",\"url\":\"#how-does-real-time-ingestion-work\",\"depth\":2},{\"value\":\"Why do we need to pause and resume ingestion?\",\"url\":\"#why-do-we-need-to-pause-and-resume-ingestion\",\"depth\":2},{\"value\":\"Data Generation\",\"url\":\"#data-generation\",\"depth\":2},{\"value\":\"Pinot Schema/Table Config\",\"url\":\"#pinot-schematable-config\",\"depth\":2},{\"value\":\"The Pause/Resume Flow\",\"url\":\"#the-pauseresume-flow\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Apache Pinot™ 0.11 - Pausing Real-Time Ingestion\",\"datePublished\":\"2022-11-28T00:00:00.000Z\",\"dateModified\":\"2022-11-28T00:00:00.000Z\",\"description\":\"Learn about a feature that lets you pause and resume real-time data ingestion in Apache Pinot\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2022-11-28-Apache-Pinot-Pausing-Real-Time-Ingestion\"}},{\"title\":\"Apache Pinot™ 0.11 - Timestamp Indexes\",\"date\":\"2022-11-22T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"Timestamp\",\"datetrunc\"],\"summary\":\"Users write queries that use the datetrunc function to filter at a coarser grain of functionality. Unfortunately, this approach results in scanning data and time value conversion work that takes a long time at large data volumes. The timestamp index solves that problem!\",\"authors\":[\"needham\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"8 min read\",\"minutes\":7.77,\"time\":466200,\"words\":1554},\"slug\":\"2022/11/22/Apache-Pinot-Timestamp-Indexes\",\"customSlug\":\"2022/11/22/Apache-Pinot-Timestamp-Indexes\",\"path\":\"blog/2022/11/22/Apache-Pinot-Timestamp-Indexes\",\"customPath\":\"blog/2022/11/22/Apache-Pinot-Timestamp-Indexes\",\"filePath\":\"blog/2022-11-22-Apache-Pinot-Timestamp-Indexes.mdx\",\"toc\":[{\"value\":\"Spinning up Pinot\",\"url\":\"#spinning-up-pinot\",\"depth\":2},{\"value\":\"Importing Chicago Crime Dataset\",\"url\":\"#importing-chicago-crime-dataset\",\"depth\":2},{\"value\":\"Querying crimes by date\",\"url\":\"#querying-crimes-by-date\",\"depth\":2},{\"value\":\"Adding the timestamp index\",\"url\":\"#adding-the-timestamp-index\",\"depth\":2},{\"value\":\"What does a timestamp index do?\",\"url\":\"#what-does-a-timestamp-index-do\",\"depth\":2},{\"value\":\"Re-running the query\",\"url\":\"#re-running-the-query\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Apache Pinot™ 0.11 - Timestamp Indexes\",\"datePublished\":\"2022-11-22T00:00:00.000Z\",\"dateModified\":\"2022-11-22T00:00:00.000Z\",\"description\":\"Users write queries that use the datetrunc function to filter at a coarser grain of functionality. Unfortunately, this approach results in scanning data and time value conversion work that takes a long time at large data volumes. The timestamp index solves that problem!\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2022-11-22-Apache-Pinot-Timestamp-Indexes\",\"author\":[{\"@type\":\"Person\",\"name\":\"Mark Needham\"}]}},{\"title\":\"Apache Pinot™ 0.11 - Inserts from SQL\",\"date\":\"2022-11-17T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"Insert\"],\"summary\":\"Explore the INSERT INTO clause, which makes ingesting batch data into Pinot as easy as writing a SQL query.\",\"authors\":[\"needham\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"4 min read\",\"minutes\":3.775,\"time\":226500,\"words\":755},\"slug\":\"2022/11/17/Apache Pinot-Inserts-from-SQL\",\"customSlug\":\"2022/11/17/Apache Pinot-Inserts-from-SQL\",\"path\":\"blog/2022/11/17/Apache Pinot-Inserts-from-SQL\",\"customPath\":\"blog/2022/11/17/Apache Pinot-Inserts-from-SQL\",\"filePath\":\"blog/2022-11-17-Apache Pinot-Inserts-from-SQL.mdx\",\"toc\":[{\"value\":\"Batch importing: The Job Specification\",\"url\":\"#batch-importing-the-job-specification\",\"depth\":2},{\"value\":\"Batch Importing with SQL\",\"url\":\"#batch-importing-with-sql\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Apache Pinot™ 0.11 - Inserts from SQL\",\"datePublished\":\"2022-11-17T00:00:00.000Z\",\"dateModified\":\"2022-11-17T00:00:00.000Z\",\"description\":\"Explore the INSERT INTO clause, which makes ingesting batch data into Pinot as easy as writing a SQL query.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2022-11-17-Apache Pinot-Inserts-from-SQL\"}},{\"title\":\"Apache Pinot™ 0.11 - How do I see my indexes?\",\"date\":\"2022-11-08T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"Indexes\"],\"summary\":\"How you can work out which indexes are currently defined on a Pinot table\",\"authors\":[\"needham\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"4 min read\",\"minutes\":3.79,\"time\":227400,\"words\":758},\"slug\":\"2022/11/08/Apache Pinot-How-do-I-see-my-indexes\",\"customSlug\":\"2022/11/08/Apache Pinot-How-do-I-see-my-indexes\",\"path\":\"blog/2022/11/08/Apache Pinot-How-do-I-see-my-indexes\",\"customPath\":\"blog/2022/11/08/Apache Pinot-How-do-I-see-my-indexes\",\"filePath\":\"blog/2022-11-08-Apache Pinot-How-do-I-see-my-indexes.mdx\",\"toc\":[{\"value\":\"Spinning up Pinot\",\"url\":\"#spinning-up-pinot\",\"depth\":2},{\"value\":\"Indexing Config\",\"url\":\"#indexing-config\",\"depth\":2},{\"value\":\"Viewing Indexes\",\"url\":\"#viewing-indexes\",\"depth\":2},{\"value\":\"Adding an Index\",\"url\":\"#adding-an-index\",\"depth\":2},{\"value\":\"Summary\",\"url\":\"#summary\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Apache Pinot™ 0.11 - How do I see my indexes?\",\"datePublished\":\"2022-11-08T00:00:00.000Z\",\"dateModified\":\"2022-11-08T00:00:00.000Z\",\"description\":\"How you can work out which indexes are currently defined on a Pinot table\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2022-11-08-Apache Pinot-How-do-I-see-my-indexes\"}},{\"title\":\"GapFill Function For Time-Series Datasets In Pinot\",\"date\":\"2022-08-02T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"interpolation\",\"gapfilling\"],\"summary\":\"Gapfilling functions in Pinot to provide the on-the-fly interpolation (filling the missing data) functionality to better handle time-series data.\",\"authors\":[\"sun\",\"velusamy\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"9 min read\",\"minutes\":8.59,\"time\":515400,\"words\":1718},\"slug\":\"2022/08/02/GapFill-Function-For-Time-Series-Datasets-In-Pinot\",\"customSlug\":\"2022/08/02/GapFill-Function-For-Time-Series-Datasets-In-Pinot\",\"path\":\"blog/2022/08/02/GapFill-Function-For-Time-Series-Datasets-In-Pinot\",\"customPath\":\"blog/2022/08/02/GapFill-Function-For-Time-Series-Datasets-In-Pinot\",\"filePath\":\"blog/2022-08-02-GapFill-Function-For-Time-Series-Datasets-In-Pinot.mdx\",\"toc\":[{\"value\":\"Processing time series data in Pinot\",\"url\":\"#processing-time-series-data-in-pinot\",\"depth\":2},{\"value\":\"Sample Dataset:\",\"url\":\"#sample-dataset\",\"depth\":3},{\"value\":\"Interpolating missing data\",\"url\":\"#interpolating-missing-data\",\"depth\":2},{\"value\":\"Gapfill Query with a Use Case:\",\"url\":\"#gapfill-query-with-a-use-case\",\"depth\":2},{\"value\":\"Query Syntax:\",\"url\":\"#query-syntax\",\"depth\":3},{\"value\":\"Query components:\",\"url\":\"#query-components\",\"depth\":3},{\"value\":\"Query Workflow\",\"url\":\"#query-workflow\",\"depth\":3},{\"value\":\"Other Supported Query Scenarios:\",\"url\":\"#other-supported-query-scenarios\",\"depth\":3},{\"value\":\"How does it work?\",\"url\":\"#how-does-it-work\",\"depth\":2},{\"value\":\"Request Flow\",\"url\":\"#request-flow\",\"depth\":3},{\"value\":\"Execution Plan\",\"url\":\"#execution-plan\",\"depth\":3},{\"value\":\"Time and Space complexity:\",\"url\":\"#time-and-space-complexity\",\"depth\":3},{\"value\":\"Challenges\",\"url\":\"#challenges\",\"depth\":3},{\"value\":\"The Future Work\",\"url\":\"#the-future-work\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"GapFill Function For Time-Series Datasets In Pinot\",\"datePublished\":\"2022-08-02T00:00:00.000Z\",\"dateModified\":\"2022-08-02T00:00:00.000Z\",\"description\":\"Gapfilling functions in Pinot to provide the on-the-fly interpolation (filling the missing data) functionality to better handle time-series data.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2022-08-02-GapFill-Function-For-Time-Series-Datasets-In-Pinot\"}},{\"title\":\"How to Ingest Streaming Data from Kafka to Apache Pinot™\",\"date\":\"2022-05-30T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"kafka\",\"streaming\",\"json\"],\"summary\":\"The blog post explains how to use Apache Kafka topics in Apache Pinot to ingest streaming data, with step-by-step instructions provided for installation and setup. It focuses on ingesting Wikipedia events into Kafka and connecting it to Pinot to create a real-time table. The post highlights Pinot's capabilities in ingesting and transforming JSON data into OLAP tables and encourages reader engagement through the community Slack.\",\"authors\":[\"herman\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"9 min read\",\"minutes\":8.935,\"time\":536100,\"words\":1787},\"slug\":\"2023/05/30/how-to-ingest-streaming-data-from-kafka-to-apache-pinot\",\"customSlug\":\"2023/05/30/how-to-ingest-streaming-data-from-kafka-to-apache-pinot\",\"path\":\"blog/2023/05/30/how-to-ingest-streaming-data-from-kafka-to-apache-pinot\",\"customPath\":\"blog/2023/05/30/how-to-ingest-streaming-data-from-kafka-to-apache-pinot\",\"filePath\":\"blog/2023-05-30-how-to-ingest-streaming-data-from-kafka-to-apache-pinot.mdx\",\"toc\":[{\"value\":\"The obligatory “What is Apache Pinot and StarTree?” section\",\"url\":\"#the-obligatory-what-is-apache-pinot-and-startree-section\",\"depth\":3},{\"value\":\"How to install Kafka alongside Pinot \",\"url\":\"#how-to-install-kafka-alongside-pinot\",\"depth\":2},{\"value\":\"Prerequisite\",\"url\":\"#prerequisite\",\"depth\":3},{\"value\":\"Step 1: Install Kafka on your Pinot Docker image\",\"url\":\"#step-1-install-kafka-on-your-pinot-docker-image\",\"depth\":3},{\"value\":\"Step 2: Install Kafka on the Docker container\",\"url\":\"#step-2-install-kafka-on-the-docker-container\",\"depth\":3},{\"value\":\"Step 3: Ingest data into Kafka\",\"url\":\"#step-3-ingest-data-into-kafka\",\"depth\":3},{\"value\":\"Step 4: Connect Kafka to Pinot\",\"url\":\"#step-4-connect-kafka-to-pinot\",\"depth\":3},{\"value\":\"Conclusion\",\"url\":\"#conclusion\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"How to Ingest Streaming Data from Kafka to Apache Pinot™\",\"datePublished\":\"2022-05-30T00:00:00.000Z\",\"dateModified\":\"2022-05-30T00:00:00.000Z\",\"description\":\"The blog post explains how to use Apache Kafka topics in Apache Pinot to ingest streaming data, with step-by-step instructions provided for installation and setup. It focuses on ingesting Wikipedia events into Kafka and connecting it to Pinot to create a real-time table. The post highlights Pinot's capabilities in ingesting and transforming JSON data into OLAP tables and encourages reader engagement through the community Slack.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2023-05-30-how-to-ingest-streaming-data-from-kafka-to-apache-pinot\"}},{\"title\":\"Announcing Apache Pinot 0.10\",\"date\":\"2022-04-04T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Data\",\"Analytics\",\"User-Facing Analytics\",\"Releases\"],\"summary\":\"Learn more about the release of Apache Pinot 0.10 and all of new features that have been included in this version of the product.\",\"authors\":[\"pinotdev\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"5 min read\",\"minutes\":4.975,\"time\":298500,\"words\":995},\"slug\":\"2022/04/04/Announcing-Apache-Pinot-0-10\",\"customSlug\":\"2022/04/04/Announcing-Apache-Pinot-0-10\",\"path\":\"blog/2022/04/04/Announcing-Apache-Pinot-0-10\",\"customPath\":\"blog/2022/04/04/Announcing-Apache-Pinot-0-10\",\"filePath\":\"blog/2022-04-04-Announcing-Apache-Pinot-0-10.mdx\",\"toc\":[{\"value\":\"Query Plans\",\"url\":\"#query-plans\",\"depth\":2},{\"value\":\"FILTER Clauses for Aggregates\",\"url\":\"#filter-clauses-for-aggregates\",\"depth\":2},{\"value\":\"greatest and least\",\"url\":\"#greatest-and-least\",\"depth\":2},{\"value\":\"DistinctCountSmartHLL\",\"url\":\"#distinctcountsmarthll\",\"depth\":2},{\"value\":\"UI updates\",\"url\":\"#ui-updates\",\"depth\":2},{\"value\":\"RealTimeToOffline Task\",\"url\":\"#realtimetooffline-task\",\"depth\":2},{\"value\":\"Empty QuickStart\",\"url\":\"#empty-quickstart\",\"depth\":2},{\"value\":\"Data Ingestion\",\"url\":\"#data-ingestion\",\"depth\":2},{\"value\":\"Other changes\",\"url\":\"#other-changes\",\"depth\":2},{\"value\":\"Dependency updates\",\"url\":\"#dependency-updates\",\"depth\":2},{\"value\":\"Resources\",\"url\":\"#resources\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Announcing Apache Pinot 0.10\",\"datePublished\":\"2022-04-04T00:00:00.000Z\",\"dateModified\":\"2022-04-04T00:00:00.000Z\",\"description\":\"Learn more about the release of Apache Pinot 0.10 and all of new features that have been included in this version of the product.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2022-04-04-Announcing-Apache-Pinot-0-10\",\"author\":[{\"@type\":\"Person\",\"name\":\"Pinot Dev\"}]}},{\"title\":\"Text analytics on LinkedIn Talent Insights using Apache Pinot\",\"date\":\"2021-06-16T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"Data\",\"Text analytics\",\"real-time data platform\",\"Realtime\",\"ThirdEye\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Introduction 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\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.32,\"time\":19200,\"words\":64},\"slug\":\"2021/06/16/LinkedIn-TextAnalytics\",\"customSlug\":\"2021/06/16/LinkedIn-TextAnalytics\",\"path\":\"blog/2021/06/16/LinkedIn-TextAnalytics\",\"customPath\":\"blog/2021/06/16/LinkedIn-TextAnalytics\",\"filePath\":\"blog/2021-06-16-LinkedIn-TextAnalytics.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Text analytics on LinkedIn Talent Insights using Apache Pinot\",\"datePublished\":\"2021-06-16T00:00:00.000Z\",\"dateModified\":\"2021-06-16T00:00:00.000Z\",\"description\":\"Introduction 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\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2021-06-16-LinkedIn-TextAnalytics\"}},{\"title\":\"Introduction to Geospatial Queries in Apache Pinot\",\"date\":\"2021-06-13T00:00:00.000Z\",\"tags\":[\"Pinot\",\"DevBlog\",\"H3\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Discuss the challenges of analyzing geospatial at scale and propose the geospatial support in Pinot.\",\"authors\":[\"bastani\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.42,\"time\":25200,\"words\":84},\"slug\":\"2021/06/13/DevBlog-Geospatial\",\"customSlug\":\"2021/06/13/DevBlog-Geospatial\",\"path\":\"blog/2021/06/13/DevBlog-Geospatial\",\"customPath\":\"blog/2021/06/13/DevBlog-Geospatial\",\"filePath\":\"blog/2021-06-13-DevBlog-Geospatial.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Introduction to Geospatial Queries in Apache Pinot\",\"datePublished\":\"2021-06-13T00:00:00.000Z\",\"dateModified\":\"2021-06-13T00:00:00.000Z\",\"description\":\"Discuss the challenges of analyzing geospatial at scale and propose the geospatial support in Pinot.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2021-06-13-DevBlog-Geospatial\"}},{\"title\":\"Automating Merchant Live Monitoring with Real-Time Analytics - Charon\",\"date\":\"2021-04-29T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Uber\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Focus on Uber’s real-time data platform components to build a tool called Charon to reduce impact of poor marketplace reliability on the merchants.\",\"authors\":[\"uber\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.72,\"time\":43200,\"words\":144},\"slug\":\"2021/04/29/Uber-Charon\",\"customSlug\":\"2021/04/29/Uber-Charon\",\"path\":\"blog/2021/04/29/Uber-Charon\",\"customPath\":\"blog/2021/04/29/Uber-Charon\",\"filePath\":\"blog/2021-04-29-Uber-Charon.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Automating Merchant Live Monitoring with Real-Time Analytics - Charon\",\"datePublished\":\"2021-04-29T00:00:00.000Z\",\"dateModified\":\"2021-04-29T00:00:00.000Z\",\"description\":\"Focus on Uber’s real-time data platform components to build a tool called Charon to reduce impact of poor marketplace reliability on the merchants.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2021-04-29-Uber-Charon\"}},{\"title\":\"Deploying Apache Pinot at a Large Retail Chain\",\"date\":\"2021-04-27T00:00:00.000Z\",\"tags\":[\"Pinot\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Blog gives an overview of our use of Apache Pinot to solve some of biggest challenges around Data Analytics in Large Retail Chain\",\"authors\":[\"pinotdev\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.175,\"time\":10500,\"words\":35},\"slug\":\"2021/04/27/DevBlog-PinotInRetailChain\",\"customSlug\":\"2021/04/27/DevBlog-PinotInRetailChain\",\"path\":\"blog/2021/04/27/DevBlog-PinotInRetailChain\",\"customPath\":\"blog/2021/04/27/DevBlog-PinotInRetailChain\",\"filePath\":\"blog/2021-04-27-DevBlog-PinotInRetailChain.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Deploying Apache Pinot at a Large Retail Chain\",\"datePublished\":\"2021-04-27T00:00:00.000Z\",\"dateModified\":\"2021-04-27T00:00:00.000Z\",\"description\":\"Blog gives an overview of our use of Apache Pinot to solve some of biggest challenges around Data Analytics in Large Retail Chain\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2021-04-27-DevBlog-PinotInRetailChain\",\"author\":[{\"@type\":\"Person\",\"name\":\"Pinot Dev\"}]}},{\"title\":\"Solving for the cardinality of set intersection at scale with Pinot and Theta Sketches\",\"date\":\"2021-04-16T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.205,\"time\":12300,\"words\":41},\"slug\":\"2021/04/16/LinkedIn-Theta\",\"customSlug\":\"2021/04/16/LinkedIn-Theta\",\"path\":\"blog/2021/04/16/LinkedIn-Theta\",\"customPath\":\"blog/2021/04/16/LinkedIn-Theta\",\"filePath\":\"blog/2021-04-16-LinkedIn-Theta.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Solving for the cardinality of set intersection at scale with Pinot and Theta Sketches\",\"datePublished\":\"2021-04-16T00:00:00.000Z\",\"dateModified\":\"2021-04-16T00:00:00.000Z\",\"description\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2021-04-16-LinkedIn-Theta\",\"author\":[{\"@type\":\"Person\",\"name\":\"LinkedIn Engineering Team\"}]}},{\"title\":\"Using Apache Pinot and Kafka to Analyze GitHub Events\",\"date\":\"2021-04-10T00:00:00.000Z\",\"tags\":[\"Pinot\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Show you how Pinot and Kafka can be used together to ingest, query, and visualize event streams sourced from the public GitHub API.\",\"authors\":[\"bastani\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.32,\"time\":19200,\"words\":64},\"slug\":\"2020/04/10/DevBlog-AnalyzeGitEvents\",\"customSlug\":\"2020/04/10/DevBlog-AnalyzeGitEvents\",\"path\":\"blog/2020/04/10/DevBlog-AnalyzeGitEvents\",\"customPath\":\"blog/2020/04/10/DevBlog-AnalyzeGitEvents\",\"filePath\":\"blog/2020-04-10-DevBlog-AnalyzeGitEvents.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Using Apache Pinot and Kafka to Analyze GitHub Events\",\"datePublished\":\"2021-04-10T00:00:00.000Z\",\"dateModified\":\"2021-04-10T00:00:00.000Z\",\"description\":\"Show you how Pinot and Kafka can be used together to ingest, query, and visualize event streams sourced from the public GitHub API.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-04-10-DevBlog-AnalyzeGitEvents\"}},{\"title\":\"Introduction to Upserts in Apache Pinot\",\"date\":\"2021-04-08T00:00:00.000Z\",\"tags\":[\"Pinot\",\"DevBlog\",\"Upsert\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Introduction to Pinot Upsert and explain why it’s exciting and how you can start using it.\",\"authors\":[\"bastani\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.465,\"time\":27900,\"words\":93},\"slug\":\"2021/04/08/DevBlog-UpsertsIntro\",\"customSlug\":\"2021/04/08/DevBlog-UpsertsIntro\",\"path\":\"blog/2021/04/08/DevBlog-UpsertsIntro\",\"customPath\":\"blog/2021/04/08/DevBlog-UpsertsIntro\",\"filePath\":\"blog/2021-04-08-DevBlog-UpsertsIntro.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Introduction to Upserts in Apache Pinot\",\"datePublished\":\"2021-04-08T00:00:00.000Z\",\"dateModified\":\"2021-04-08T00:00:00.000Z\",\"description\":\"Introduction to Pinot Upsert and explain why it’s exciting and how you can start using it.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2021-04-08-DevBlog-UpsertsIntro\"}},{\"title\":\"Real-time Analytics with Presto and Apache Pinot\",\"date\":\"2021-02-02T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Presto\",\"Trino\",\"PrestoSQL\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Blog gives an overview of our use of Apache Pinot to solve some of biggest challenges around Data Analytics in Large Retail Chain\",\"authors\":[\"pinotdev\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.31,\"time\":18600,\"words\":62},\"slug\":\"2021/02/02/DevBlog-PrestoPinot\",\"customSlug\":\"2021/02/02/DevBlog-PrestoPinot\",\"path\":\"blog/2021/02/02/DevBlog-PrestoPinot\",\"customPath\":\"blog/2021/02/02/DevBlog-PrestoPinot\",\"filePath\":\"blog/2021-02-02-DevBlog-PrestoPinot.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Real-time Analytics with Presto and Apache Pinot\",\"datePublished\":\"2021-02-02T00:00:00.000Z\",\"dateModified\":\"2021-02-02T00:00:00.000Z\",\"description\":\"Blog gives an overview of our use of Apache Pinot to solve some of biggest challenges around Data Analytics in Large Retail Chain\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2021-02-02-DevBlog-PrestoPinot\"}},{\"title\":\"Change Data Analysis with Debezium and Apache Pinot\",\"date\":\"2021-01-08T00:00:00.000Z\",\"tags\":[\"Pinot\",\"DevBlog\",\"Debezium\",\"CDC\",\"Change Data Analysis\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Pinot enters into a storied legacy of innovations that have emerged from one of the world’s largest online social networks. Over a few decades, the Silicon Valley tech giant has helped hundreds of millions of people around the world navigate their careers.\",\"authors\":[\"bastani\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.21,\"time\":12600,\"words\":42},\"slug\":\"2021/01/08/DevBlog-DebeziumCDC\",\"customSlug\":\"2021/01/08/DevBlog-DebeziumCDC\",\"path\":\"blog/2021/01/08/DevBlog-DebeziumCDC\",\"customPath\":\"blog/2021/01/08/DevBlog-DebeziumCDC\",\"filePath\":\"blog/2021-01-08-DevBlog-DebeziumCDC.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Change Data Analysis with Debezium and Apache Pinot\",\"datePublished\":\"2021-01-08T00:00:00.000Z\",\"dateModified\":\"2021-01-08T00:00:00.000Z\",\"description\":\"Pinot enters into a storied legacy of innovations that have emerged from one of the world’s largest online social networks. Over a few decades, the Silicon Valley tech giant has helped hundreds of millions of people around the world navigate their careers.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2021-01-08-DevBlog-DebeziumCDC\",\"author\":[{\"@type\":\"Person\",\"name\":\"Hubert Dulay\"}]}},{\"title\":\"From Lambda to Lambda-less Lessons learned\",\"date\":\"2020-12-01T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"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.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.205,\"time\":12300,\"words\":41},\"slug\":\"2020/12/01/LinkedIn-Lamda\",\"customSlug\":\"2020/12/01/LinkedIn-Lamda\",\"path\":\"blog/2020/12/01/LinkedIn-Lamda\",\"customPath\":\"blog/2020/12/01/LinkedIn-Lamda\",\"filePath\":\"blog/2020-12-01-LinkedIn-Lamda.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"From Lambda to Lambda-less Lessons learned\",\"datePublished\":\"2020-12-01T00:00:00.000Z\",\"dateModified\":\"2020-12-01T00:00:00.000Z\",\"description\":\"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.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-12-01-LinkedIn-Lamda\"}},{\"title\":\"Operating Apache Pinot at Uber Scale\",\"date\":\"2020-10-20T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Uber\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\",\"financial intelligence\"],\"summary\":\"Present details of this platform and how it fits in Uber’s ecosystem. Explain how uber scaled from a few use cases to a multi-cluster powering hundreds of use cases for querying terabyte-scale data with millisecond latencies.\",\"authors\":[\"uber\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.435,\"time\":26100,\"words\":87},\"slug\":\"2020/10/20/Uber-Operating\",\"customSlug\":\"2020/10/20/Uber-Operating\",\"path\":\"blog/2020/10/20/Uber-Operating\",\"customPath\":\"blog/2020/10/20/Uber-Operating\",\"filePath\":\"blog/2020-10-20-Uber-Operating.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Operating Apache Pinot at Uber Scale\",\"datePublished\":\"2020-10-20T00:00:00.000Z\",\"dateModified\":\"2020-10-20T00:00:00.000Z\",\"description\":\"Present details of this platform and how it fits in Uber’s ecosystem. Explain how uber scaled from a few use cases to a multi-cluster powering hundreds of use cases for querying terabyte-scale data with millisecond latencies.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-10-20-Uber-Operating\"}},{\"title\":\"Deep Analysis of Russian Twitter Trolls\",\"date\":\"2020-10-16T00:00:00.000Z\",\"tags\":[\"Pinot\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Show you how to use Apache Pinot and Superset to analyze 3 million tweets by the Internet Research Agency (IRA) open-sourced by FiveThirtyEight.\",\"authors\":[\"bastani\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.41,\"time\":24600,\"words\":82},\"slug\":\"2020/10/16/DevBlog-TwitterTrollAnalysis\",\"customSlug\":\"2020/10/16/DevBlog-TwitterTrollAnalysis\",\"path\":\"blog/2020/10/16/DevBlog-TwitterTrollAnalysis\",\"customPath\":\"blog/2020/10/16/DevBlog-TwitterTrollAnalysis\",\"filePath\":\"blog/2020-10-16-DevBlog-TwitterTrollAnalysis.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Deep Analysis of Russian Twitter Trolls\",\"datePublished\":\"2020-10-16T00:00:00.000Z\",\"dateModified\":\"2020-10-16T00:00:00.000Z\",\"description\":\"Show you how to use Apache Pinot and Superset to analyze 3 million tweets by the Internet Research Agency (IRA) open-sourced by FiveThirtyEight.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-10-16-DevBlog-TwitterTrollAnalysis\",\"author\":[{\"@type\":\"Person\",\"name\":\"Hubert Dulay\"}]}},{\"title\":\"Leverage Plugins to Ingest Parquet Files from S3 in Pinot\",\"date\":\"2020-08-08T00:00:00.000Z\",\"tags\":[\"Pinot\",\"SLA\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"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.\",\"authors\":[\"pinotdev\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.415,\"time\":24900,\"words\":83},\"slug\":\"2020/08/08/DevBlog-IngestPlugins\",\"customSlug\":\"2020/08/08/DevBlog-IngestPlugins\",\"path\":\"blog/2020/08/08/DevBlog-IngestPlugins\",\"customPath\":\"blog/2020/08/08/DevBlog-IngestPlugins\",\"filePath\":\"blog/2020-08-08-DevBlog-IngestPlugins.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Leverage Plugins to Ingest Parquet Files from S3 in Pinot\",\"datePublished\":\"2020-08-08T00:00:00.000Z\",\"dateModified\":\"2020-08-08T00:00:00.000Z\",\"description\":\"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.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-08-08-DevBlog-IngestPlugins\"}},{\"title\":\"Monitoring Apache Pinot with JMX, Prometheus and Grafana\",\"date\":\"2020-08-08T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Monitoring\",\"JMX\",\"Prometheus\",\"Grafana\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Blog gives an overview of our use of Apache Pinot to solve some of biggest challenges around Data Analytics in Large Retail Chain\",\"authors\":[\"pinotdev\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.275,\"time\":16500,\"words\":55},\"slug\":\"2020/08/08/DevBlog-PinotMonitoring\",\"customSlug\":\"2020/08/08/DevBlog-PinotMonitoring\",\"path\":\"blog/2020/08/08/DevBlog-PinotMonitoring\",\"customPath\":\"blog/2020/08/08/DevBlog-PinotMonitoring\",\"filePath\":\"blog/2020-08-08-DevBlog-PinotMonitoring.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Monitoring Apache Pinot with JMX, Prometheus and Grafana\",\"datePublished\":\"2020-08-08T00:00:00.000Z\",\"dateModified\":\"2020-08-08T00:00:00.000Z\",\"description\":\"Blog gives an overview of our use of Apache Pinot to solve some of biggest challenges around Data Analytics in Large Retail Chain\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-08-08-DevBlog-PinotMonitoring\",\"author\":[{\"@type\":\"Person\",\"name\":\"Pinot Dev\"}]}},{\"title\":\"Achieving 99th percentile latency SLA using Apache Pinot\",\"date\":\"2020-08-08T00:00:00.000Z\",\"tags\":[\"Pinot\",\"SLA\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"How users can build critical site-facing analytical applications requiring high throughput and strict p99th query latency SLA\",\"authors\":[\"pinotdev\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.19,\"time\":11400,\"words\":38},\"slug\":\"2020/08/08/DevBlog-SLAApps\",\"customSlug\":\"2020/08/08/DevBlog-SLAApps\",\"path\":\"blog/2020/08/08/DevBlog-SLAApps\",\"customPath\":\"blog/2020/08/08/DevBlog-SLAApps\",\"filePath\":\"blog/2020-08-08-DevBlog-SLAApps.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Achieving 99th percentile latency SLA using Apache Pinot\",\"datePublished\":\"2020-08-08T00:00:00.000Z\",\"dateModified\":\"2020-08-08T00:00:00.000Z\",\"description\":\"How users can build critical site-facing analytical applications requiring high throughput and strict p99th query latency SLA\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-08-08-DevBlog-SLAApps\"}},{\"title\":\"Utilize UDFs to Supercharge Queries in Apache Pinot\",\"date\":\"2020-08-08T00:00:00.000Z\",\"tags\":[\"Pinot\",\"SLA\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Scalar Functions that allow users to write and add their functions as a plugin.\",\"authors\":[\"pinotdev\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.51,\"time\":30600,\"words\":102},\"slug\":\"2020/08/08/DevBlog-ScalarUDFs\",\"customSlug\":\"2020/08/08/DevBlog-ScalarUDFs\",\"path\":\"blog/2020/08/08/DevBlog-ScalarUDFs\",\"customPath\":\"blog/2020/08/08/DevBlog-ScalarUDFs\",\"filePath\":\"blog/2020-08-08-DevBlog-ScalarUDFs.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Utilize UDFs to Supercharge Queries in Apache Pinot\",\"datePublished\":\"2020-08-08T00:00:00.000Z\",\"dateModified\":\"2020-08-08T00:00:00.000Z\",\"description\":\"Scalar Functions that allow users to write and add their functions as a plugin.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-08-08-DevBlog-ScalarUDFs\"}},{\"title\":\"Building a culture around metrics and anomaly detection\",\"date\":\"2020-07-28T00:00:00.000Z\",\"tags\":[\"Pinot\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"ThirdEye as a system is a platform that allows you to integrate your metrics (quantitative information) with events (knowledge or qualitative information) and combine the two so you can distinguish between meaningless anomalies and those ones that matter.\",\"authors\":[\"bastani\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.475,\"time\":28500,\"words\":95},\"slug\":\"2020/07/28/DevBlog-AnomalyDetection\",\"customSlug\":\"2020/07/28/DevBlog-AnomalyDetection\",\"path\":\"blog/2020/07/28/DevBlog-AnomalyDetection\",\"customPath\":\"blog/2020/07/28/DevBlog-AnomalyDetection\",\"filePath\":\"blog/2020-07-28-DevBlog-AnomalyDetection.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Building a culture around metrics and anomaly detection\",\"datePublished\":\"2020-07-28T00:00:00.000Z\",\"dateModified\":\"2020-07-28T00:00:00.000Z\",\"description\":\"ThirdEye as a system is a platform that allows you to integrate your metrics (quantitative information) with events (knowledge or qualitative information) and combine the two so you can distinguish between meaningless anomalies and those ones that matter.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-07-28-DevBlog-AnomalyDetection\"}},{\"title\":\"Moving developers up the stack with Apache Pinot\",\"date\":\"2020-07-28T00:00:00.000Z\",\"tags\":[\"Pinot\",\"DevBlog\",\"ThirdEye\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Pinot enters into a storied legacy of innovations that have emerged from one of the world’s largest online social networks. Over a few decades, the Silicon Valley tech giant has helped hundreds of millions of people around the world navigate their careers.\",\"authors\":[\"bastani\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.425,\"time\":25500,\"words\":85},\"slug\":\"2020/07/28/DevBlog-DevUpStack\",\"customSlug\":\"2020/07/28/DevBlog-DevUpStack\",\"path\":\"blog/2020/07/28/DevBlog-DevUpStack\",\"customPath\":\"blog/2020/07/28/DevBlog-DevUpStack\",\"filePath\":\"blog/2020-07-28-DevBlog-DevUpStack.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Moving developers up the stack with Apache Pinot\",\"datePublished\":\"2020-07-28T00:00:00.000Z\",\"dateModified\":\"2020-07-28T00:00:00.000Z\",\"description\":\"Pinot enters into a storied legacy of innovations that have emerged from one of the world’s largest online social networks. Over a few decades, the Silicon Valley tech giant has helped hundreds of millions of people around the world navigate their careers.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-07-28-DevBlog-DevUpStack\"}},{\"title\":\"Bridging batch and stream processing for the Recruiter usage statistics dashboard\",\"date\":\"2020-07-14T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.205,\"time\":12300,\"words\":41},\"slug\":\"2020/07/14/LinkedIn-BatchRealtime\",\"customSlug\":\"2020/07/14/LinkedIn-BatchRealtime\",\"path\":\"blog/2020/07/14/LinkedIn-BatchRealtime\",\"customPath\":\"blog/2020/07/14/LinkedIn-BatchRealtime\",\"filePath\":\"blog/2020-07-14-LinkedIn-BatchRealtime.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Bridging batch and stream processing for the Recruiter usage statistics dashboard\",\"datePublished\":\"2020-07-14T00:00:00.000Z\",\"dateModified\":\"2020-07-14T00:00:00.000Z\",\"description\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-07-14-LinkedIn-BatchRealtime\",\"author\":[{\"@type\":\"Person\",\"name\":\"LinkedIn Engineering Team\"}]}},{\"title\":\"Building LinkedIn Talent Insights to democratize data-driven decision making\",\"date\":\"2020-06-29T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.185,\"time\":11100,\"words\":37},\"slug\":\"2020/06/29/LinkedIn-TalentInsight\",\"customSlug\":\"2020/06/29/LinkedIn-TalentInsight\",\"path\":\"blog/2020/06/29/LinkedIn-TalentInsight\",\"customPath\":\"blog/2020/06/29/LinkedIn-TalentInsight\",\"filePath\":\"blog/2020-06-29-LinkedIn-TalentInsight.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Building LinkedIn Talent Insights to democratize data-driven decision making\",\"datePublished\":\"2020-06-29T00:00:00.000Z\",\"dateModified\":\"2020-06-29T00:00:00.000Z\",\"description\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-06-29-LinkedIn-TalentInsight\"}},{\"title\":\"Monitoring business performance data with ThirdEye smart alerts\",\"date\":\"2020-06-25T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.22,\"time\":13200,\"words\":44},\"slug\":\"2020/06/25/LinkedIn-SmartAlerts\",\"customSlug\":\"2020/06/25/LinkedIn-SmartAlerts\",\"path\":\"blog/2020/06/25/LinkedIn-SmartAlerts\",\"customPath\":\"blog/2020/06/25/LinkedIn-SmartAlerts\",\"filePath\":\"blog/2020-06-25-LinkedIn-SmartAlerts.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Monitoring business performance data with ThirdEye smart alerts\",\"datePublished\":\"2020-06-25T00:00:00.000Z\",\"dateModified\":\"2020-06-25T00:00:00.000Z\",\"description\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-06-25-LinkedIn-SmartAlerts\",\"author\":[{\"@type\":\"Person\",\"name\":\"LinkedIn Engineering Team\"}]}},{\"title\":\"Analyzing anomalies with ThirdEye\",\"date\":\"2020-02-20T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.175,\"time\":10500,\"words\":35},\"slug\":\"2020/02/20/LinkedIn-Thirdeye\",\"customSlug\":\"2020/02/20/LinkedIn-Thirdeye\",\"path\":\"blog/2020/02/20/LinkedIn-Thirdeye\",\"customPath\":\"blog/2020/02/20/LinkedIn-Thirdeye\",\"filePath\":\"blog/2020-02-20-LinkedIn-Thirdeye.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Analyzing anomalies with ThirdEye\",\"datePublished\":\"2020-02-20T00:00:00.000Z\",\"dateModified\":\"2020-02-20T00:00:00.000Z\",\"description\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-02-20-LinkedIn-Thirdeye\"}},{\"title\":\"Engineering SQL Support on Apache Pinot at Uber\",\"date\":\"2020-01-15T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Uber\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\",\"Presto\",\"SQL\"],\"summary\":\"Talks about solution that linked Presto, a query engine that supports full ANSI SQL, and Pinot, a real-time OLAP (online analytical processing) datastore.\",\"authors\":[\"uber\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.42,\"time\":25200,\"words\":84},\"slug\":\"2020/01/15/Pinot-Presto-SQL\",\"customSlug\":\"2020/01/15/Pinot-Presto-SQL\",\"path\":\"blog/2020/01/15/Pinot-Presto-SQL\",\"customPath\":\"blog/2020/01/15/Pinot-Presto-SQL\",\"filePath\":\"blog/2020-01-15-Pinot-Presto-SQL.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Engineering SQL Support on Apache Pinot at Uber\",\"datePublished\":\"2020-01-15T00:00:00.000Z\",\"dateModified\":\"2020-01-15T00:00:00.000Z\",\"description\":\"Talks about solution that linked Presto, a query engine that supports full ANSI SQL, and Pinot, a real-time OLAP (online analytical processing) datastore.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2020-01-15-Pinot-Presto-SQL\"}},{\"title\":\"Auto-tuning Pinot real-time consumption\",\"date\":\"2019-07-11T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.24,\"time\":14400,\"words\":48},\"slug\":\"2019/07/11/LinkedIn-AutoTune\",\"customSlug\":\"2019/07/11/LinkedIn-AutoTune\",\"path\":\"blog/2019/07/11/LinkedIn-AutoTune\",\"customPath\":\"blog/2019/07/11/LinkedIn-AutoTune\",\"filePath\":\"blog/2019-07-11-LinkedIn-AutoTune.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Auto-tuning Pinot real-time consumption\",\"datePublished\":\"2019-07-11T00:00:00.000Z\",\"dateModified\":\"2019-07-11T00:00:00.000Z\",\"description\":\"Focus on using large set intersection cardinality approximations with Apache Pinot and Theta Sketches, which allow us to efficiently figure out the unique size of a targeted audience when factoring in multiple criteria of an advertising campaign.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2019-07-11-LinkedIn-AutoTune\"}},{\"title\":\"Star-tree index - Powering fast aggregations on Pinot\",\"date\":\"2019-06-14T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"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.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.175,\"time\":10500,\"words\":35},\"slug\":\"2019/06/14/LinkedIn-StarTree\",\"customSlug\":\"2019/06/14/LinkedIn-StarTree\",\"path\":\"blog/2019/06/14/LinkedIn-StarTree\",\"customPath\":\"blog/2019/06/14/LinkedIn-StarTree\",\"filePath\":\"blog/2019-06-14-LinkedIn-StarTree.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Star-tree index - Powering fast aggregations on Pinot\",\"datePublished\":\"2019-06-14T00:00:00.000Z\",\"dateModified\":\"2019-06-14T00:00:00.000Z\",\"description\":\"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.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2019-06-14-LinkedIn-StarTree\",\"author\":[{\"@type\":\"Person\",\"name\":\"LinkedIn Engineering Team\"}]}},{\"title\":\"Introducing ThirdEye - LinkedIn’s Business-Wide Monitoring Platform\",\"date\":\"2019-01-09T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"real-time data platform\",\"Realtime\",\"ThirdEye\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"ThirdEye is a comprehensive platform for real-time monitoring of metrics that covers a wide variety of use-cases.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.28,\"time\":16800,\"words\":56},\"slug\":\"2019/01/09/LinkedIn-IntroThirdEye\",\"customSlug\":\"2019/01/09/LinkedIn-IntroThirdEye\",\"path\":\"blog/2019/01/09/LinkedIn-IntroThirdEye\",\"customPath\":\"blog/2019/01/09/LinkedIn-IntroThirdEye\",\"filePath\":\"blog/2019-01-09-LinkedIn-IntroThirdEye.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Introducing ThirdEye - LinkedIn’s Business-Wide Monitoring Platform\",\"datePublished\":\"2019-01-09T00:00:00.000Z\",\"dateModified\":\"2019-01-09T00:00:00.000Z\",\"description\":\"ThirdEye is a comprehensive platform for real-time monitoring of metrics that covers a wide variety of use-cases.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2019-01-09-LinkedIn-IntroThirdEye\"}},{\"title\":\"Engineering Restaurant Manager - UberEATS Analytics Dashboard\",\"date\":\"2017-09-17T00:00:00.000Z\",\"tags\":[\"Pinot\",\"Uber Data\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\",\"financial intelligence\"],\"summary\":\"Restaurant Manager is a comprehensive analytics dashboard and pipeline for our restaurant partners. In this article, we discuss how we architected this analytics platform and its robust data pipeline.\",\"authors\":[\"uber\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.35,\"time\":21000,\"words\":70},\"slug\":\"2017/09/17/Restaurant-Manager\",\"customSlug\":\"2017/09/17/Restaurant-Manager\",\"path\":\"blog/2017/09/17/Restaurant-Manager\",\"customPath\":\"blog/2017/09/17/Restaurant-Manager\",\"filePath\":\"blog/2017-09-17-Restaurant-Manager.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Engineering Restaurant Manager - UberEATS Analytics Dashboard\",\"datePublished\":\"2017-09-17T00:00:00.000Z\",\"dateModified\":\"2017-09-17T00:00:00.000Z\",\"description\":\"Restaurant Manager is a comprehensive analytics dashboard and pipeline for our restaurant partners. In this article, we discuss how we architected this analytics platform and its robust data pipeline.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2017-09-17-Restaurant-Manager\"}},{\"title\":\"Open Sourcing Pinot - Scaling the Wall of Real-Time Analytics\",\"date\":\"2015-06-10T00:00:00.000Z\",\"tags\":[\"Pinot\",\"A/B Testing\",\"Infrastructure\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"Introducing Pinot which allow to slice and dice across billions of rows in real-time across a wide variety of products\",\"authors\":[\"Kishore Gopalakrishna\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.15,\"time\":9000,\"words\":30},\"slug\":\"2015/06/10/Open-Sourcing-Pinot\",\"customSlug\":\"2015/06/10/Open-Sourcing-Pinot\",\"path\":\"blog/2015/06/10/Open-Sourcing-Pinot\",\"customPath\":\"blog/2015/06/10/Open-Sourcing-Pinot\",\"filePath\":\"blog/2015-06-10-Open-Sourcing-Pinot.mdx\",\"toc\":[],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Open Sourcing Pinot - Scaling the Wall of Real-Time Analytics\",\"datePublished\":\"2015-06-10T00:00:00.000Z\",\"dateModified\":\"2015-06-10T00:00:00.000Z\",\"description\":\"Introducing Pinot which allow to slice and dice across billions of rows in real-time across a wide variety of products\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2015-06-10-Open-Sourcing-Pinot\"}},{\"title\":\"A Brief History of Scaling LinkedIn\",\"date\":\"2015-05-16T00:00:00.000Z\",\"tags\":[\"Pinot\",\"LinkedIn\",\"Data Scaling\",\"real-time data platform\",\"Realtime\",\"Analytics\",\"User-Facing Analytics\"],\"summary\":\"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.\",\"authors\":[\"linkedin\"],\"type\":\"Blog\",\"readingTime\":{\"text\":\"1 min read\",\"minutes\":0.58,\"time\":34800,\"words\":116},\"slug\":\"2015/05/16/LinkedIn-Scaling\",\"customSlug\":\"2015/05/16/LinkedIn-Scaling\",\"path\":\"blog/2015/05/16/LinkedIn-Scaling\",\"customPath\":\"blog/2015/05/16/LinkedIn-Scaling\",\"filePath\":\"blog/2015-05-16-LinkedIn-Scaling.mdx\",\"toc\":[{\"value\":\"A Brief History of Scaling LinkedIn\",\"url\":\"#a-brief-history-of-scaling-linkedin\",\"depth\":2}],\"structuredData\":{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"A Brief History of Scaling LinkedIn\",\"datePublished\":\"2015-05-16T00:00:00.000Z\",\"dateModified\":\"2015-05-16T00:00:00.000Z\",\"description\":\"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.\",\"image\":\"/static/images/twitter-card.png\",\"url\":\"https://pinot.apache.org/blog/2015-05-16-LinkedIn-Scaling\"}}]}]\n"])</script><script>self.__next_f.push([1,"5:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Apache Pinot™\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Realtime distributed OLAP datastore\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"5\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"link\",\"6\",{\"rel\":\"canonical\",\"href\":\"https://pinot.apache.org/\"}],[\"$\",\"link\",\"7\",{\"rel\":\"alternate\",\"type\":\"application/rss+xml\",\"href\":\"https://pinot.apache.org/feed.xml\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"Apache Pinot™\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"Realtime distributed OLAP datastore\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:url\",\"content\":\"https://pinot.apache.org/\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:site_name\",\"content\":\"Apache Pinot™\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://pinot.apache.org/static/images/twitter-card.png\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:title\",\"content\":\"Apache Pinot™\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:description\",\"content\":\"Realtime distributed OLAP datastore\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:image\",\"content\":\"https://pinot.apache.org/static/images/twitter-card.png\"}],[\"$\",\"meta\",\"19\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"e:null\n"])</script><script>self.__next_f.push([1,""])</script></body></html>