اتصال Amazon Redshift و RStudio در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

اتصال Amazon Redshift و RStudio در Amazon SageMaker

سال گذشته، ما در دسترس بودن عمومی را اعلام کردیم RStudio در Amazon SageMaker، اولین محیط توسعه یکپارچه RStudio Workbench (IDE) با مدیریت کامل صنعت در فضای ابری است. می‌توانید به سرعت IDE آشنا RStudio را راه‌اندازی کنید و منابع محاسباتی زیربنایی را بدون وقفه در کارتان بالا و پایین کنید، و ساخت راه‌حل‌های یادگیری ماشین (ML) و تجزیه و تحلیل در مقیاس R را آسان می‌کند.

بسیاری از کاربران RStudio در SageMaker نیز از کاربران آن هستند آمازون Redshift، یک انبار داده کاملاً موازی در مقیاس پتابایتی برای ذخیره سازی داده ها و بارهای کاری تحلیلی. تجزیه و تحلیل تمام داده های شما با استفاده از SQL استاندارد و ابزارهای هوش تجاری (BI) موجود شما را سریع، ساده و مقرون به صرفه می کند. کاربران همچنین می توانند با داده ها با ODBC، JDBC یا Amazon Redshift Data API تعامل داشته باشند.

استفاده از RStudio در SageMaker و Amazon Redshift می تواند برای انجام کارآمد تجزیه و تحلیل در مجموعه داده های بزرگ در ابر مفید باشد. با این حال، کار با داده‌ها در فضای ابری می‌تواند چالش‌هایی مانند نیاز به حذف سیلوهای داده‌های سازمانی، حفظ امنیت و انطباق، و کاهش پیچیدگی با استانداردسازی ابزار ایجاد کند. AWS ابزارهایی مانند RStudio در SageMaker و Amazon Redshift را برای کمک به مقابله با این چالش ها ارائه می دهد.

در این پست وبلاگ، ما به شما نشان خواهیم داد که چگونه از هر دوی این سرویس ها با هم استفاده کنید تا همزمان با چالش های ذکر شده در بالا، تجزیه و تحلیل را به طور موثر بر روی مجموعه داده های عظیم در ابر انجام دهید. این وبلاگ بر روی Rstudio در زبان آمازون SageMaker با تحلیلگران کسب و کار، مهندسان داده، دانشمندان داده، و همه توسعه دهندگانی که از زبان R و Amazon Redshift استفاده می کنند، به عنوان مخاطب هدف تمرکز دارد.

اگر می‌خواهید از تجربه سنتی SageMaker Studio با Amazon Redshift استفاده کنید، به آن مراجعه کنید استفاده از Amazon Redshift Data API برای تعامل از یک نوت بوک Amazon SageMaker Jupyter.

بررسی اجمالی راه حل

امروز در وبلاگ مراحل زیر را انجام خواهیم داد:

  1. شبیه سازی مخزن نمونه با بسته های مورد نیاز.
  2. اتصال به Amazon Redshift با اتصال ایمن ODBC (ODBC پروتکل ارجح برای RStudio است).
  3. اجرای پرس و جوها و اقدامات API SageMaker بر روی داده ها در Amazon Redshift Serverless از طریق RStudio در SageMaker

این فرآیند در معماری راه حل های زیر نشان داده شده است:

راه حل

پیش نیازها

قبل از شروع کار، مطمئن شوید که تمام الزامات راه اندازی RStudio در Amazon SageMaker و Amazon Redshift Serverless را دارید، مانند:

ما از یک پشته CloudFormation برای ایجاد زیرساخت مورد نیاز استفاده خواهیم کرد.

توجه داشته باشید: اگر از قبل یک دامنه RStudio و آمازون Redshift کلاستر دارید، می توانید از این مرحله صرف نظر کنید

راه اندازی این پشته منابع زیر را ایجاد می کند:

  • 3 زیرشبکه خصوصی
  • 1 زیر شبکه عمومی
  • 1 دروازه NAT
  • دروازه اینترنت
  • خوشه بدون سرور آمازون Redshift
  • دامنه SageMaker با RStudio
  • پروفایل کاربری SageMaker RStudio
  • نقش سرویس IAM برای اجرای دامنه SageMaker RStudio
  • نقش سرویس IAM برای اجرای پروفایل کاربر SageMaker RStudio

این الگو برای کار در یک منطقه (مثلاً us-east-1, us-west-2) با سه منطقه در دسترس، RStudio در SageMaker و Amazon Redshift Serverless. اطمینان حاصل کنید که منطقه شما به آن منابع دسترسی دارد یا الگوها را بر اساس آن اصلاح کنید.

را فشار دهید Stack را راه اندازی کنید دکمه برای ایجاد پشته.

اتصال 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 Serverless بروید. این یک قابلیت جدید است که اجرای تجزیه و تحلیل در فضای ابری با عملکرد بالا در هر مقیاسی را بسیار آسان می کند. فقط داده های خود را بارگیری کنید و شروع به پرس و جو کنید. نیازی به راه اندازی و مدیریت کلاسترها نیست.

توجه داشته باشید: الگوی نشان داده شده در این وبلاگ برای ادغام 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)

برای مشاهده جداول در طرح مصنوعی، باید از طریق ویرایشگر پرس و جو به آمازون 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 repo.

حالا بیایید از 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 تراکنش. همچنین می توانیم جداول موجود در کنسول را مشاهده کنیم.

transactions_tbl

اتصال Amazon Redshift و RStudio در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

ما همچنین می توانیم چه چیزی را مشاهده کنیم dplyr افعال are doing under the hood.

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)

اکنون که مجموعه داده خود را فیلتر و پاکسازی کرده ایم، آماده هستیم تا این مجموعه داده را در RAM محلی جمع آوری کنیم.

discover <- collect(discover_tbl)
summary(discover)

اکنون ما یک مجموعه داده فعال داریم تا شروع به ایجاد ویژگی ها و مدل های برازش کنیم. ما این مراحل را در این وبلاگ پوشش نمی دهیم، اما اگر می خواهید در مورد ساخت مدل ها در RStudio در SageMaker بیشتر بدانید به اعلام RStudio کاملاً مدیریت شده در Amazon SageMaker برای دانشمندان داده.

پاک کردن

برای پاکسازی هر منبعی برای جلوگیری از متحمل شدن هزینه های مکرر، الگوی root 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 است. او مشتاق کمک به مشتریان 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، مستقر در دالاس، تگزاس است. او بیش از 3 سال است که با AWS کار می کند و به مشتریان کمک می کند تا از پتانسیل واقعی AWS استفاده کنند و مشاور مورد اعتماد آنها باشد. او از یک پیشینه توسعه برنامه است و به علم داده و یادگیری ماشین علاقه دارد.

تمبر زمان:

بیشتر از آموزش ماشین AWS