Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMakerissa

Viime vuonna julkistimme yleisen saatavuuden RStudio Amazon SageMakerissa, alan ensimmäinen täysin hallittu RStudio Workbench integroitu kehitysympäristö (IDE) pilvessä. Voit nopeasti käynnistää tutun RStudio IDE:n ja soittaa ylös ja alas taustalla oleviin laskentaresursseihin keskeyttämättä työtäsi, mikä tekee koneoppimis- (ML) ja analytiikkaratkaisujen rakentamisesta helppoa mittakaavassa R:ssä.

Monet SageMakerin RStudion käyttäjistä ovat myös käyttäjiä Amazonin punainen siirto, täysin hallittu, petatavun mittakaava, massiivisesti rinnakkainen tietovarasto tietojen tallentamiseen ja analyyttisiin työkuormiin. Sen avulla on nopeaa, yksinkertaista ja kustannustehokasta analysoida kaikki tietosi käyttämällä SQL-standardia ja olemassa olevia Business Intelligence (BI) -työkalujasi. Käyttäjät voivat myös olla vuorovaikutuksessa tietojen kanssa ODBC:n, JDBC:n tai Amazon Redshift Data API:n avulla.

RStudion käyttö SageMakerissa ja Amazon Redshiftissä voi olla hyödyllistä analysoida tehokkaasti suuria tietojoukkoja pilvessä. Tietojen käsittely pilvessä voi kuitenkin aiheuttaa haasteita, kuten tarvetta poistaa organisaation tietosiilot, ylläpitää turvallisuutta ja vaatimustenmukaisuutta sekä vähentää monimutkaisuutta standardoimalla työkaluja. AWS tarjoaa työkaluja, kuten RStudion SageMakerissa ja Amazon Redshiftissä, auttaakseen vastaamaan näihin haasteisiin.

Tässä blogikirjoituksessa näytämme, kuinka voit käyttää näitä molempia palveluita yhdessä, jotta voit tehokkaasti analysoida valtavia tietojoukkoja pilvessä ja samalla vastata yllä mainittuihin haasteisiin. Tämä blogi keskittyy Rstudioon Amazon SageMaker -kielellä, jonka kohdeyleisönä ovat yritysanalyytikot, tietosuunnittelijat, datatieteilijät ja kaikki kehittäjät, jotka käyttävät R-kieltä ja Amazon Redshiftiä.

Jos haluat käyttää perinteistä SageMaker Studio -kokemusta Amazon Redshiftin kanssa, katso Amazon Redshift Data API:n käyttäminen vuorovaikutukseen Amazon SageMaker Jupyter -muistikirjasta.

Ratkaisun yleiskatsaus

Teemme tänään blogissa seuraavat vaiheet:

  1. Näytevaraston kloonaaminen vaadituilla paketeilla.
  2. Yhdistäminen Amazon Redshiftiin suojatulla ODBC-yhteydellä (ODBC on suositeltu protokolla RStudiolle).
  3. Kyselyjen ja SageMaker API -toimintojen suorittaminen tiedoilla Amazon Redshift Serverlessissa SageMakerin RStudion kautta

Tämä prosessi on kuvattu seuraavassa ratkaisuarkkitehtuurissa:

Ratkaisun läpikäynti

Edellytykset

Ennen kuin aloitat, varmista, että sinulla on kaikki vaatimukset RStudion määrittämiseksi Amazon SageMakerissa ja Amazon Redshift Serverlessissä, kuten:

Käytämme CloudFormation-pinoa tarvittavan infrastruktuurin luomiseen.

Huomautus: Jos sinulla on jo RStudio-verkkotunnus ja Amazon Redshift -klusteri, voit ohittaa tämän vaiheen

