Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Підключення Amazon Redshift і RStudio на Amazon SageMaker

Минулого року ми оголосили про загальну доступність RStudio на Amazon SageMaker, перше в галузі повністю кероване інтегроване середовище розробки (IDE) RStudio Workbench у хмарі. Ви можете швидко запустити звичну IDE RStudio і налаштувати базові обчислювальні ресурси, не перериваючи роботу, що полегшить створення машинного навчання (ML) і аналітичних рішень у масштабі R.

Багато користувачів RStudio на SageMaker також є користувачами Амазонська червона зміна, повністю кероване петабайтне масово паралельне сховище даних для зберігання даних і аналітичних навантажень. Це дозволяє швидко, просто та економічно ефективно аналізувати всі ваші дані за допомогою стандартного SQL і наявних інструментів бізнес-аналітики (BI). Користувачі також можуть взаємодіяти з даними за допомогою ODBC, JDBC або API даних Amazon Redshift.

Використання RStudio на SageMaker і Amazon Redshift може бути корисним для ефективного аналізу великих наборів даних у хмарі. Однак робота з даними в хмарі може спричинити труднощі, наприклад, необхідність усунути корпоративні дані, підтримувати безпеку та відповідність вимогам, а також зменшити складність шляхом стандартизації інструментів. AWS пропонує такі інструменти, як RStudio на SageMaker і Amazon Redshift, щоб допомогти впоратися з цими проблемами.

У цій публікації блогу ми покажемо вам, як використовувати обидві ці служби разом для ефективного аналізу масивних наборів даних у хмарі, одночасно вирішуючи згадані вище проблеми. Цей блог присвячено Rstudio на мові Amazon SageMaker, цільовою аудиторією є бізнес-аналітики, інженери з обробки даних, спеціалісти з обробки даних та всі розробники, які використовують мову R і Amazon Redshift.

Якщо ви хочете використовувати традиційний досвід SageMaker Studio з Amazon Redshift, зверніться до Використання API даних Amazon Redshift для взаємодії з блокнота Amazon SageMaker Jupyter.

Огляд рішення

Сьогодні в блозі ми виконаємо наступні кроки:

  1. Клонування репозиторію зразків з потрібними пакетами.
  2. Підключення до Amazon Redshift за допомогою безпечного з’єднання ODBC (ODBC є кращим протоколом для RStudio).
  3. Виконання запитів і дій SageMaker API над даними в Amazon Redshift Serverless через RStudio на SageMaker

Цей процес зображено в такій архітектурі рішень:

Покрокове керівництво

Передумови

Перш ніж почати, переконайтеся, що у вас є всі вимоги для налаштування RStudio на Amazon SageMaker і Amazon Redshift Serverless, наприклад:

Ми будемо використовувати стек CloudFormation для створення необхідної інфраструктури.

Примітка: Якщо у вас уже є домен RStudio та кластер Amazon Redshift, ви можете пропустити цей крок

Запуск цього стека створює такі ресурси:

  • 3 Приватні підмережі
  • 1 Публічна підмережа
  • 1 шлюз NAT
  • Інтернет-шлюз
  • Безсерверний кластер Amazon Redshift
  • Домен SageMaker з RStudio
  • Профіль користувача SageMaker RStudio
  • Роль служби IAM для виконання домену SageMaker RStudio
  • Роль служби IAM для виконання профілю користувача SageMaker RStudio

Цей шаблон розроблено для роботи в регіоні (наприклад, us-east-1, us-west-2) із трьома зонами доступності, RStudio на SageMaker і Amazon Redshift Serverless. Переконайтеся, що ваш регіон має доступ до цих ресурсів, або відповідно змініть шаблони.

