Lihtsustage ja kiirendage Apache Sparki rakendusi Amazon Redshifti andmetel Apache Sparki Amazon Redshift integratsiooniga

Lihtsustage ja kiirendage Apache Sparki rakendusi Amazon Redshifti andmetel Apache Sparki Amazon Redshift integratsiooniga

Allikasõlm: 2597866

Kliendid kasutavad Amazoni punane nihe juhtida oma ärikriitilist analüüsi petabaitide struktureeritud ja poolstruktureeritud andmete põhjal. Apache Spark on populaarne raamistik, mida saate kasutada rakenduste loomiseks selliste kasutusjuhtumite jaoks nagu ETL (väljavõte, teisendamine ja laadimine), interaktiivne analüüs ja masinõpe (ML). Apache Spark võimaldab teil luua rakendusi erinevates keeltes, nagu Java, Scala ja Python, pääsedes juurde oma Amazon Redshifti andmelaos olevatele andmetele.

Apache Sparki Amazon Redshift integratsioon aitab arendajatel Amazon Redshifti andmetel Apache Sparki rakendusi sujuvalt luua ja käivitada. Arendajad saavad kasutada AWS-i analüütikat ja ML-teenuseid, näiteks Amazon EMR, AWS liimja Amazon SageMaker et luua vaevata Apache Sparki rakendusi, mis loevad nende Amazon Redshifti andmelaost ja kirjutavad sinna. Saate seda teha ilma, et see kahjustaks oma rakenduste toimivust või andmete tehingute järjepidevust.

Selles postituses arutame, miks on Apache Sparki Amazon Redshifti integreerimine analüütika ja ML-i jaoks kriitiline ja tõhus. Lisaks arutame kasutusjuhtumeid, mis kasutavad ettevõttele mõju avaldamiseks Amazon Redshifti integratsiooni Apache Sparkiga. Lõpuks tutvustame teile samm-sammult näiteid selle ametliku AWS-pistiku kasutamise kohta Apache Sparki rakenduses.

Amazon Redshift integratsioon Apache Sparkile

Amazon Redshift integratsioon Apache Sparkile minimeerib tülika ja sageli käsitsi säde-punanihke pistiku seadistamise protsessi (kogukonna versioon) ning lühendab analüüsi- ja ML-ülesanneteks valmistumiseks kuluvat aega. Peate vaid määrama ühenduse oma andmelaoga ja saate mõne minuti jooksul alustada tööd Amazon Redshifti andmetega oma Apache Sparki-põhistest rakendustest.

Saate kasutada mitmeid tõukefunktsioone selliste toimingute jaoks nagu sortimine, koondamine, piiramine, ühendamine ja skalaarfunktsioonid, nii et teie Amazon Redshifti andmelaost kuluvasse Apache Sparki rakendusse teisaldatakse ainult asjakohased andmed. See võimaldab teil oma rakenduste jõudlust parandada. Amazon Redshifti administraatorid saavad Sparki-põhistest rakendustest loodud SQL-i hõlpsalt tuvastada. Selles postituses näitame, kuidas saate teada Apache Sparki töö genereeritud SQL-i.

Lisaks kasutab Apache Sparki Amazon Redshift integratsioon andmete ajutisse kataloogi paigutamisel Parquet-failivormingut. Amazon Redshift kasutab nende ajutiste andmete salvestamiseks käsku UNLOAD SQL Amazoni lihtne salvestusteenus (Amazon S3). Rakendus Apache Spark hangib tulemused ajutisest kataloogist (salvestatud Parquet failivormingus), mis parandab jõudlust.

Samuti saate oma rakendusi turvalisemaks muuta, kasutades AWS-i identiteedi- ja juurdepääsuhaldus (IAM) mandaadid Amazon Redshiftiga ühenduse loomiseks.

Amazon Redshift integratsioon Apache Sparkile on ehitatud säde-punanihke pistiku peale (kogukonna versioon) ning täiustab seda jõudluse ja turvalisuse tagamiseks, aidates teil rakenduste jõudlust kuni 10 korda kiiremini saavutada.

Kasutusjuhtumid Amazon Redshifti integreerimiseks Apache Sparkiga

Meie kasutusjuhtumi puhul soovib tootepõhise ettevõtte juhtkond teada iga toote müüki mitmel turul. Kuna ettevõtte müük kõigub dünaamiliselt, on juhtkonna jaoks muutunud väljakutseks jälgida müüki mitmel turul. Üldine müük aga väheneb ja ettevõtte juhtkond soovib välja selgitada, millised turud ei toimi, et nad saaksid neid turge reklaamikampaaniate jaoks sihtida.