Tämän pinon käynnistäminen luo seuraavat resurssit:

  • 3 Yksityiset aliverkot
  • 1 Julkinen aliverkko
  • 1 NAT-yhdyskäytävä
  • Internet-yhdyskäytävä
  • Amazon Redshift -palvelinton klusteri
  • SageMaker-verkkotunnus RStudion kanssa
  • SageMaker RStudio -käyttäjäprofiili
  • IAM-palvelurooli SageMaker RStudio -verkkotunnuksen suorittamiseen
  • IAM-palvelurooli SageMaker RStudio -käyttäjäprofiilin suorittamiseen

Tämä malli on suunniteltu toimimaan alueella (esim. us-east-1, us-west-2) kolmella saatavuusvyöhykkeellä, RStudio SageMakerissa ja Amazon Redshift Serverless. Varmista, että alueellasi on pääsy näihin resursseihin, tai muokkaa malleja vastaavasti.

paina Käynnistä pino -painiketta luodaksesi pinon.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

  1. On Luo pino sivu, valitse seuraava.
  2. On Määritä pinon yksityiskohdat -sivulle, anna pinolle nimi ja jätä loput vaihtoehdot oletusasetuksiksi ja valitse sitten seuraava.
  3. On Määritä pinoasetukset sivu, jätä asetukset oletusarvoiksi ja paina seuraava.
  4. On Tarkista sivuValitse
  • Myönnän, että AWS CloudFormation saattaa luoda IAM-resursseja mukautetuilla nimillä
  • Myönnän, että AWS CloudFormation saattaa edellyttää seuraavia ominaisuuksia: CAPABILITY_AUTO_EXPANDvalintaruudut ja valitse Lähetä.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Malli luo viisi pinoa.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Kun pinon tila on CREATE_COMPLETE, siirry Amazon Redshift Serverless -konsoliin. Tämä on uusi ominaisuus, joka tekee analytiikan suorittamisesta pilvessä erittäin helppoa ja suorituskykyä missä tahansa mittakaavassa. Lataa vain tietosi ja aloita kysely. Klustereita ei tarvitse perustaa ja hallita.

Huomautuksia: Tässä blogissa esitetty malli, joka integroi Amazon Redshiftin ja RStudion Amazon SageMakerissa, on sama riippumatta Amazon Redshiftin käyttöönottomallista (palvelimeton tai perinteinen klusteri).

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Ladataan tietoja Amazon Redshift Serverlessissä

CloudFormation-skripti loi tietokannan nimeltä sagemaker. Täytä tämä tietokanta taulukoilla RStudio-käyttäjän kyselyjä varten. Luo SQL-editori-välilehti ja varmista sagemaker tietokanta on valittu. Tulemme käyttämään synteettiset luottokorttitapahtumatiedot luodaksesi taulukoita tietokantaamme. Nämä tiedot ovat osa SageMaker-mallitaulukkotietojoukkoja s3://sagemaker-sample-files/datasets/tabular/synthetic_credit_card_transactions.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Aiomme suorittaa seuraavan kyselyn kyselyeditorissa. Tämä luo kolme taulukkoa, kortit, tapahtumat, ja Käyttäjät.

CREATE SCHEMA IF NOT EXISTS synthetic;
DROP TABLE IF EXISTS synthetic.transactions;

CREATE TABLE synthetic.transactions(
    user_id INT,
    card_id INT,
    year INT,
    month INT,
    day INT,
    time_stamp TIME,
    amount VARCHAR(100),
    use_chip VARCHAR(100),
    merchant_name VARCHAR(100),
    merchant_city VARCHAR(100),
    merchant_state VARCHAR(100),
    merchant_zip_code VARCHAR(100),
    merchant_category_code INT,
    is_error VARCHAR(100),
    is_fraud VARCHAR(100)
);

COPY synthetic.transactions
FROM 's3://sagemaker-sample-files/datasets/tabular/synthetic_credit_card_transactions/credit_card_transactions-ibm_v2.csv'
IAM_ROLE default
REGION 'us-east-1' 
IGNOREHEADER 1 
CSV;

DROP TABLE IF EXISTS synthetic.cards;