Натисніть Запустити стек кнопку для створення стека.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

  1. на Створити стек сторінку, виберіть МАЙБУТНІ.
  2. на Вкажіть деталі стека сторінки, введіть назву для свого стека та залиште інші параметри за замовчуванням, а потім виберіть МАЙБУТНІ.
  3. на Налаштувати параметри стека залиште параметри за замовчуванням і натисніть МАЙБУТНІ.
  4. на Перегляньте сторінку, виберіть
  • Я розумію, що AWS CloudFormation може створювати ресурси IAM із власними іменами
  • Я визнаю, що AWS CloudFormation може потребувати таких можливостей: CAPABILITY_AUTO_EXPANDпрапорці та виберіть Надіслати.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Шаблон створить п'ять стеків.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Після того, як стан стека є CREATE_COMPLETE, перейдіть до безсерверної консолі Amazon Redshift. Це нова можливість, яка дозволяє надзвичайно легко запускати аналітику в хмарі з високою продуктивністю в будь-якому масштабі. Просто завантажте свої дані та почніть запит. Немає необхідності налаштовувати та керувати кластерами.

примітки: продемонстрований у цьому блозі шаблон інтеграції Amazon Redshift і RStudio на Amazon SageMaker буде однаковим незалежно від шаблону розгортання Amazon Redshift (безсерверний або традиційний кластер).

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Завантаження даних у Amazon Redshift Serverless

Сценарій CloudFormation створив базу даних під назвою sagemaker. Давайте заповнимо цю базу даних таблицями для запиту користувача RStudio. Створіть вкладку редактора SQL і переконайтеся, що sagemaker вибрано базу даних. Ми будемо використовувати синтетичні дані транзакцій кредитної картки для створення таблиць у нашій базі даних. Ці дані є частиною зразків табличних наборів даних SageMaker s3://sagemaker-sample-files/datasets/tabular/synthetic_credit_card_transactions.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ми збираємося виконати наступний запит у редакторі запитів. Це створить три таблиці, картки, транзакції, та користувачі.

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;

Ви можете переконатися, що запит виконано успішно, переглянувши три таблиці на лівій панелі редактора запитів.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Після заповнення всіх таблиць перейдіть до SageMaker RStudio та розпочніть новий сеанс із базовим зображенням RSession на екземплярі ml.m5.xlarge.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Після запуску сеансу ми запустимо цей код, щоб створити з’єднання з нашою базою даних Amazon Redshift Serverless.

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)

Щоб переглядати таблиці в синтетичній схемі, вам потрібно буде надати доступ в Amazon Redshift за допомогою редактора запитів.

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

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

RStudio Зв'язки панель має відображати sagemaker база даних зі схемами синтетичними та таблицями карток, транзакцій, користувачів.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ви можете натиснути значок таблиці поруч із таблицями, щоб переглянути 1,000 записів.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Примітка. Ми створили попередньо зібраний файл R Markdown з усіма попередньо зібраними кодовими блоками, які можна знайти в проекті GitHub репо.

Тепер скористаємося DBI пакетна функція dbListTables() щоб переглянути існуючі таблиці.

dbListTables(con)

Використовуйте dbGetQuery(), щоб передати SQL-запит до бази даних.

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

Ми також можемо використовувати dbplyr та dplyr пакети для виконання запитів до бази даних. Давайте count() скільки транзакцій у таблиці транзакцій. Але спочатку нам потрібно встановити ці пакети.

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

Використовувати tbl() функцію під час визначення схеми.

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

Давайте запустимо підрахунок кількості рядків для кожної таблиці.

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

Отже, у нас 2,000 користувачів; 6,146 карток; і 24,386,900 XNUMX XNUMX транзакцій. Ми також можемо переглядати таблиці в консолі.

transactions_tbl

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ми також можемо переглянути що dplyr дієслова роблять під капотом.

show_query(transactions_tbl)

Давайте наочно дослідимо кількість угод по роках.

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 Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ми також можемо узагальнити дані в базі даних наступним чином:

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

Припустімо, ми хочемо переглянути шахрайство з використанням інформації картки. Нам просто потрібно об’єднати таблиці, а потім згрупувати їх за атрибутом.

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

