Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMakeren

Tavaly bejelentettük az általános elérhetőséget RStudio az Amazon SageMakeren, az iparág első teljesen felügyelt RStudio Workbench integrált fejlesztői környezete (IDE) a felhőben. Gyorsan elindíthatja az ismerős RStudio IDE-t, és fel-le tárcsázhatja a mögöttes számítási erőforrásokat anélkül, hogy megszakítaná a munkáját, így egyszerűvé téve a gépi tanulási (ML) és elemzési megoldások R-ben való nagyszabású felépítését.

A SageMaker RStudio-felhasználói közül sok a felhasználó is Amazon RedShift, egy teljesen felügyelt, petabájtos méretű, masszívan párhuzamos adattárház adattároláshoz és elemzési munkaterhelésekhez. Gyorsan, egyszerűen és költséghatékonyan elemezheti az összes adatot a szabványos SQL és a meglévő üzleti intelligencia (BI) eszközeivel. A felhasználók az ODBC, a JDBC vagy az Amazon Redshift Data API segítségével is kommunikálhatnak az adatokkal.

Az RStudio használata a SageMakeren és az Amazon Redshift-en hasznos lehet a felhőben található nagy adatkészletek hatékony elemzéséhez. A felhőben lévő adatokkal végzett munka azonban kihívásokat jelenthet, például el kell távolítani a szervezeti adattárolókat, meg kell őrizni a biztonságot és a megfelelőséget, valamint csökkenteni kell a bonyolultságot az eszközök szabványosításával. Az AWS olyan eszközöket kínál, mint az RStudio a SageMakeren és az Amazon Redshift, amelyek segítenek megbirkózni ezekkel a kihívásokkal.

Ebben a blogbejegyzésben bemutatjuk, hogyan használhatja együtt a két szolgáltatást a felhőben található hatalmas adatkészletek hatékony elemzéséhez, miközben kezeli a fent említett kihívásokat. Ez a blog az Amazon SageMaker nyelvű Rstudio-ra összpontosít, üzleti elemzőkkel, adatmérnökökkel, adattudósokkal és minden olyan fejlesztővel, aki az R nyelvet és az Amazon Redshiftet használja, mint célközönséget.

Ha szeretné használni a hagyományos SageMaker Studio élményt az Amazon Redshifttel, tekintse meg a Az Amazon Redshift Data API használata az Amazon SageMaker Jupyter notebookból való interakcióhoz.

Megoldás áttekintése

A mai blogban a következő lépéseket hajtjuk végre:

  1. A mintatár klónozása a szükséges csomagokkal.
  2. Csatlakozás az Amazon Redshifthez biztonságos ODBC kapcsolattal (Az ODBC az RStudio preferált protokollja).
  3. Lekérdezések és SageMaker API-műveletek futtatása az Amazon Redshift Serverless-en belüli adatokon a SageMaker RStudióján keresztül

Ezt a folyamatot a következő megoldási architektúra ábrázolja:

Megoldás áttekintése

Előfeltételek

Mielőtt elkezdené, győződjön meg arról, hogy minden követelménynek megfelel az RStudio beállításához az Amazon SageMaker és az Amazon Redshift Serverless rendszeren, például:

CloudFormation verem segítségével állítjuk elő a szükséges infrastruktúrát.

Jegyzet: Ha már rendelkezik RStudio-domainnel és Amazon Redshift-fürttel, kihagyhatja ezt a lépést

A verem elindítása a következő erőforrásokat hozza létre:

  • 3 Privát alhálózatok
  • 1 Nyilvános alhálózat
  • 1 NAT átjáró
  • Internet átjáró
  • Amazon Redshift szerver nélküli fürt
  • SageMaker domain az RStudióval
  • SageMaker RStudio felhasználói profil
  • IAM szolgáltatási szerepkör a SageMaker RStudio tartomány végrehajtásához
  • IAM szolgáltatási szerepkör a SageMaker RStudio felhasználói profil végrehajtásához

Ezt a sablont úgy tervezték, hogy egy régióban (pl. us-east-1, us-west-2) három rendelkezésre állási zónával, a SageMaker RStudióval és az Amazon Redshift Serverless szolgáltatással. Győződjön meg arról, hogy régiója hozzáfér ezekhez az erőforrásokhoz, vagy ennek megfelelően módosítsa a sablonokat.

