Programmering

Greenplum 6 anmeldelse: Jack of all trades, master of some

En MPP-database (massiv parallelbehandling) distribuerer data og forespørgsler på tværs af hver node i en klynge af handelsservere. Greenplums tilgang til at opbygge et MPP-datalager er unik. Ved at bygge på en etableret open source-database, PostgreSQL, er de i stand til at fokusere teknisk indsats på at tilføre værdi, hvor den tæller: parallelisering og tilhørende forespørgselsplanlægning, et søjledatalager til analyse og styringsfunktioner.

Greenplum ejes og udvikles af Pivotal med støtte fra open source-samfundet og er tilgængelig gratis under Apache 2-licensen. Den seneste udgivelse, Greenplum 6.0, går langt i retning af at genintegrere Greenplum-kernen med PostgreSQL, der indeholder næsten seks års forbedringer fra PostgreSQL-projektet. Disse bestræbelser betyder, at Greenplum fremover vil få nye funktioner og forbedringer til "gratis", mens Pivotal fokuserer på at få disse tilføjelser til at fungere godt i et parallelt miljø.

Greenplum arkitektur

En MPP-database bruger det, der kaldes en delte intet arkitektur. I denne arkitektur behandler individuelle databaseservere (baseret på PostgreSQL), kendt som segmenter, hver en del af dataene, før resultaterne returneres til en masterhost. Lignende arkitekturer ses i andre databehandlingssystemer, som Spark eller Solr. Dette er en af ​​de vigtigste arkitektoniske funktioner, der gør det muligt for Greenplum at integrere andre parallelle systemer, såsom maskinindlæring eller tekstanalyse.

Da Solr f.eks. Har en lignende distribueret arkitektur, kan Greenplum linke de enkelte Solr-behandlingsforekomster med segmentværterne for at give en mere eller mindre problemfri forespørgsel og analytisk oplevelse. Dette betyder også, at dataene behandles på stedet, hvilket undgår dyre bevægelser af data over hele netværket.

Afgørende

Implementering af Greenplum

Greenplum kan implementeres på flere måder: i alle tre store skyer via deres respektive markedspladser, containeriseret eller på bare metal. Som med enhver klyngeapplikation opnås den bedste ydeevne på dedikerede bare metal-maskiner. Jeg implementerede en to-node-klynge på Google Cloud Platform med alle klokker og fløjter på bare et par minutter. Og jeg installerede Greenplum lokalt i en VM ved hjælp af de præ-kompilerede binære filer om cirka en time.

Den lokale installation var nødvendig, fordi Greenplum 6 endnu ikke er tilgængelig i skyerne; den kommer til november 2019. Den lokale installation gav mig også mulighed for at vurdere kvaliteten af ​​Greenplum-dokumentationen. Som du måske forventer af et tidligere lukket kilde, proprietært produkt, er det fremragende.

At have flere implementeringsmuligheder giver virksomheder mulighed for at finjustere deres implementeringer til at matche operationelle krav. For eksempel kan modeller trænes i en klyngemet metal-klynge med flere knudepunkter til hurtig modeludvikling og derefter distribueres på en enkelt forekomst af Pivotal Postgres, der kører et REST-slutpunkt i en container til at operationalisere 'modellen.

Greenplum-forenede forespørgsler

Data i dag er overalt — på forskellige steder, forskellige formater og forskellige “temperaturer”. Pivotal Extension Framework (PXF), introduceret i Greenplum 5, voksede ud af det gamle HDFS-stik til en generel metode til at få adgang til eksterne datatabeller i Greenplum. PXF opretter også forbindelse til forskellige dataformater, såsom tekstfiler (f.eks. Weblogfiler), udenlandske databaser, ORC, Parquet og HBase. Nye datakilder kan føjes til PFX ved hjælp af en Java API.

Ved at kombinere PXF med de eksterne adgangsfunktioner, der er overført med PostgreSQL 9.4, kan Greenplum udføre forenede forespørgsler på tværs af datalokationer, herunder Kafka-streams, HDFS, Spark og Amazon S3-objektbutikker. Sidstnævnte evne, der forespørger Amazon S3-objektbutikker, inkluderer Amazons oprindelige S3 SELECT API, hvilket forbedrer ydeevnen ved at filtrere ved kanten.