Тепер давайте підготуємо набір даних, який можна використовувати для машинного навчання. Давайте відфільтруємо дані транзакцій, щоб включати лише кредитні картки Discover, зберігаючи лише підмножину стовпців.

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)

А тепер давайте зробимо очищення за допомогою наступних перетворень:

  • Конвертувати is_fraud до двійкового атрибута
  • Видалити рядок транзакції з use_chip і перейменуйте його на тип
  • Об’єднайте рік, місяць і день в об’єкт даних
  • Видаліть $ із суми та перетворіть на числовий тип даних
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)

Тепер, коли ми відфільтрували та очистили наш набір даних, ми готові зібрати цей набір даних у локальну оперативну пам’ять.

discover <- collect(discover_tbl)
summary(discover)

Тепер у нас є робочий набір даних, щоб почати створювати функції та підгонку моделей. Ми не будемо розглядати ці кроки в цьому блозі, але якщо ви хочете дізнатися більше про створення моделей у RStudio на SageMaker, зверніться до Анонс повністю керованого RStudio на Amazon SageMaker для спеціалістів із обробки даних.

Прибирати

Щоб очистити будь-які ресурси та уникнути повторних витрат, видаліть кореневий шаблон CloudFormation. Також видаліть усі створені монтування EFS і будь-які створені сегменти та об’єкти S3.

Висновок

Аналіз даних і моделювання можуть бути складними під час роботи з великими наборами даних у хмарі. Amazon Redshift — популярне сховище даних, яке може допомогти користувачам виконувати ці завдання. RStudio, одне з найпоширеніших інтегрованих середовищ розробки (IDE) для аналізу даних, часто використовується з мовою R. У цьому дописі в блозі ми показали, як разом використовувати Amazon Redshift і RStudio на SageMaker для ефективного аналізу масивних наборів даних. Використовуючи RStudio на SageMaker, користувачі можуть скористатися перевагами повністю керованої інфраструктури, контролю доступу, мереж і можливостей безпеки SageMaker, а також спростити інтеграцію з Amazon Redshift. Якщо ви хочете дізнатися більше про використання цих двох інструментів разом, перегляньте інші публікації та ресурси нашого блогу. Ви також можете спробувати самостійно використати RStudio на SageMaker і Amazon Redshift і побачити, як вони можуть допомогти вам із завданнями аналізу даних і моделювання.

Будь ласка, додайте свій відгук до цього блогу або створіть запит на отримання на сайті GitHub.


Про авторів

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Райан Гарнер є спеціалістом із обробки даних у AWS Professional Services. Він захоплено допомагає клієнтам AWS використовувати R для вирішення їхніх проблем із наукою про дані та машинним навчанням.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Радж Патхак є старшим архітектором рішень і технологом, який спеціалізується на фінансових послугах (страхування, банківська справа, ринки капіталу) і машинному навчанні. Він спеціалізується на обробці природної мови (NLP), моделях великих мов (LLM) і проектах інфраструктури й операцій машинного навчання (MLOps).

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Адіті Раджніш є студентом другого курсу інженерії програмного забезпечення в Університеті Ватерлоо. Її інтереси включають комп’ютерне бачення, обробку природної мови та периферійні обчислення. Вона також захоплюється просвітницькою діяльністю та адвокацією STEM у громаді. У вільний час вона займається скелелазінням, грою на піаніно або вчиться пекти ідеальну булочку.

Підключення Amazon Redshift і RStudio на Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Сайтея Пуді є архітектором рішень в AWS, розташованому в Далласі, Техас. Він працює в AWS більше 3 років, допомагаючи клієнтам розкрити справжній потенціал AWS, будучи їхнім довіреним радником. Він займається розробкою програм, цікавиться наукою про дані та машинним навчанням.

Часова мітка:

Більше від AWS Машинне навчання