Mitme turu müügi puhul on toodete müügiandmed, nagu tellimused, tehingud ja saadetised, saadaval Amazon S3-s andmejärves. Andmetehnika meeskond saab nende andmete analüüsimiseks Amazon S3-s kasutada Apache Sparki koos Amazon EMR-i või AWS Glue'iga.

Varude andmed on saadaval Amazon Redshiftis. Samamoodi saab andmetehnika meeskond neid andmeid analüüsida Apache Sparkiga, kasutades Amazon EMR-i või AWS-liimitööd, kasutades koondamiste ja teisenduste tegemiseks Apache Sparki jaoks Amazon Redshift integratsiooni. Koondatud ja teisendatud andmestiku saab Amazon Redshifti tagasi salvestada, kasutades Apache Sparki Amazon Redshifti integratsiooni.

Jaotatud raamistiku (nt Apache Spark) kasutamine koos Apache Sparki Amazon Redshift integratsiooniga võib pakkuda müügiülevaadete loomiseks nähtavust kogu andmejärves ja andmelaos. Need ülevaated saab teha kättesaadavaks ärihuvilistele ja ärikasutajatele Amazon Redshiftis, et teha teadlikke otsuseid madala tuluga turusegmentide sihipäraste reklaamide korraldamiseks.

Lisaks saame Amazon Redshifti integratsiooni Apache Sparkiga kasutada järgmistel kasutusjuhtudel:

  • Amazon EMR või AWS Glue klient, kes kasutab Apache Sparki töid, soovib andmeid teisendada ja kirjutada need Amazon Redshiftisse osana oma ETL-i torustikust.
  • ML-i klient kasutab Apache Sparki koos SageMakeriga funktsioonide projekteerimiseks Amazon Redshiftis andmetele juurdepääsuks ja nende muutmiseks
  • Amazon EMR-i, AWS Glue'i või SageMakeri klient kasutab Apache Sparki interaktiivseks andmete analüüsimiseks sülearvutite Amazon Redshifti andmetega

Näited Apache Sparki Amazon Redshifti integreerimise kohta Apache Sparki rakenduses

Selles postituses näitame samme Amazon Redshifti ühendamiseks Amazon EMR-iga Amazon Elastic Compute Cloud (Amazon EC2), Amazon EMR serveritaja AWS-liimi, kasutades tavalist skripti. Järgmises näidiskoodis koostame aruande, mis näitab 2008. aasta kvartali müüki. Selleks ühendame Apache Spark DataFrame'i abil kaks Amazon Redshift tabelit, käivitame predikaadi tõuke, koondame ja sorteerime andmed ning kirjutame teisendatud andmed. andmed tagasi Amazon Redshiftile. Skript kasutab PySparki

Skript kasutab Amazon Redshifti IAM-põhine autentimine. Amazon EMR-i ja AWS Glue'i kasutatavatel IAM-rollidel peaksid olema asjakohased õigused Amazon Redshifti autentimiseks ja juurdepääs S3 ämbrile ajutiseks andmete salvestamiseks.

Järgmine näitepoliitika lubab IAM-i rollil helistada GetClusterCredentials toimingud:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:<aws_region_name>:xxxxxxxxxxxx:dbuser:*/temp_*" }
}

Järgmine näidispoliitika võimaldab juurdepääsu S3 ämbrile ajutise andmesalvestuse jaoks.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::<s3_bucket_name>" } ]
}

Täielik skript on järgmine:

from pyspark.sql import SparkSession
from pyspark.sql.functions import col # Initiate Apache Spark session
spark = SparkSession .builder .appName("SparkRedshiftConnector") .enableHiveSupport() .getOrCreate() # Set connection options for Amazon Redshift
jdbc_iam_url = "jdbc:redshift:iam://redshift-spark-connector-1.xxxxxxxxxxx.<aws_region_name>.redshift.amazonaws.com:5439/sample_data_dev"
temp_dir = 's3://<s3_bucket_name>/redshift-temp-dir/'
aws_role = 'arn:aws:iam::xxxxxxxxxxxx:role/redshift-s3' # Set query group for the query. More details on Amazon Redshift WLM https://docs.aws.amazon.com/redshift/latest/dg/cm-c-executing-queries.html
queryGroup = "emr-redshift"
jdbc_iam_url_withQueryGroup = jdbc_iam_url+'?queryGroup='+queryGroup # Set User name for the query
userName = 'awsuser'
jdbc_iam_url_withUserName = jdbc_iam_url_withQueryGroup+';user='+userName # Define the Amazon Redshift context
redshiftOptions = { "url": jdbc_iam_url_withUserName, "tempdir": temp_dir, "aws_iam_role" : aws_role
} # Create the sales DataFrame from Amazon Redshift table using io.github.spark_redshift_community.spark.redshift class
sales_df = ( spark.read .format("io.github.spark_redshift_community.spark.redshift") .options(**redshiftOptions) .option("dbtable", "tickit.sales") .load()
) # Create the date Data Frame from Amazon Redshift table
date_df = ( spark.read .format("io.github.spark_redshift_community.spark.redshift") .options(**redshiftOptions) .option("dbtable", "tickit.date") .load()
) # Assign a Data Frame to the above output which will be written back to Amazon Redshift
output_df= sales_df.join(date_df, sales_df.dateid == date_df.dateid, 'inner').where( col("year") == 2008).groupBy("qtr").sum("qtysold").select( col("qtr"), col("sum(qtysold)")).sort(["qtr"], ascending=[1]).withColumnRenamed("sum(qtysold)","total_quantity_sold") # Display the output
output_df.show() ## Lets drop the queryGroup for easy validation of push down queries
# Set User name for the query
userName = 'awsuser'
jdbc_iam_url_withUserName = jdbc_iam_url+'?user='+userName # Define the Amazon Redshift context
redshiftWriteOptions = { "url": jdbc_iam_url_withUserName, "tempdir": temp_dir, "aws_iam_role" : aws_role
} # Write the Data Frame back to Amazon Redshift
output_df.write .format("io.github.spark_redshift_community.spark.redshift") .mode("overwrite") .options(**redshiftWriteOptions) .option("dbtable", "tickit.test") .save()

Kui kavatsete oma keskkonnas kasutada eelmist skripti, asendage kindlasti järgmiste muutujate väärtused oma keskkonna jaoks sobivate väärtustega. jdbc_iam_url, temp_dirja aws_role.

Järgmises jaotises käsitleme selle skripti käitamise samme, et koondada Amazon Redshiftis kättesaadavaks tehtud näidisandmestik.

Eeldused

Enne alustamist veenduge, et järgmised eeltingimused on täidetud:

Juurutage ressursse AWS CloudFormationi abil

CloudFormationi virna juurutamiseks tehke järgmised toimingud.

  1. Logige sisse AWS-i juhtimiskonsool, seejärel käivitage CloudFormationi virn:
    BDB-2063-käivitamine-pilvekujundamise virn

Te saate ka laadige alla CloudFormationi mall luua selles postituses mainitud ressursse läbi infrastruktuuri koodina (IaC). Kasutage seda malli uue CloudFormationi virna käivitamisel.

  1. Valimiseks kerige lehe allossa Tunnistan, et AWS CloudFormation võib luua IAM-i ressursse all Võimed, siis vali Loo virn.

Virna loomise protsess võtab aega 15–20 minutit. CloudFormationi mall loob järgmised ressursid.

    • Amazoni VPC koos vajalike alamvõrkude, marsruuditabelite ja NAT-lüüsiga
    • Nimega S3 kopp redshift-spark-databucket-xxxxxxx (pange tähele, et xxxxxxx on juhuslik string, mis muudab ämbri nime ainulaadseks)
    • Amazon Redshifti klaster koos andmebaasi laaditud näidisandmetega dev ja peamine kasutaja redshiftmasteruser. Selle blogipostituse jaoks redshiftmasteruser kasutatakse administraatorilubadega. Siiski on tootmiskeskkonnas soovitatav kasutada täpset juurdepääsukontrolliga kasutajat.
    • IAM-i roll, mida kasutatakse Amazon Redshifti jaoks koos võimalusega taotleda Amazon Redshifti klastri arendajate andmebaasist ajutisi mandaate
    • Amazon EMR stuudio koos vajalike IAM-rollidega
    • Amazon EMR-i versioon 6.9.0 EC2 klastris koos vajalike IAM-rollidega
    • Amazon EMR-i serverita rakenduse väljalase versioon 6.9.0
    • AWS-liimiühendus ja AWS-liimitöö versioon 4.0
    • A Jupyteri märkmik käitada Amazon EMR Studio abil, kasutades Amazon EMR-i EC2 klastris
    • PySparki skript, mis töötab Amazon EMR Studio ja Amazon EMR Serverlessi abil
  1. Kui virna loomine on lõpetatud, valige virna nimi redshift-spark ja navigeerige Väljundid