Forenede forespørgsler kan være mere nyttige, end du forestiller dig. Antag for eksempel, at vi ønsker at finde alle personer, der:

arbejde hos '' og kender hinanden 'direkte' og hvis navne lyder som 'Doug' eller 'Steve' og har ringet til hinanden inden for 24 timer fra enten Singapore eller San Francisco

Denne form for forespørgsel kan ses i en svigundersøgelse eller som svar på en finansiel myndigheds anmodning om information. I en typisk virksomhed spredes disse oplysninger over et halvt dusin eller flere forskellige systemer og kræver måske en uge eller mere at svare på. Med fødereret forespørgsel kan vi sy det sammen til en enkelt forespørgsel og svare inden for en time. I en æra med øget reguleringstilsyn kæmper mange virksomheder med at undgå bøder for sent besvarelse af forespørgsler, og forenede forespørgsler hjælper meget her.

Greenplum-analyse og maskinlæring

Greenplums MADlib-udvidelse, et SQL-baseret bibliotek til dataanalyse og maskinindlæring, blev oprindeligt udviklet af flere universiteter og Greenplum. MADlib blev designet til at arbejde med den delte-intet parallelle arkitektur i Greenplum. Ikke alle maskinlæringsalgoritmer kan gøres parallelle, men for dem der kan, opnår MADlib mere eller mindre lineær skalerbarhed med størrelsen på datasættet, mens dataoverførsler undgås. MADlib inkluderer lidt mere end 50 af de mest almindelige maskinindlæringsalgoritmer.

En af de mest nyttige funktioner i MADlib er SQL-grænsefladen, der gør det muligt for borgerdata-videnskabsmanden at tilføje værdi uden at skulle klatre indlæringskurven for Python eller R. Modeller kan implementeres via et MADlib REST-slutpunkt for at operationalisere den analytiske indsigt. For en virksomhed, der har et medium niveau af analytisk modenhed, og som implementerer strategier for mestrings- / udfordringsbeslutningsstrategier, kan brug af SQL øge antallet af modeller, der overvejes, uden at yderligere ressourcer omdirigeres fra et centralt hold.

For den traditionelle dataanalytiker giver PivotalR-stikket (tilgængelig på CRAN) en klassisk R-sproggrænseflade til MADlib ved at oversætte R-kode til de tilsvarende SQL-sætninger på klienten og derefter sende dem til Greenplum-klyngen til udførelse. Dette undgår dataoverførsel og tillader manipulation af store datarammer, der ellers ville være umulige i R på grund af hukommelsesbegrænsninger.

Afgørende

HTAP-datalager

Hybrid transaktionel / analytisk behandling (HTAP) er et udtryk, der er opfundet af Gartner. Deres definition:

Hybrid transaktion / analytisk behandling (HTAP) er en ny applikationsarkitektur, der ”bryder muren” mellem transaktionsbehandling og analyse. Det muliggør mere informeret og "i realtid" beslutningstagning.

I praksis betyder det, at systemets brugssager er en blanding af lange og korte forespørgsler samt opdateringer og sletninger. For at understøtte HTAP og forhindre sult af ressourcer implementerer Greenplum en form for SQL-containerisering kaldet ressourcegrupper, der tillader ressourceisolering i et HTAP-miljø med flere lejre. Ved at bruge en ressourcegruppe kan du begrænse CPU, RAM (efter gruppe eller forespørgsel) og maksimal samtidighed. Ressourcegrupper forbedrer ydeevnen på blandede arbejdsbelastninger og forhindrer forespørgselskonkurrence om ressourcer.

En af nøgleforskellene mellem PostgreSQL og Greenplum er forespørgselsplanlæggeren. Selvom Greenplum arvede PostgreSQL-forespørgselsplanlæggeren, da den blev forked, er effektiv forespørgselsplanlægning i et distribueret miljø væsentligt anderledes end på en enkelt maskine. Af den grund satte Greenplum sig for at bygge deres egen forespørgselsplanlægger og baserede den på Cascades Framework for Query Optimization. Denne algoritme evaluerer alle mulige forespørgselsplaner og tildeler dem en pris ved at vælge den laveste pris (hurtigste) plan til udførelse.

