ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

ربط Amazon Redshift و RStudio على Amazon SageMaker

في العام الماضي ، أعلنا عن التوفر العام لـ RStudio على Amazon SageMaker، أول بيئة تطوير متكاملة (IDE) RStudio Workbench تتم إدارتها بالكامل في الصناعة في السحابة. يمكنك تشغيل RStudio IDE المألوف بسرعة وطلب موارد الحوسبة الأساسية وخفضها دون مقاطعة عملك ، مما يسهل بناء التعلم الآلي (ML) وحلول التحليلات في R على نطاق واسع.

العديد من مستخدمي RStudio على SageMaker هم أيضًا من مستخدمي الأمازون الأحمر، مستودع بيانات متوازي على نطاق واسع ، على نطاق بيتابايت ، مُدار بالكامل لتخزين البيانات وأعباء العمل التحليلية. يجعل تحليل جميع بياناتك باستخدام لغة SQL القياسية وأدوات ذكاء الأعمال (BI) الحالية أمرًا سريعًا وبسيطًا وفعالًا من حيث التكلفة. يمكن للمستخدمين أيضًا التفاعل مع البيانات باستخدام ODBC أو JDBC أو Amazon Redshift Data API.

يمكن أن يكون استخدام RStudio على SageMaker و Amazon Redshift مفيدًا لإجراء التحليل بكفاءة على مجموعات البيانات الكبيرة في السحابة. ومع ذلك ، يمكن أن يمثل العمل مع البيانات في السحابة تحديات ، مثل الحاجة إلى إزالة مستودعات البيانات التنظيمية ، والحفاظ على الأمان والامتثال ، وتقليل التعقيد من خلال توحيد الأدوات. تقدم AWS أدوات مثل RStudio على SageMaker و Amazon Redshift للمساعدة في مواجهة هذه التحديات.

في منشور المدونة هذا ، سنوضح لك كيفية استخدام هاتين الخدمتين معًا لإجراء تحليل فعال لمجموعات البيانات الضخمة في السحابة أثناء مواجهة التحديات المذكورة أعلاه. تركز هذه المدونة على Rstudio على لغة Amazon SageMaker ، مع محللي الأعمال ومهندسي البيانات وعلماء البيانات وجميع المطورين الذين يستخدمون لغة R و Amazon Redshift ، باعتبارهم الجمهور المستهدف.

إذا كنت ترغب في استخدام تجربة SageMaker Studio التقليدية مع Amazon Redshift ، فارجع إلى استخدام Amazon Redshift Data API للتفاعل من دفتر ملاحظات Amazon SageMaker Jupyter.

حل نظرة عامة

في المدونة اليوم ، سنقوم بتنفيذ الخطوات التالية:

  1. استنساخ مخزن العينات بالحزم المطلوبة.
  2. الاتصال بـ Amazon Redshift من خلال اتصال ODBC آمن (ODBC هو البروتوكول المفضل لـ RStudio).
  3. تشغيل الاستعلامات وإجراءات واجهة برمجة تطبيقات SageMaker على البيانات داخل Amazon Redshift Serverless من خلال RStudio على SageMaker

تم توضيح هذه العملية في بنية الحلول التالية:

تجول الحل

المتطلبات الأساسية المسبقة

قبل البدء ، تأكد من أن لديك جميع متطلبات إعداد RStudio على Amazon SageMaker و Amazon Redshift Serverless ، مثل:

سنستخدم مكدس CloudFormation لإنشاء البنية التحتية المطلوبة.

ملحوظة: إذا كان لديك بالفعل مجال RStudio ومجموعة Amazon Redshift ، فيمكنك تخطي هذه الخطوة

يؤدي بدء تشغيل هذا المكدس إلى إنشاء الموارد التالية:

  • 3 شبكات فرعية خاصة
  • 1 الشبكة الفرعية العامة
  • 1 بوابة NAT
  • بوابة الإنترنت
  • مجموعة Amazon Redshift Serverless
  • 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. البحث العمودي. منظمة العفو الدولية.

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

  1. على إنشاء مكدس الصفحة ، اختر التالى.
  2. على حدد تفاصيل المكدس الصفحة ، قم بتوفير اسم للمكدس الخاص بك واترك الخيارات المتبقية كخيار افتراضي ، ثم اختر التالى.
  3. على تكوين خيارات المكدس الصفحة ، اترك الخيارات كافتراضية واضغط التالى.
  4. على صفحة المراجعة، حدد
  • أقر بأن AWS CloudFormation قد تنشئ موارد IAM بأسماء مخصصة
  • أقر بأن AWS CloudFormation قد يتطلب القدرة التالية: CAPABILITY_AUTO_EXPANDمربعات واختيار تقدم.

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

سيُنشئ القالب خمسة مكدسات.

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