Kasutame neid väljundväärtusi selles postituses hiljem.

Järgmistes jaotistes näitame samme Amazon Redshifti integreerimiseks Apache Sparkile Amazon EMR-ist Amazon EC2-s, Amazon EMR Serverlessis ja AWS Glue'is.

Kasutage Amazon Redshifti integratsiooni Apache Sparkiga Amazon EMR-is EC2-s

Alates Amazon EMR-i versioonist 6.9.0 ja uuemast versioonist on Amazon Redshifti integratsiooni Apache Sparki ja Amazon Redshift JDBC draiveri jaoks kasutav pistik Amazon EMR-is kohapeal saadaval. Need failid asuvad all /usr/share/aws/redshift/ kataloog. Kuid Amazon EMR-i eelmistes versioonides oli kogukond versioon spark-redshift pesa on olemas.

Järgmine näide näitab, kuidas ühendada Amazon Redshift PySparki tuuma abil an Amazon EMR stuudio märkmik. CloudFormationi virn lõi Amazon EMR Studio, Amazon EMR EC2 klastris ja Jupyteri sülearvuti. Selle näite läbimiseks toimige järgmiselt.

  1. Laadige alla Jupyteri sülearvuti, mis on teie jaoks saadaval S3 ämbris:
    • Otsige CloudFormationi virna väljunditest väärtust EMRStudioNotebook, mis peaks osutama sellele redshift-spark-emr.ipynb sülearvuti saadaval S3 ämbris.
    • Valige link või avage link uuel vahelehel, kopeerides märkmiku URL-i.
    • Pärast lingi avamist laadige märkmik alla, valides Lae, mis salvestab faili kohapeal teie arvutisse.
  1. Juurdepääs Amazon EMR Studio'ile, valides või kopeerides võtme jaoks CloudFormationi virna väljundites oleva lingi EMRStudioURL.
  2. Valige navigeerimispaanil tööruumid.
  3. Vali Looge tööruum.
  4. Sisestage näiteks tööruumi nimi redshift-spark.
  5. Laienda Täpsem konfiguratsioon jaotis ja valige Ühendage tööruum EMR-klastriga.
  6. alla Kinnitage EMR-klastri külge, valige nimega EMR-klaster emrCluster-Redshift-Spark.
  7. Vali Looge tööruum.
  8. Pärast Amazon EMR Studio tööruumi loomist ja olekus Manustatud saate tööruumile juurde pääseda, valides tööruumi nime.

See peaks avama tööruumi uuel vahekaardil. Pange tähele, et kui teil on hüpikakende blokeerija, peate võib-olla lubama tööruumil hüpikakende blokeerija avada või keelata.

Amazon EMR Studio tööruumis laadime nüüd üles varem alla laaditud Jupyteri sülearvuti.

  1. Vali Täiendava kohaliku failisüsteemi sirvimiseks ja Jupyteri märkmiku üleslaadimiseks (redshift-spark-emr.ipynb).
  2. Valige (topeltklõpsake) redshift-spark-emr.ipynb märkmiku avamiseks tööalal.

Märkmik sisaldab üksikasju erinevate ülesannete kohta, mida see täidab. Pange tähele, et jaotises Määratlege muutujad Amazon Redshift klastriga ühenduse loomiseks, ei pea te väärtusi värskendama jdbc_iam_url, temp_dirja aws_role sest neid värskendab teie jaoks AWS CloudFormation. AWS CloudFormation on teostanud ka jaotises mainitud toiminguid Eeldused märkmiku osa.

Nüüd saate märkmikku käivitada.

  1. Käivitage üksikud lahtrid, valides need ja seejärel valides mängima.

Võite kasutada ka klahvikombinatsiooni Tõstuklahv + sisestusklahv or Tõstuklahv+Tagasi. Teise võimalusena saate käivitada kõik lahtrid valides Käivitage kõik rakud kohta jooks menüü.

  1. Leidke Amazon Redshifti klastris Apache Sparki jaoks Amazon Redshifti integratsiooni abil tehtud predikaadi allavajutusoperatsioon.

