Apache Pinot
Original authors
  • Kishore Gopalakrishna
  • Xiang Fu
DeveloperApache Pinot
Stable release
1.2.0 / 21ย August 2024; 20 months agoย (2024-08-21)
Written inJava
Operating systemCross-platform
Type
LicenseApache License 2.0
Websitepinot.apache.org
RepositoryPinot repository

Apache Pinot is a column-oriented, open-source, distributed data store written in Java. Pinot is designed to execute OLAP queries with low latency.[1][2][3][4][5] It is suited in contexts where fast analytics, such as aggregations, are needed on immutable data, possibly, with real-time data ingestion.[6][7][8] The name Pinot comes from the Pinot grape vines that are pressed into liquid that is used to produce a variety of different wines. The founders of the database chose the name as a metaphor for analyzing vast quantities of data from a variety of different file formats or streaming data sources.[9]

Pinot was first created at LinkedIn after the engineering staff determined that there were no off the shelf solutions that met the social networking site's requirements like predictable low latency, data freshness in seconds, fault tolerance and scalability.[9][10] Pinot is used in production by technology companies such as Uber,[11] Microsoft,[8] and Factual.

History

edit

Pinot was started as an internal project at LinkedIn in 2013 to power a variety of user-facing and business-facing products. The first analytics product at LinkedIn to use Pinot was a redesign of the social networking site's feature that allows members to see who has viewed their profile in real-time. The project was open-sourced in June 2015 under an Apache 2.0 license and was donated to the Apache Software Foundation by LinkedIn in June 2019.[9][8]

Architecture

edit
Architecture of Apache Pinot
Architecture diagram of Apache Pinot

Pinot uses Apache Helix for cluster management. Helix is embedded as an agent within the different components and uses Apache ZooKeeper for coordination and maintaining the overall cluster state and health. All Pinot servers and brokers are managed by Helix. Helix is a generic cluster management framework to manage partitions and replicas in a distributed system.

Query management

edit

Queries are received by brokersโ€”which checks the request against the segment-to-server routing tableโ€”scattering the request between real-time and offline servers.

Cluster management

edit

Pinot leverages Apache Helix for cluster management. Helix is a cluster management framework to manage replicated, partitioned resources in a distributed system. Helix uses Zookeeper to store cluster state and metadata.

Features

edit

Pinot shares similar features with comparable OLAP datastores, such as Apache Druid.[12][13] Like Druid, Pinot is a column-oriented database with various compression schemes such as Run Length and Fixed-Bit Length. Pinot supports pluggable indexing technologies - Sorted Index, Bitmap Index, Inverted Index, Star-Tree Index, and Range Index, which are what primarily differentiates Pinot from other OLAP datastores.

Pinot supports near real-time ingestion from streams such as Kafka, AWS Kinesis and batch ingestion from sources such as Hadoop, S3, Azure, GCS. Like most other OLAP datastores and data warehousing solutions, Pinot supports a SQL-like query language that supports selection, aggregation, filtering, group by, order by, distinct queries on data.

See also

edit

References