بمجرد أن تكون حالة المكدس CREATE_COMPLETE، انتقل إلى وحدة التحكم Amazon Redshift Serverless. هذه قدرة جديدة تجعل من السهل جدًا تشغيل التحليلات في السحابة بأداء عالٍ على أي نطاق. فقط قم بتحميل بياناتك وابدأ في الاستعلام. ليست هناك حاجة لإنشاء وإدارة المجموعات.

ملاحظات: سيكون النمط الموضح في هذه المدونة والذي يدمج Amazon Redshift و RStudio على Amazon SageMaker هو نفسه بغض النظر عن نمط نشر Amazon Redshift (مجموعة بدون خادم أو مجموعة تقليدية).

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

تحميل البيانات في 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. البحث العمودي. منظمة العفو الدولية.

سنقوم بتنفيذ الاستعلام التالي في محرر الاستعلام. سيؤدي هذا إلى إنشاء ثلاثة جداول ، البطاقات والمعاملات و المستخدمين.

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. البحث العمودي. منظمة العفو الدولية.

بمجرد ملء جميع الجداول ، انتقل إلى SageMaker RStudio وابدأ جلسة جديدة باستخدام صورة RSession الأساسية على مثيل ml.m5.xlarge.

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

بمجرد بدء الجلسة ، سنقوم بتشغيل هذا الرمز لإنشاء اتصال بقاعدة بيانات 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. البحث العمودي. منظمة العفو الدولية.

RStudio التواصل يجب أن يُظهر الجزء ملف sagemaker قاعدة بيانات مع مخطط تركيبي وبطاقات الجداول والمعاملات والمستخدمين.

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

يمكنك النقر فوق رمز الجدول الموجود بجوار الجداول لعرض 1,000 سجل.

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

ملاحظة: لقد أنشأنا ملف R Markdown مُبنى مسبقًا يحتوي على جميع الكتل البرمجية المُنشأة مسبقًا والتي يمكن العثور عليها في المشروع جيثب ريبو.

الآن دعنا نستخدم 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. البحث العمودي. منظمة العفو الدولية.

يمكننا أيضا مشاهدة ماذا 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. البحث العمودي. منظمة العفو الدولية.

يمكننا أيضًا تلخيص البيانات في قاعدة البيانات على النحو التالي:

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_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 ، وهي إحدى بيئات التطوير المتكاملة الأكثر استخدامًا (IDEs) لتحليل البيانات ، مع لغة R. في منشور المدونة هذا ، أوضحنا كيفية استخدام Amazon Redshift و RStudio على SageMaker معًا لإجراء تحليل فعال على مجموعات البيانات الضخمة. باستخدام RStudio على SageMaker ، يمكن للمستخدمين الاستفادة من البنية التحتية المُدارة بالكامل والتحكم في الوصول والشبكات والإمكانيات الأمنية لـ SageMaker ، مع تبسيط التكامل مع Amazon Redshift أيضًا. إذا كنت ترغب في معرفة المزيد حول استخدام هاتين الأداتين معًا ، فراجع منشوراتنا ومواردنا الأخرى في المدونة. يمكنك أيضًا تجربة استخدام RStudio على SageMaker و Amazon Redshift بنفسك ومعرفة كيف يمكنهم مساعدتك في تحليل البيانات ومهام النمذجة.

الرجاء إضافة ملاحظاتك إلى هذه المدونة ، أو إنشاء طلب سحب على GitHub جيثب:.


حول المؤلف

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.ريان غارنر هو عالم بيانات مع خدمات AWS الاحترافية. إنه متحمس لمساعدة عملاء AWS على استخدام R لحل مشكلاتهم في علوم البيانات والتعلم الآلي.

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.راج باتاك مهندس حلول وتقني أول متخصص في الخدمات المالية (التأمين ، البنوك ، أسواق رأس المال) والتعلم الآلي. وهو متخصص في معالجة اللغات الطبيعية (NLP) ونماذج اللغات الكبيرة (LLM) والبنية التحتية للتعلم الآلي ومشاريع العمليات (MLOps).

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.أديتي راجنيش هو طالب هندسة برمجيات في السنة الثانية بجامعة واترلو. تشمل اهتماماتها رؤية الكمبيوتر ومعالجة اللغة الطبيعية والحوسبة المتطورة. كما أنها شغوفة بالتوعية والتوعية المجتمعية في مجالات العلوم والتكنولوجيا والهندسة والرياضيات (STEM). في أوقات فراغها ، يمكن أن تجدها تتسلق الصخور أو تعزف على البيانو أو تتعلم كيفية خبز الكعك المثالي.

ربط Amazon Redshift وRStudio على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.سايتجا بودي هو مهندس حلول في AWS ، ومقره في دالاس ، تكساس. لقد عمل مع AWS لأكثر من 3 سنوات حتى الآن ، حيث يساعد العملاء على اكتساب الإمكانات الحقيقية لـ AWS من خلال كونه مستشارهم الموثوق به. لقد جاء من خلفية تطوير التطبيقات ، ومهتم بعلوم البيانات والتعلم الآلي.

الطابع الزمني:

اكثر من التعلم الآلي من AWS