Näeme ka Amazon S3-le salvestatud ajutisi andmeid optimeeritud Parketi formaadis. Väljundit saab näha jaotises oleva lahtri käivitamisel Hankige Amazon Redshiftis viimane päring.

  1. Amazon EMR-i tööga loodud tabeli kinnitamiseks Amazon EC2-s navigeerige Amazon Redshift konsooli ja valige klaster redshift-spark-redshift-cluster kohta Ettenähtud klastrite armatuurlaud lehel.
  2. Klastri üksikasjades kohta Andmete päring menüüst valige Päring päringuredaktoris v2.
  3. Valige navigeerimispaanil klaster ja looge ühendus Amazon Redshift klastriga, kui see taotleb autentimist.
  4. valima Ajutised volikirjad.
  5. eest andmebaas, sisenema dev.
  6. eest kasutajanimi, sisenema redshiftmasteruser.
  7. Vali Säästa.
  8. Laiendage navigeerimispaanil klastrit redshift-spark-redshift-cluster, laiendage arendaja andmebaasi, laiendage tickitja laiendage Tabelid et loetleda kõik skeemi sees olevad tabelid tickit.

Peaksite tabeli üles leidma test_emr.

  1. Valige (paremklõpsake) tabel test_emr, siis vali Valige tabel tabeli küsimiseks.
  2. Vali jooks SQL-lause käivitamiseks.

Kasutage Amazon EMR Serverlessis Amazon Redshifti integratsiooni Apache Sparkiga

Amazon EMR-i väljalaskeversioon 6.9.0 ja uuemad pakuvad Amazon Redshifti integratsiooni Apache Spark JAR-idele (haldab Amazon Redshift) ja Amazon Redshift JDBC JAR-idele ka kohapeal Amazon EMR Serverlessis. Need failid asuvad all /usr/share/aws/redshift/ kataloog. Järgmises näites kasutame Pythoni skripti, mille meie varem loodud CloudFormationi virn S3 ämbris kättesaadavaks tegi.

  1. Märkige CloudFormationi virna väljunditesse väärtus EMRServerlessExecutionScript, mis on Pythoni skripti asukoht S3 ämbris.
  2. Pange tähele ka väärtust EMRServerlessJobExecutionRole, mis on IAM-i roll, mida kasutatakse Amazon EMR-i serverita töö käitamiseks.
  3. Juurdepääs Amazon EMR Studio'ile, valides või kopeerides võtme jaoks CloudFormationi virna väljundites oleva lingi EMRStudioURL.
  4. Vali Rakendused all Serverita navigeerimispaanil.

Leiad nimega CloudFormationi virna loodud EMR-rakenduse emr-spark-redshift.

  1. Valige töö esitamiseks rakenduse nimi.
  2. Vali Esitage töö.
  3. alla Töö üksikasjadJaoks Nimi, sisestage tööle identifitseeritav nimi.
  4. eest Kestuslik roll, valige varem CloudFormationi virna väljundist märgitud IAM-i roll.
  5. eest Skripti asukoht, sisestage tee Pythoni skriptile, mille CloudFormationi virna väljundist varem märkisite.
  6. Laiendage jaotist Säde omadused ja vali Muuda tekstis
  7. Sisestage tekstikasti järgmine väärtus, mis annab tee redshift-connector, Amazon Redshift JDBC draiver, spark-avro JAR ja minimal-json JAR-failid:
    --jars /usr/share/aws/redshift/jdbc/RedshiftJDBC.jar,/usr/share/aws/redshift/spark-redshift/lib/spark-redshift.jar,/usr/share/aws/redshift/spark-redshift/lib/spark-avro.jar,/usr/share/aws/redshift/spark-redshift/lib/minimal-json.jar

  8. Vali Esitage töö.
  9. Oodake, kuni töö on lõpule viidud ja käitamise olek kuvatakse kui Edu.
  10. Navigeerige Amazon Redshift päringuredaktorisse, et näha, kas tabel loodi edukalt.
  11. Kontrollige Amazon Redshift päringurühma jaoks käivitatavaid allakäigupäringuid emr-serverless-redshift. Andmebaasi vastu saate käivitada järgmise SQL-lause dev:
    SELECT query_text FROM SYS_QUERY_HISTORY WHERE query_label = 'emr-serverless-redshift' ORDER BY start_time DESC LIMIT 1

Näete, et allapoole suunatud päring ja tagastustulemused salvestatakse Amazon S3-s Parketi failivormingus.

Kasutage Amazon Redshifti integreerimist Apache Sparkiga AWS Glue'is