Nyomja meg a Indítsa el a Stack alkalmazást gombot a verem létrehozásához.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

  1. A Verem létrehozása oldalon válassza a lehetőséget Következő.
  2. A Adja meg a verem részleteit oldalon, adjon nevet a veremnek, és hagyja a többi beállítást alapértelmezettként, majd válassza ki Következő.
  3. A Állítsa be a verembeállításokat oldalon hagyja az opciókat alapértelmezettként, és nyomja meg a gombot Következő.
  4. A Ellenőrző oldalVálassza ki a
  • Tudomásul veszem, hogy az AWS CloudFormation létrehozhat IAM-erőforrásokat egyéni névvel
  • Tudomásul veszem, hogy az AWS CloudFormation a következő képességeket igényelheti: CAPABILITY_AUTO_EXPANDjelölje be, és válassza ki Küld.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

A sablon öt köteget fog létrehozni.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Miután a verem állapota CREATE_COMPLETE, navigáljon az Amazon Redshift Serverless konzolra. Ez egy új képesség, amely rendkívül egyszerűvé teszi az analitika futtatását a felhőben, nagy teljesítménnyel bármilyen léptékben. Csak töltse be adatait, és kezdje el a lekérdezést. Nincs szükség fürtök létrehozására és kezelésére.

Megjegyzések: Az Amazon Redshiftet és az RStudiót az Amazon SageMakeren integráló blogban bemutatott minta ugyanaz lesz, függetlenül az Amazon Redshift telepítési mintától (szerver nélküli vagy hagyományos fürt).

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Adatok betöltése az Amazon Redshift Serverless szolgáltatásban

A CloudFormation szkript létrehozta a nevű adatbázist sagemaker. Töltsük fel ezt az adatbázist táblázatokkal, amelyeket az RStudio felhasználó lekérdezhet. Hozzon létre egy SQL-szerkesztő lapot, és győződjön meg arról, hogy a sagemaker adatbázis van kiválasztva. Használni fogjuk a szintetikus hitelkártya tranzakciós adatok táblázatok létrehozásához az adatbázisunkban. Ezek az adatok a SageMaker minta táblázatos adatkészleteinek részét képezik s3://sagemaker-sample-files/datasets/tabular/synthetic_credit_card_transactions.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

A következő lekérdezést fogjuk végrehajtani a lekérdezésszerkesztőben. Ez három táblát generál, kártyák, tranzakciók, és a Felhasználók.

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;

A lekérdezés sikeres lefutását úgy ellenőrizheti, hogy három táblázatot lát a lekérdezésszerkesztő bal oldali ablaktáblájában.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Miután az összes tábla feltöltve, navigáljon a SageMaker RStudióhoz, és indítson új munkamenetet az RSession alapképpel egy ml.m5.xlarge példányon.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

A munkamenet elindítása után ezt a kódot futtatjuk, hogy kapcsolatot hozzunk létre az Amazon Redshift Serverless adatbázisunkkal.

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)

A szintetikus séma táblázatainak megtekintéséhez hozzáférést kell biztosítania az Amazon Redshiftben a lekérdezésszerkesztőn keresztül.

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

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Az RStudio kapcsolatok ablakban meg kell jelennie a sagemaker adatbázis séma szintetikus és táblázatok kártyák, tranzakciók, felhasználók.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

A táblázatok melletti táblázat ikonra kattintva 1,000 rekordot tekinthet meg.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Megjegyzés: Létrehoztunk egy előre elkészített R Markdown fájlt a projektben található összes kódblokk segítségével. GitHub repo.

Most használjuk a DBI csomag funkció dbListTables() meglévő táblázatok megtekintéséhez.

dbListTables(con)

Használja a dbGetQuery()-t egy SQL-lekérdezés átadásához az adatbázisnak.

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

Használhatjuk a dbplyr és a dplyr csomagok lekérdezések végrehajtásához az adatbázisban. Gyerünk count() hány tranzakció van a tranzakciós táblában. De először telepítenünk kell ezeket a csomagokat.

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

Használja a tbl() függvényt a séma megadása közben.

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"))

Számoljuk meg az egyes táblák sorainak számát.

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

Tehát 2,000 felhasználónk van; 6,146 kártya; és 24,386,900 XNUMX XNUMX tranzakció. A táblázatokat a konzolon is megtekinthetjük.

transactions_tbl

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Azt is megnézhetjük, hogy mit dplyr igék csinálnak a motorháztető alatt.

show_query(transactions_tbl)

Vizuálisan vizsgáljuk meg a tranzakciók számát évenként.

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') 

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Az adatbázisban lévő adatokat az alábbiak szerint is összegezhetjük:

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

Tegyük fel, hogy meg akarjuk nézni a kártyaadatok felhasználásával elkövetett csalásokat. Csak össze kell kapcsolnunk a táblákat, majd az attribútum alapján csoportosítani kell őket.

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