CREATE TABLE synthetic.cards(
    user_id INT,
    card_id INT,
    card_brand VARCHAR(100),
    card_type VARCHAR(100),
    card_number VARCHAR(100),
    expire_date VARCHAR(100),
    cvv INT,
    has_chip VARCHAR(100),
    number_cards_issued INT,
    credit_limit VARCHAR(100),
    account_open_date VARCHAR(100),
    year_pin_last_changed VARCHAR(100),
    is_card_on_dark_web VARCHAR(100)
);

COPY synthetic.cards
FROM 's3://sagemaker-sample-files/datasets/tabular/synthetic_credit_card_transactions/sd254_cards.csv'
IAM_ROLE default
REGION 'us-east-1' 
IGNOREHEADER 1 
CSV;

DROP TABLE IF EXISTS synthetic.users;

CREATE TABLE synthetic.users(
    name VARCHAR(100),
    current_age INT,
    retirement_age INT,
    birth_year INT,
    birth_month INT,
    gender VARCHAR(100),
    address VARCHAR(100),
    apartment VARCHAR(100),
    city VARCHAR(100),
    state VARCHAR(100),
    zip_code INT,
    lattitude VARCHAR(100),
    longitude VARCHAR(100),
    per_capita_income_zip_code VARCHAR(100),
    yearly_income VARCHAR(100),
    total_debt VARCHAR(100),
    fico_score INT,
    number_credit_cards INT
);

COPY synthetic.users
FROM 's3://sagemaker-sample-files/datasets/tabular/synthetic_credit_card_transactions/sd254_users.csv'
IAM_ROLE default
REGION 'us-east-1' 
IGNOREHEADER 1 
CSV;

Voit varmistaa, että kysely suoritettiin onnistuneesti, kun näet kolme taulukkoa kyselyeditorin vasemmassa ruudussa.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Kun kaikki taulukot on täytetty, siirry SageMaker RStudioon ja aloita uusi istunto RSession-peruskuvalla ml.m5.xlarge-esiintymässä.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Kun istunto on käynnistetty, suoritamme tämän koodin luodaksemme yhteyden Amazon Redshift Serverless -tietokantaamme.

library(DBI)
library(reticulate)
boto3 <- import('boto3')
client <- boto3$client('redshift-serverless')
workgroup <- unlist(client$list_workgroups())
namespace <- unlist(client$get_namespace(namespaceName=workgroup$workgroups.namespaceName))
creds <- client$get_credentials(dbName=namespace$namespace.dbName,
                                durationSeconds=3600L,
                                workgroupName=workgroup$workgroups.workgroupName)
con <- dbConnect(odbc::odbc(),
                 Driver='redshift',
                 Server=workgroup$workgroups.endpoint.address,
                 Port='5439',
                 Database=namespace$namespace.dbName,
                 UID=creds$dbUser,
                 PWD=creds$dbPassword)

Jotta voit tarkastella synteettisen skeeman taulukoita, sinun on myönnettävä Amazon Redshiftin käyttöoikeus kyselyeditorin kautta.

GRANT ALL ON SCHEMA synthetic to "IAMR:SageMakerUserExecutionRole";
GRANT ALL ON ALL TABLES IN SCHEMA synthetic to "IAMR:SageMakerUserExecutionRole";

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

RStudio Liitännät ruudussa pitäisi näkyä sagemaker tietokanta skeema synteettisiä ja taulukoita kortit, tapahtumat, käyttäjät.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Voit tarkastella 1,000 XNUMX tietuetta napsauttamalla taulukoiden vieressä olevaa taulukkokuvaketta.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Huomautus: Olemme luoneet valmiiksi rakennetun R Markdown -tiedoston, jossa on kaikki valmiiksi rakennetut koodilohkot, jotka löytyvät projektista GitHub repo.

Nyt käytetään DBI pakettitoiminto dbListTables() tarkastellaksesi olemassa olevia taulukoita.

dbListTables(con)

Käytä dbGetQuery()-komentoa SQL-kyselyn välittämiseen tietokantaan.