Alates AWS Glue versioonist 4.0 ja uuemast versioonist saavad Amazon Redshiftiga ühenduse loovad Apache Sparki tööd kasutada Amazon Redshifti integratsiooni Apache Sparki ja Amazon Redshift JDBC draiveri jaoks. Olemasolevad AWS-liimitööd, mis juba kasutavad allika või sihtmärgina Amazon Redshiftit, saab selle uue konnektori eeliste kasutamiseks uuendada versioonile AWS Glue 4.0. Selle postitusega kaasas olev CloudFormationi mall loob järgmised AWS-liimi ressursid:

  • AWS-liimiühendus Amazon Redshifti jaoks - Ühendus ühenduse loomiseks AWS Glue'ist Amazon Redshiftiga, kasutades Apache Sparki Amazon Redshifti integratsiooni
  • AWS-i liimitööga seotud IAM-i roll – IAM-i roll AWS-i liimitöö käitamise lubade haldamiseks
  • AWS-i liimitöö – AWS-liimitöö skript, mis teostab teisendusi ja liitmisi, kasutades Apache Sparki Amazon Redshift integratsiooni

Järgmine näide kasutab PySparkiga AWS-liimitööga ühendatud AWS-liimi ühendust ja sisaldab järgmisi samme.

  1. Valige AWS Glue konsoolil Side navigeerimispaanil.
  2. alla Side, valige CloudFormationi malliga loodud Amazon Redshifti AWS-liimi ühendus.
  3. Kontrollige ühenduse üksikasju.

Nüüd saate seda ühendust töös või mitmes töös uuesti kasutada.

  1. Kohta Pistikud lehel, valige alt CloudFormationi virna loodud AWS-liimi töö Teie töökohadvõi pääsete juurde AWS-liimitööle, kasutades võtme jaoks ette nähtud URL-i GlueJob CloudFormationi virna väljundis.
  2. Juurdepääs AWS-liimitöö skriptile ja selle kinnitamine.
  3. Kohta Töö üksikasjad vahekaarti, veenduge selles Liimi versioon on seatud väärtusele 4.0. liim.

See tagab, et töö kasutab uusimat redshift-spark pesa.

  1. Laiendama Täiustatud omadused ja Side jaotises kontrollige, kas CloudFormationi virna loodud ühendus on ühendatud.
  2. Kontrollige AWS-liimitöö jaoks lisatud töö parameetreid. Need väärtused on saadaval ka CloudFormationi virna väljundis.
  3. Vali Säästa ja siis jooks.

Töö olekut saate vaadata saidil jooks Tab.

  1. Kui töö on edukalt lõppenud, saate kontrollida AWS-liimitööga loodud tabeli testliimi väljundit.
  2. Kontrollime Amazon Redshift päringurühma jaoks käivitatud allakäigupäringuid glue-redshift. Andmebaasi vastu saate käivitada järgmise SQL-lause dev:
    SELECT query_text FROM SYS_QUERY_HISTORY WHERE query_label = 'glue-redshift' ORDER BY start_time DESC LIMIT 1

parimad tavad