edit
  1. ^ Cui, Tingting; Peng, Lijun; Pardoe, David; Liu, Kun; Agarwal, Deepak; Kumar, Deepak (14 August 2017). "Data-Driven Reserve Prices for Social Advertising Auctions at LinkedIn". Proceedings of the ADKDD'17. Association for Computing Machinery. pp.ย 1โ€“7. doi:10.1145/3124749.3124759. ISBNย 9781450351942. S2CIDย 12327343.
  2. ^ Rosa, Marcello La (2021). ADVANCED INFORMATION SYSTEMS ENGINEERING: 33rd International Conference. Springer Nature. ISBNย 978-3-030-79382-1.
  3. ^ Chin, Francis Y. L.; Chen, C. L. Philip; Khan, Latifur; Lee, Kisung; Zhang, Liang-Jie (20 June 2018). Big Data โ€“ BigData 2018: 7th International Congress, Held as Part of the Services Conference Federation, SCF 2018, Seattle, WA, USA, June 25โ€“30, 2018, Proceedings. Springer. p.ย 153. ISBNย 978-3-319-94301-5.
  4. ^ Im, Jean-Franรงois; Gopalakrishna, Kishore; Subramaniam, Subbu; Shrivastava, Mayank; Tumbde, Adwait; Jiang, Xiaotian; Dai, Jennifer; Lee, Seunghyun; Pawar, Neha; Li, Jialiang; Aringunram, Ravi (2018-05-27). "Pinot: Realtime OLAP for 530 Million Users". Proceedings of the 2018 International Conference on Management of Data. Sigmod '18. Association for Computing Machinery. pp.ย 583โ€“594. doi:10.1145/3183713.3190661. ISBNย 9781450347037. S2CIDย 44083085.
  5. ^ "The Apache Software Foundation Announces Apacheยฎ Pinotโ„ข as a Top-Level Project". blogs.apache.org. 2 August 2021.
  6. ^ Rogers, Ryan; Subramaniam, Subbu; Peng, Sean; Durfee, David; Lee, Seunghyun; Kancha, Santosh Kumar; Sahay, Shraddha; Ahammad, Parvez (16 November 2020). "LinkedIn's Audience Engagements API: A Privacy Preserving Data Analytics System at Scale". arXiv:2002.05839 [cs.CR].
  7. ^ Javadi, Seyyed Ahmad; Gupta, Harsh; Manhas, Robin; Sahu, Shweta; Gandhi, Anshul (July 2018). "EASY: Efficient Segment Assignment Strategy for Reducing Tail Latencies in Pinot". 2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS). pp.ย 1432โ€“1437. doi:10.1109/ICDCS.2018.00144. ISBNย 978-1-5386-6871-9. S2CIDย 21659844.
  8. ^ a b c Pawar, Neha. "Pinot Joins Apache Incubator" Archived 2019-04-02 at the Wayback Machine, LinkedIn Engineering, 01 April 2019
  9. ^ a b c Gopalakrishna, Kishore. "Open Sourcing Pinot: Scaling the Wall of Real-Time Analytics". engineering.linkedin.com. LinkedIn. Archived from the original on 10 September 2015. Retrieved 3 September 2020.
  10. ^ Yegulalp, Serdar (2015-06-11). "LinkedIn fills another SQL-on-Hadoop niche". InfoWorld.
  11. ^ Fu, Yupeng; Soman, Chinmay (9 June 2021). "Real-time Data Infrastructure at Uber". Proceedings of the 2021 International Conference on Management of Data. Sigmod/Pods '21. Association for Computing Machinery. pp.ย 2503โ€“2516. arXiv:2104.00087. doi:10.1145/3448016.3457552. ISBNย 9781450383431. S2CIDย 232478317.
  12. ^ Ordonez, Carlos; Song, Il-Yeol; Anderst-Kotsis, Gabriele; Tjoa, A. Min; Khalil, Ismail (2 October 2019). Big Data Analytics and Knowledge Discovery: 21st International Conference, DaWaK 2019, Linz, Austria, August 26โ€“29, 2019, Proceedings. Springer. p.ย 170. ISBNย 978-3-030-27520-4.
  13. ^ Uttamchandani, Sandeep (10 September 2020). The Self-Service Data Roadmap. O'Reilly Media, Inc. ISBNย 978-1-4920-7520-2.
edit

๐Ÿ“š Artikel Terkait di Wikipedia

Apache ZooKeeper

enterprise search systems like Solr and distributed database systems like Apache Pinot. ZooKeeper is modeled after Google's Chubby lock service and was originally

Comparison of OLAP servers

Release". Kylin, Apache. "Apache Kylin | Home". kylin.apache.org. Retrieved 2018-11-08. Pinot, Apache. "Apache Pinot | Home". pinot.apache.org. Retrieved

List of Apache Software Foundation projects

Top-Level Project Apacheยฎ Pekkoโ„ข". Apache Software Foundation. 2024-05-16. "The Apache Software Foundation Announces Apacheยฎ Pinotโ„ข as a Top-Level Project"

Time series database

Peng; Luo, Diaohan; Yuan, Jun; Wang, Jianmin; Sun, Jiaguang (August 2020). "Apache IoTDB: time-series database for internet of things". Proceedings of the

Lambda architecture

data. Examples of technologies used in the serving layer include Apache Druid, Apache Pinot, ClickHouse and Tinybird which provide a single platform to handle

Online analytical processing

of top OLAP vendors in 2006, with figures in millions of US Dollars. Apache Pinot is used at LinkedIn, Cisco, Uber, Slack, Stripe, DoorDash, Target, Walmart

DB-Engines ranking

Yellowbrick Model 204 MatrixOne eXtremeDB Apache Sedona IDMS KeyDB Alibaba Cloud Log Service eXist-db RisingWave Apache Pinot RDF4J Actian Vector TypeDB Datacom/DB

List of column-oriented DBMSes

extensions available from Imply Data. Apache Kudu C++ Released in 2016 to complete the Apache Hadoop ecosystem Apache Pinot Java Open sourced in 2015 for real-time