Most készítsünk egy adatkészletet, amelyet a gépi tanuláshoz használhatunk. Szűrjük a tranzakciós adatokat úgy, hogy csak a Discover hitelkártyákat tartalmazzák, miközben csak az oszlopok egy részét tartjuk meg.

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)

És most végezzünk egy kis takarítást a következő átalakításokkal:

  • Megtérít is_fraud bináris attribútumhoz
  • Tranzakciós karakterlánc eltávolítása innen use_chip és nevezze át gépelésre
  • Év, hónap és nap egyesítése adatobjektummá
  • Távolítsa el a $ összeget, és alakítsa át numerikus adattípussá
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)

Most, hogy kiszűrtük és megtisztítottuk az adatkészletünket, készen állunk arra, hogy ezt az adatkészletet a helyi RAM-ba gyűjtsük.

discover <- collect(discover_tbl)
summary(discover)

Most már rendelkezünk egy működő adatkészlettel, amellyel elkezdhetjük a funkciók és az illesztési modellek létrehozását. Ezekkel a lépésekkel nem foglalkozunk ebben a blogban, de ha többet szeretne megtudni a modellek felépítéséről a SageMaker RStudio programjában, tekintse meg Bejelentjük a Fully Managed RStudiót az Amazon SageMaker for Data Scientists webhelyen.

Razzia

Az erőforrások megtisztításához, hogy elkerülje az ismétlődő költségeket, törölje a root CloudFormation sablont. Törölje továbbá az összes létrehozott EFS-csatolást és a létrehozott S3-csoportokat és objektumokat.

Következtetés

Az adatok elemzése és modellezése kihívást jelenthet, ha nagy adatkészletekkel dolgozik a felhőben. Az Amazon Redshift egy népszerű adattárház, amely segítheti a felhasználókat ezen feladatok elvégzésében. Az RStudio-t, az egyik legszélesebb körben használt integrált fejlesztői környezetet (IDE) az adatelemzésre, gyakran használják az R nyelvvel. Ebben a blogbejegyzésben bemutattuk, hogyan használható az Amazon Redshift és az RStudio együtt a SageMakeren, hogy hatékonyan végezzen elemzést hatalmas adatkészleteken. Az RStudio használatával a SageMakeren a felhasználók kihasználhatják a SageMaker teljesen felügyelt infrastruktúráját, hozzáférés-vezérlését, hálózati és biztonsági lehetőségeit, miközben leegyszerűsítik az Amazon Redshifttel való integrációt. Ha többet szeretne megtudni e két eszköz együttes használatáról, tekintse meg a többi blogbejegyzésünket és forrásunkat. Kipróbálhatja saját maga is az RStudio használatát a SageMakeren és az Amazon Redshiften, és megnézheti, hogyan tudnak segíteni az adatelemzési és modellezési feladatokban.

Kérjük, adja meg visszajelzését ehhez a bloghoz, vagy hozzon létre lehívási kérelmet a GitHub.


A szerzőkről

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.Ryan Garner az AWS Professional Services adattudós. Szenvedélyesen segíti az AWS ügyfeleit az R használatában adattudományi és gépi tanulási problémáik megoldásában.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.Raj Pathak vezető megoldástervező és technológus, aki a pénzügyi szolgáltatásokra (biztosítás, banki szolgáltatások, tőkepiacok) és a gépi tanulásra szakosodott. Szakterülete a Natural Language Processing (NLP), a Large Language Models (LLM) és a Machine Learning infrastruktúra és műveleti projektek (MLOps).

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.Aditi Rajnish a Waterloo Egyetem másodéves szoftvermérnök hallgatója. Érdeklődési köre a számítógépes látás, a természetes nyelvi feldolgozás és az éles számítástechnika. Szenvedélyesen rajong a közösségi alapú STEM tájékoztatásért és érdekképviseletért is. Szabadidejében sziklamászhat, zongorázhat, vagy megtanulhatja, hogyan kell a tökéletes pogácsát sütni.

Az Amazon Redshift és az RStudio összekapcsolása az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.Saiteja Pudi az AWS megoldások építésze, székhelye Dallas, Tx. Már több mint 3 éve dolgozik az AWS-nél, és segít az ügyfeleknek az AWS-ben rejlő valódi lehetőségek kiaknázásában azáltal, hogy megbízható tanácsadójuk. Alkalmazásfejlesztői háttérből származik, érdeklődik az adattudomány és a gépi tanulás iránt.

Időbélyeg:

Még több AWS gépi tanulás