Pidage meeles järgmisi parimaid tavasid.

  • Kaaluge Amazon EMR-i Apache Sparki jaoks Amazon Redshift integratsiooni kasutamist, selle asemel, et kasutada redshift-spark pistik (kogukonnaversioon) teie uute Apache Sparki töökohtade jaoks.
  • Kui teil on olemasolevaid Apache Sparki töid kasutades redshift-spark pistik (kogukonna versioon), kaaluge nende täiendamist, et kasutada Amazon Redshifti integratsiooni Apache Sparki jaoks
  • Amazon Redshift integratsioon Apache Sparki jaoks rakendab jõudluse optimeerimiseks automaatselt predikaatide ja päringu allalaadimist. Soovitame kasutada toetatud funktsioone (autopushdown) teie päringus. Apache Sparki Amazon Redshifti integratsioon muudab funktsiooni SQL-päringuks ja käivitab päringu rakenduses Amazon Redshift. Selle optimeerimise tulemusel hangitakse vajalikud andmed, nii et Apache Spark saab töödelda vähem andmeid ja omada paremat jõudlust.
    • Kaaluge koondtõukefunktsioonide kasutamist, näiteks avg, count, max, minja sum filtreeritud andmete toomiseks andmetöötluseks.
    • Kaaluge Boole'i ​​tõukeoperaatorite kasutamist, näiteks in, isnull, isnotnull, contains, endswithja startswith filtreeritud andmete toomiseks andmetöötluseks.
    • Kaaluge loogiliste tõukeoperaatorite kasutamist, näiteks and, orja not (Või !) filtreeritud andmete toomiseks andmetöötluseks.
  • Soovitatav on IAM-i roll parameetri abil edasi anda aws_iam_role Amazon Redshift autentimiseks teie Apache Sparki rakendusest Amazon EMR-is või AWS Glue'is. IAM-i rollil peaksid olema vajalikud õigused ajutiste IAM-mandaatide hankimiseks, et autentida Amazon Redshiftis, nagu on näidatud selle ajaveebi jaotises „Apache Sparki Amazon Redshifti integreerimise näited Apache Sparki rakenduses”.
  • Selle funktsiooniga ei pea te säilitama oma Amazon Redshifti kasutajanime ja parooli saladuste halduris ja Amazon Redshifti andmebaasis.
  • Amazon Redshift kasutab nende ajutiste andmete salvestamiseks Amazon S3-sse UNLOAD SQL-lauset. Rakendus Apache Spark hangib tulemused ajutisest kataloogist (salvestatud Parquet failivormingus). Seda Amazon S3 ajutist kataloogi ei puhastata automaatselt ja see võib seetõttu lisada lisakulusid. Soovitame kasutada Amazon S3 elutsükli poliitika S3 ämbri säilitusreeglite määratlemiseks.
  • Soovitatav on sisse lülitada Amazon Redshift auditi logimine ühenduste ja kasutajate tegevuste teabe logimiseks oma andmebaasi.
  • Soovitatav on sisse lülitada Amazon Redshift puhkeolekus krüptimine et krüpteerida teie andmed nii, nagu Amazon Redshift need oma andmekeskustesse kirjutab, ja dekrüpteerida need teie eest, kui neile juurde pääsete.
  • Soovitatav on minna üle versioonile AWS Glue v4.0 ja uuemale versioonile, et kasutada Amazon Redshift integratsiooni Apache Sparki jaoks, mis on karbist väljas saadaval. AWS Glue'i sellele versioonile üleminekul kasutatakse seda funktsiooni automaatselt.
  • Apache Sparki Amazon Redshift integratsiooni kasutamiseks on soovitatav minna üle versioonile Amazon EMR v6.9.0 ja uuemale. Te ei pea otseselt haldama ühtegi draiverit ega JAR-faili.
  • Kaaluge Amazon EMR Studio sülearvutite kasutamist oma Amazon Redshifti andmetega suhtlemiseks rakenduses Apache Spark.
  • Kaaluge AWS Glue Studio kasutamist Apache Sparki tööde loomiseks visuaalse liidese abil. Samuti saate AWS Glue Studios lülituda Apache Sparki koodi kirjutamisele kas Scalas või PySparkis.

Koristage

CloudFormationi malli osana loodud ressursside puhastamiseks tehke järgmised toimingud, et teil ei võetaks ressursside eest arvet, kui te neid enam ei kasuta.

  1. Peatage Amazon EMR Serverless rakendus:
    • Juurdepääs Amazon EMR Studio'ile, valides või kopeerides võtme jaoks CloudFormationi virna väljundites oleva lingi EMRStudioURL.
    • Vali Rakendused all Serverita navigeerimispaanil.

Leiad nimega CloudFormationi virna loodud EMR-rakenduse emr-spark-redshift.

    • Kui rakenduse olek on Peatatud, saate liikuda järgmiste sammude juurde. Kui aga rakenduse olek on Alustatud, valige rakenduse nimi ja seejärel valige Peatage rakendus ja Peatage rakendus uuesti kinnitada.
  1. Kustutage Amazon EMR Studio tööruum:
    • Juurdepääs Amazon EMR Studio'ile, valides või kopeerides võtme jaoks CloudFormationi virna väljundites oleva lingi EMRStudioURL.
    • Vali tööruumid navigeerimispaanil.
    • Valige loodud tööruum ja tehke valik kustutama, siis vali kustutama uuesti kinnitada.
  2. Kustutage CloudFormationi virn:
    • Liikuge AWS CloudFormationi konsoolis varem loodud virna juurde.
    • Valige virna nimi ja seejärel valige kustutama virna eemaldamiseks ja selle postituse osana loodud ressursside kustutamiseks.
    • Valige kinnituskuval Kustuta virn.

Järeldus