dbGetQuery(con, "select * from synthetic.users limit 100")
dbGetQuery(con, "select * from synthetic.cards limit 100")
dbGetQuery(con, "select * from synthetic.transactions limit 100")

Voimme käyttää myös dbplyr ja dplyr paketteja kyselyjen suorittamiseen tietokannassa. Katsotaanpa count() kuinka monta tapahtumaa tapahtumataulukossa on. Mutta ensin meidän on asennettava nämä paketit.

install.packages(c("dplyr", "dbplyr", "crayon"))

Käytä tbl() toimintoa määrittäessään skeemaa.

library(dplyr)
library(dbplyr)

users_tbl <- tbl(con, in_schema("synthetic", "users"))
cards_tbl <- tbl(con, in_schema("synthetic", "cards"))
transactions_tbl <- tbl(con, in_schema("synthetic", "transactions"))

Lasketaan jokaisen taulukon rivien määrä.

count(users_tbl)
count(cards_tbl)
count(transactions_tbl)

Meillä on siis 2,000 6,146 käyttäjää; 24,386,900 XNUMX korttia; ja XNUMX XNUMX XNUMX tapahtumaa. Pöydät voimme tarkastella myös konsolissa.

transactions_tbl

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Voimme myös katsoa mitä dplyr verbit tekevät konepellin alla.

show_query(transactions_tbl)

Tarkastellaan visuaalisesti tapahtumien määrää vuosittain.

transactions_by_year %
  count(year) %>%
  arrange(year) %>%
  collect()

transactions_by_year
install.packages(c('ggplot2', 'vctrs'))
library(ggplot2)
ggplot(transactions_by_year) +
  geom_col(aes(year, as.integer(n))) +
  ylab('transactions') 

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Voimme myös tiivistää tietokannan tiedot seuraavasti:

transactions_tbl %>%
  group_by(is_fraud) %>%
  count()
transactions_tbl %>%
  group_by(merchant_category_code, is_fraud) %>%
  count() %>% 
  arrange(merchant_category_code)

Oletetaan, että haluamme tarkastella petoksia käyttämällä korttitietoja. Meidän tarvitsee vain yhdistää taulukot ja sitten ryhmitellä ne määritteen mukaan.

cards_tbl %>%
  left_join(transactions_tbl, by = c("user_id", "card_id")) %>%
  group_by(card_brand, card_type, is_fraud) %>%
  count() %>% 
  arrange(card_brand)

Valmistellaan nyt tietojoukko, jota voitaisiin käyttää koneoppimiseen. Suodatetaan tapahtumatiedot niin, että ne sisältävät vain Discover-luottokortit, mutta säilytetään vain osa sarakkeita.

discover_tbl %
  filter(card_brand == 'Discover', card_type == 'Credit') %>%
  left_join(transactions_tbl, by = c("user_id", "card_id")) %>%
  select(user_id, is_fraud, merchant_category_code, use_chip, year, month, day, time_stamp, amount)

Ja nyt tehdään siivous seuraavilla muunnoksilla:

  • Muuntaa is_fraud binäärimääritteeksi
  • Poista tapahtumamerkkijono kohteesta use_chip ja nimeä se uudelleen kirjoitettavaksi
  • Yhdistä vuosi, kuukausi ja päivä tietoobjektiksi
  • Poista summasta $ ja muunna numeeriseksi tietotyypiksi
discover_tbl %
  mutate(is_fraud = ifelse(is_fraud == 'Yes', 1, 0),
         type = str_remove(use_chip, 'Transaction'),
         type = str_trim(type),
         type = tolower(type),
         date = paste(year, month, day, sep = '-'),
         date = as.Date(date),
         amount = str_remove(amount, '[$]'),
         amount = as.numeric(amount)) %>%
  select(-use_chip, -year, -month, -day)

Nyt kun olemme suodattaneet ja puhdistaneet tietojoukkomme, olemme valmiita keräämään tämän tietojoukon paikalliseen RAM-muistiin.