Greenplum giver et par funktioner, der hjælper forespørgselsplanlæggeren med at undgå dataflytning, som evnen til at replikere dimensionstabeller til hver knude i klyngen for hurtigere lokale tilslutningsoperationer og tunbar datakomprimering.

Semistruktureret databehandling er nedarvet fra PostgreSQL og inkluderer JSON og JSONB, XML, nøgleværdipar (HSTORE) og almindelig tekst. GIN (generaliseret inverteret indeks), også arvet fra PostgreSQL, kan bruges til at indeksere en tekstkolonne, der ofte bruges. For mere komplekse tekstforespørgsler kan GPText bruges. GPText integrerer Greenplum-segmenter med Apache Solr-skår for at give søgeforespørgsler på naturligt sprog. Fordi Solr-skårene er på samme knudepunkt, har de samme parallelle arkitektur.

Greenplum ydeevne

HTAP-databaser kræver en afbalanceringshandling mellem store, langvarige analytiske forespørgsler, korte ad-hoc-forespørgsler og ACID-transaktionerne på OLTP-siden af ​​ligningen. God ydeevne i dette blandede arbejdsbelastningsscenarie er vigtig for den hybrid brugssag, som Greenplum sigter mod. PostgreSQL 9.4-kernen gav Greenplum 6 et væld af optimeringer, hovedsagelig omkring at undgå låse, hvilket resulterede i en 60 gange stigning i ydeevne i forhold til Greenplum 5 på TPC-B-benchmarks.

Afgørende

I betragtning af at PostgreSQL har banet vejen for yderligere optimeringer (og nu er på version 12), kan vi forvente yderligere forbedringer i Greenplum, da kernen opgraderes igen i Greenplum 7.

Greenplum Command Center

Greenplum Command Center er en del af Pivotal-udbuddet og giver en webbaseret grænseflade til overvågning og styring af en Greenplum-klynge (eller flere klynger). Selvom hard-core DBA'er sandsynligvis ikke opgiver deres kommandolinjegrænseflader, er Command Center et velkomststyringsværktøj til implementeringer på afdelingsniveau, der muligvis ikke har adgang til en fuldtids-DBA. Jeg fandt det let at navigere og veldokumenteret. Brugere, forespørgsler, noder, segmenter og ressourcegrupper kan alle administreres let via grænsefladen.

Greenplum i virksomheden

Greenplum gør det ideelle valg til en afdelingsstandard, da den kan håndtere blandede arbejdsbelastninger, inklusive forudsigende analyse, på en enkelt platform. Hvis du ikke vælger software a-la-carte fra en ELA-menu eller ønsker at undslippe A.I. 'Pilot-skærsilden', investering i Greenplums HTAP-tilgang kan muligvis give en måde at øge innovative anvendelser af maskinlæring og analyse til et lavere prispunkt end konkurrerende løsninger.

Greenplum er også en no-brainer til Netezza- eller Teradata-udskiftninger på virksomhedsniveau. Og mens Greenplum ikke er helt op til at bryde OLTP fra lignende Oracle Database eller Microsoft SQL Server på tværs af virksomheden, vil det fungere godt for mellemstore transaktionssystemer.

Greenplum er et godt eksempel på 80/20 reglen. Selvom det ikke udfører en enkelt opgave såvel som et indbygget værktøj til formål, gør det de fleste af dem godt nok til at dække 80% af brugssagerne, og det er uden den organisatoriske og operationelle overhead involveret i at sy sammen flere systemer og integrere dem i en analytisk pipeline. Dette vejer tungt i sin fordel, når man overvejer de samlede ejeromkostninger.

Koste: Gratis open source under Apache 2.0-licensen.

Platforme: Fås som kildekode; som pakker til CentOS, Red Hat, Debian og Ubuntu Linux distributioner; og på markedspladserne på Amazon Web Services, Microsoft Azure og Google Cloud Platform.