Selles postituses selgitasime, kuidas saate kasutada Apache Sparki jaoks Amazon Redshift integratsiooni, et luua ja juurutada rakendusi Amazon EMR-iga Amazon EC2-s, Amazon EMR Serverlessis ja AWS Glue'is, et automaatselt rakendada predikaatide ja päringu tõukejõudu, et optimeerida andmete päringu jõudlust. Amazon Redshiftis. Äärmiselt soovitatav on kasutada Apache Sparki jaoks Amazon Redshift integratsiooni, et teie Amazon EMR-i või AWS-liimiga Amazon Redshiftiga sujuv ja turvaline ühendus luua.

Mõned meie kliendid peavad Apache Sparki Amazon Redshifti integratsiooni kohta ütlema järgmist:

„Anname oma inseneridele võimaluse luua oma andmekonveierid ja rakendused Apache Sparkiga Pythoni ja Scala abil. Tahtsime kohandatud lahendust, mis lihtsustaks toiminguid ning pakuks meie klientidele kiiremini ja tõhusamalt, ning see on see, mida me saame Apache Sparki uue Amazon Redshift integratsiooniga.

— Huron Consulting

„GE Aerospace kasutab AWS-i analüütikat ja Amazon Redshifti, et võimaldada kriitilise tähtsusega äriteavet, mis juhib olulisi äriotsuseid. Amazon S3-st automaatse kopeerimise toega saame luua lihtsamaid andmekonveierid andmete teisaldamiseks Amazon S3-st Amazon Redshifti. See kiirendab meie andmetoodete tiimide võimet andmetele juurde pääseda ja lõppkasutajatele teadmisi edastada. Kulutame rohkem aega andmete kaudu väärtuse lisamisele ja vähem aega integreerimisele.

-GE Aerospace

„Meie fookuses on iseteenindusliku juurdepääsu pakkumine andmetele kõigile meie Goldman Sachsi kasutajatele. Meie avatud lähtekoodiga andmehaldus- ja haldusplatvorm Legend võimaldab kasutajatel arendada andmekeskseid rakendusi ja saada andmepõhiseid teadmisi, kui teeme koostööd finantsteenuste valdkonnas. Apache Sparki Amazon Redshifti integratsiooniga saab meie andmeplatvormi meeskond juurdepääsu Amazon Redshifti andmetele minimaalsete käsitsi sammudega, võimaldades nullkoodiga ETL-i, mis suurendab meie võimet hõlbustada inseneride keskendumist oma töövoo täiustamisele. nad koguvad täielikku ja õigeaegset teavet. Loodame näha rakenduste jõudluse paranemist ja paremat turvalisust, kuna meie kasutajad pääsevad nüüd hõlpsalt juurde Amazon Redshifti uusimatele andmetele.

- Goldman Sachs


Autoritest

Gagan Brahmi on vanemspetsialist lahenduste arhitekt, kes keskendub suurandmete analüütikale ja AI/ML platvormile Amazon Web Servicesis. Gaganil on üle 18-aastane kogemus infotehnoloogia vallas. Ta aitab klientidel AWS-is väga skaleeritavaid, tõhusaid ja turvalisi pilvepõhiseid lahendusi välja töötada ja luua. Vabal ajal veedab ta aega perega ja uurib uusi kohti.

Vivek Gautam on andmearhitekt, kes on spetsialiseerunud andmejärvedele ettevõttes AWS Professional Services. Ta teeb koostööd ettevõtete klientidega, kes loovad AWS-is andmetooteid, analüüsiplatvorme ja lahendusi. Kui just andmejärvi ei ehita ja projekteeri, on Vivek toiduhuviline, kellele meeldib uudistada ka uusi reisisihtkohti ja matkata.

Naresh Gautam on 20-aastase kogemusega AWS-i andmeanalüüsi ja AI/ML juht, kellele meeldib aidata klientidel luua väga kättesaadavaid, suure jõudlusega ja kulutõhusaid andmeanalüütika ja AI/ML lahendusi, et anda klientidele andmepõhiseid otsuseid. . Vabal ajal naudib ta mediteerimist ja kokkamist.

Beaux Sharifi on tarkvaraarenduse insener Amazon Redshifti juhtide meeskonnas, kus ta juhib Amazon Redshifti integratsiooni arendamist Apache Sparki pistikuga. Tal on üle 20-aastane kogemus andmepõhiste platvormide loomisel mitmes tööstusharus. Vabal ajal veedab ta meelsasti perega aega ja surfab.

Ajatempel:

Veel alates AWSi suured andmed