Zephyrnet-logo

Hoe u de voordelen van AQUA voor uw Amazon Redshift-workloads kunt evalueren?

Datum:

Amazon roodverschuiving is het clouddatawarehouse bij uitstek voor tienduizenden klanten, die het gebruiken om exabytes aan gegevens te analyseren om zakelijke inzichten te verkrijgen. Klanten hebben ons gevraagd om betere prestaties op schaal naarmate het volume, de variëteit, de snelheid en de waarheidsgetrouwheid van hun gegevens toeneemt. We hebben verschillende functies aan Amazon Redshift toegevoegd waarmee u tot drie keer betere prijsprestaties met Amazon Redshift dan andere datawarehouses in de cloud.

Daarnaast lanceerden we AQUA (Advanced Query Accelerator) voor Amazon Redshift om u te helpen op een kosteneffectieve manier analyses uit te voeren op de nieuwe schaal van gegevens. AQUA is een gedistribueerde en hardware-versnelde cache waarmee Amazon Redshift een orde van grootte sneller kan draaien dan andere enterprise cloud-datawarehouses door automatisch bepaalde soorten query's te stimuleren. AQUA maakt gebruik van door AWS ontworpen processors met AWS Nitro-chips die zijn aangepast om gegevenscodering en -compressie te versnellen, en aangepaste analyseprocessors, geïmplementeerd in FPGA's, om bewerkingen zoals scans, filtering en aggregatie te versnellen. AQUA is beschikbaar met de RA3.16xlarge, RA3.4xlarge en RA3.xlplus nodes zonder extra kosten en vereist geen codewijzigingen. U kunt AQUA inschakelen voor uw bestaande Amazon Redshift RA3-clusters of een nieuw AQUA-enabled RA3-cluster lanceren via de AWS-beheerconsole, API, of AWS-opdrachtregelinterface (AWS CLI). Voor meer informatie over AQUA, zie: Werken met AQUA (Advanced Query Accelerator).

Dit bericht leidt je door de stappen om de verwachte voordelen van AQUA voor Amazon Redshift voor je workloads te kwantificeren. We behandelen de methodologie die wordt gebruikt voor het testen van AQUA en delen de scripts, een voorbeelddataset en query's zodat u AQUA in uw eigen omgeving kunt testen. We hebben gepubliceerd scripts op GitHub (samen met een README bestand), dat je nodig hebt als je de stappen in dit bericht volgt. Download alle scripts naar uw werkdirectory van waaruit u verbinding wilt maken met uw Redshift-clusters.

Overzicht oplossingen

Op hoog niveau omvat het AQUA-testproces de volgende stappen:

  1. Maak een testcluster om AQUA te evalueren en zorg ervoor dat AQUA is ingeschakeld. Voor instructies, zie Werken met AQUA (Advanced Query Accelerator).
  2. Analyseer uw werklast voor AQUA en leg geschikte zoekopdrachten vast. Voor meer informatie over de soorten zoekopdrachten die door AQUA worden versneld, raadpleegt u: Wanneer gebruikt Amazon Redshift AQUA om zoekopdrachten uit te voeren?
  3. Voer de workload uit met AQUA geactiveerd en gedeactiveerd op uw testcluster.
  4. Prestatieresultaten vergelijken.

Deze benadering is een eenvoudige maar praktische manier om de prestatiewinst te meten die u kunt verwachten voor uw werklast door AQUA in te schakelen.

Met uitzondering van één script voor het ontleden en analyseren van de werkbelasting (aqua_capture_query.sh), kunt u de rest van de scripts op een testcluster uitvoeren. We raden u aan een testcluster te gebruiken om de impact op uw productiecluster te minimaliseren.

Een testcluster maken

Maak een momentopname van een productiecluster met leeszware werkbelastingen en herstellen het als testcluster.

Analyseer uw werklast en leg geschikte zoekopdrachten vast

lopen aqua_capture_query.sh op het productiecluster om te bepalen welke queries geschikt zijn voor acceleratie door AQUA. We raden aan om workloads te kiezen met SELECT-query's die LIKE- of SIMILAR TO-functies gebruiken in de WHERE-component en grote gegevenssets scannen, filteren en aggregeren. aqua_capture_query.sh scant de querygeschiedenis op uw productiecluster en legt query's vast die AQUA kan versnellen.

De runtime van het script kan enkele minuten overschrijden, afhankelijk van het geselecteerde tijdsinterval (analyze_starttime en analyze_endtime), de grootte van het cluster en de complexiteit van de werkbelasting. We raden u aan de scriptruntime te beperken door het tijdsinterval te beperken tot de minste van uw workloadruntime of 3 uur. Als alternatief kunt u AQUA evalueren met behulp van de Amazon Reviews-voorbeelddataset, die we later in dit bericht demonstreren.

aqua_capture_query.sh slaat een uitvoerbestand op met de naam aqua_eligible_queries naar uw werkdirectory en bevat een subset van de meest geschikte AQUA-geschikte zoekopdrachten.

Het volgende is een voorbeelduitvoer van het script:

select count(*) from amazon_reviews where product_title SIMILAR TO '%lap%' group by star_rating ORDER BY star_rating desc;
select count(*) from amazon_reviews where product_title ilike '%e%|%E%' or customer_ID like '3%__%45__3';

Als uw werkbelastinggeschiedenis niet genoeg voor AQUA geschikte zoekopdrachten bevat, meldt het script dat er geen geschikte zoekopdrachten zijn gevonden. Als dit gebeurt, voert u het script uit met verschillende datum-/tijdparameters. Als u nog steeds geen query's ziet, kunt u de voorbeeldgegevensset en -query's in dit bericht gebruiken. Voor meer informatie over AQUA-geschikte vragen, zie: Wanneer gebruikt Amazon Redshift AQUA om zoekopdrachten uit te voeren?

Voer de workload uit op uw testcluster

lopen aqua_execute_query.sh op uw testcluster. Het script voert de vastgelegde query's herhaaldelijk op uw cluster uit om consistente prestaties te krijgen door de impact van runtime-verschillen als gevolg van omgevingsfactoren te verminderen met AQUA geactiveerd en gedeactiveerd. Het script legt de startdatum/-tijd en einddatum/-tijd vast in een bestand met de naam workload_datetime.txt in uw werkmap.

Prestatieresultaten vergelijken

Wanneer het aqua_execute_query.sh-script voltooid is, voert u . uit aqua_perf_compare.sh, die een CSV-bestand genereert met de naam aqua_benefit in uw werkmap. De volgende tabel geeft een overzicht van de voorbeelduitvoer.

Query ID Amazon Redshift met AQUA ingeschakeld Vraag ID Amazon Redshift met AQUA uitgeschakeld Runtime in seconden met AQUA ingeschakeld Runtime in seconden met AQUA uitgeschakeld Versnellen
(Kolom C/Kolom B)
1153194 1153370 2.7 59.4 22.0
1153214 1153456 22.8 104.9 4.6
334629 334631 1.66643 35.8 22.25
334850 334672 1.71297 26.9 15.7
334984 334998 1.85051 26.9 14.5
334830 334793 6.47884 87.2 13.4
334828 334740 6.6974 87.1 13

Deze tabel toont de query-ID's en runtime van de query's met AQUA geactiveerd en gedeactiveerd. U kunt de voordelen van AQUA vergelijken door de speedup-kolom te bekijken.

Voorbeeld use case met de Amazon Reviews-dataset

AQUA testen met de Amazon Reviews voorbeelddataset, voer de volgende stappen uit:

  1. Maak een RA3.4xlarge-cluster met twee knooppunten door de volgende opdracht uit te voeren:
    aws redshift create-cluster --cluster-identifier test-amazon-reviews --node-type ra3.4xlarge --number-of-nodes 2 --master-username adminuser --master-user-password <xxpasswordxx> --aqua-configuration-status enabled

  2. Maak een testdatabase op ons Amazon Redshift-cluster door de volgende opdracht uit te voeren:
    CREATE DATABASE TestDB;

  3. Laad de tabel met de Amazon Reviews-dataset door het script uit te voeren load_amazon_sentiments_data.sql.
  4. Voer een paar AQUA-geschikte zoekopdrachten (vergelijkbaar met de volgende) meerdere keren uit met en zonder AQUA geactiveerd met behulp van het script execute_test_queries.sh:
    select count(*) from amazon_reviews WHERE product_title SIMILAR TO '%lap%' or product_title SIMILAR TO '%hope%' or product_title SIMILAR TO '%nice%' or product_title SIMILAR TO '%soa%';

Meer evaluatievragen zijn beschikbaar op de GitHub repo.

  1. lopen aqua_perf_compare.sh op het testcluster.

De volgende tabel laat zien dat AQUA de zoekopdrachten 5-22 keer sneller heeft versneld.

Query ID Amazon Redshift met AQUA ingeschakeld Vraag ID Amazon Redshift met AQUA uitgeschakeld Runtime in seconden met AQUA ingeschakeld Runtime in seconden met AQUA uitgeschakeld Versnellen
(Kolom C/Kolom B)
364202 364217 2.33411 51.56207 22.09073
334984 334998 1.85051 26.9 14.5
334830 334793 6.47884 87.2 13.4
334828 334740 6.6974 87.1 13

Samengevat

Dit bericht biedt een eenvoudige maar praktische manier om de prestatiewinst te meten die u kunt verwachten voor uw werklast door AQUA in te schakelen. U kunt de meegeleverde scripts gebruiken en testen met uw eigen dataset en queries, of de voorbeelddataset en queries gebruiken om de impact van AQUA te bepalen.

We blijven investeren en lanceren nieuwe mogelijkheden zoals AQUA voor Amazon Redshift om ervoor te zorgen dat Amazon Redshift blijft verbeteren naarmate uw datawarehouse-behoeften groeien. Voor AQUA blijven we hardwareversnelling toevoegen voor meer SQL-operators, functies, predikaten, gegevenstypen en bestandsindelingen, zodat meer scans, filters en aggregaties naar AQUA kunnen worden gepusht. Pushdowns naar AQUA blijven transparant, dus Amazon Redshift beslist wanneer query's naar AQUA worden gepusht om te profiteren van hardwareversnelling. En wanneer zoekopdrachten niet naar AQUA worden geduwd, blijven ze zoals voorheen op Amazon Redshift draaien.

We nodigen je uit om AQUA zelf te testen en de bevindingen te delen.


Over de auteurs

Dinesh Kumar is een Database Engineer bij AWS met een focus op Amazon AQUA. Hij werkt samen met klanten om zeer schaalbare datawarehouses en hoogwaardige databaseoplossingen te bouwen. Naast zijn werk houdt hij van tuinieren en brengt hij tijd door met zijn gezin.

Manan Doel is een Product Go-To-Market Leader voor AWS Analytics Services, waaronder Amazon Redshift & AQ
UA bij AWS. Hij heeft meer dan 25 jaar ervaring en is goed thuis in databases, data warehousing, business intelligence en analytics. Manan heeft een MBA van Duke University en een BS in Electronics & Communications engineering.

spot_img

Laatste intelligentie

spot_img