discover <- collect(discover_tbl)
summary(discover)

Nyt meillä on toimiva tietojoukko ominaisuuksien ja sovitusmallien luomisen aloittamiseksi. Emme käsittele näitä vaiheita tässä blogissa, mutta jos haluat lisätietoja mallien rakentamisesta SageMakerin RStudiossa, katso Täysin hallinnoidun RStudion julkaiseminen Amazon SageMaker for Data Scientists -palvelussa.

Uudelleenjärjestäminen

Poista CloudFormation-juurimalli, jotta voit puhdistaa resurssit välttääksesi toistuvia kustannuksia. Poista myös kaikki luodut EFS-liitännät ja kaikki luodut S3-sämpötilöt ja -objektit.

Yhteenveto

Tietojen analysointi ja mallintaminen voivat olla haastavia työskenneltäessä suurten tietojoukkojen kanssa pilvessä. Amazon Redshift on suosittu tietovarasto, joka voi auttaa käyttäjiä suorittamaan nämä tehtävät. RStudiota, joka on yksi laajimmin käytetyistä integroiduista kehitysympäristöistä (IDE) tietojen analysointiin, käytetään usein R-kielen kanssa. Tässä blogiviestissä osoitimme, kuinka käyttää Amazon Redshiftiä ja RStudioa SageMakerissa yhdessä valtavien tietojoukkojen analyysin suorittamiseen tehokkaasti. Käyttämällä RStudiota SageMakerissa käyttäjät voivat hyödyntää SageMakerin täysin hallittua infrastruktuuria, kulunvalvontaa, verkko- ja suojausominaisuuksia ja samalla yksinkertaistaa integraatiota Amazon Redshiftin kanssa. Jos haluat oppia lisää näiden kahden työkalun käyttämisestä yhdessä, tutustu muihin blogiteksteihimme ja resursseihin. Voit myös kokeilla RStudion käyttöä SageMakerissa ja Amazon Redshiftissä itse ja nähdä, kuinka ne voivat auttaa sinua data-analyysi- ja mallinnustehtävissäsi.

Lisää palautetta tähän blogiin tai luo vetopyyntö GitHub.


Tietoja Tekijät

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Ryan Garner on tietotutkija, jolla on AWS Professional Services. Hän on intohimoinen auttaakseen AWS-asiakkaita käyttämään R:tä datatieteen ja koneoppimisen ongelmien ratkaisemisessa.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Raj Pathak on Senior Solutions -arkkitehti ja -teknologi, joka on erikoistunut rahoituspalveluihin (vakuutus, pankkitoiminta, pääomamarkkinat) ja koneoppimiseen. Hän on erikoistunut luonnollisen kielen käsittelyyn (NLP), suuriin kielimalleihin (LLM) ja koneoppimisen infrastruktuuri- ja toimintaprojekteihin (MLOps).

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Aditi Rajnish on toisen vuoden ohjelmistotekniikan opiskelija Waterloon yliopistossa. Hänen kiinnostuksen kohteitaan ovat tietokonenäkö, luonnollisen kielen käsittely ja reunalaskenta. Hän on myös intohimoinen yhteisöpohjaiseen STEM-yhteistyöhön ja edunvalvontaan. Vapaa-ajallaan hän voi tavata kalliokiipeilyä, soittaa pianoa tai oppia leipomaan täydellisen sconsin.

Amazon Redshiftin ja RStudion yhdistäminen Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Saiteja Pudi on ratkaisuarkkitehti AWS:ssä, jonka kotipaikka on Dallas, Tx. Hän on työskennellyt AWS:ssä yli 3 vuotta ja auttanut asiakkaita hyödyntämään AWS:n todellista potentiaalia olemalla heidän luotettu neuvonantajansa. Hän on kotoisin sovelluskehitystaustasta, ja hän on kiinnostunut tietotieteestä ja koneoppimisesta.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen