Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Amazon Redshift ve RStudio'yu Amazon SageMaker'da Bağlama

Geçen yıl, genel kullanılabilirliğini duyurmuştuk. Amazon SageMaker'da RStudio, sektörün bulutta tamamen yönetilen ilk RStudio Workbench tümleşik geliştirme ortamı (IDE). Tanıdık RStudio IDE'yi hızlı bir şekilde başlatabilir ve çalışmanızı kesintiye uğratmadan temel bilgi işlem kaynaklarını yukarı ve aşağı çevirebilir, bu da R'de makine öğrenimi (ML) ve analitik çözümleri oluşturmayı kolaylaştırır.

SageMaker kullanıcılarının çoğu RStudio'nun da kullanıcılarıdır. Amazon Kırmızıya Kaydırma, veri depolama ve analitik iş yükleri için tam olarak yönetilen, petabayt ölçeğinde, büyük ölçüde paralel bir veri ambarı. Standart SQL ve mevcut iş zekası (BI) araçlarınızı kullanarak tüm verilerinizi analiz etmeyi hızlı, basit ve uygun maliyetli hale getirir. Kullanıcılar ayrıca ODBC, JDBC veya Amazon Redshift Data API ile verilerle etkileşim kurabilir.

SageMaker ve Amazon Redshift'te RStudio'nun kullanılması, buluttaki büyük veri kümeleri üzerinde verimli bir şekilde analiz yapmak için yardımcı olabilir. Bununla birlikte, bulutta verilerle çalışmak, kurumsal veri silolarını kaldırma, güvenlik ve uyumluluğu sürdürme ve araçları standartlaştırarak karmaşıklığı azaltma ihtiyacı gibi zorluklar ortaya çıkarabilir. AWS, bu zorlukların üstesinden gelmeye yardımcı olmak için SageMaker'da RStudio ve Amazon Redshift gibi araçlar sunar.

Bu blog gönderisinde, yukarıda belirtilen zorlukları ele alırken buluttaki büyük veri kümeleri üzerinde verimli bir şekilde analiz yapmak için bu iki hizmeti birlikte nasıl kullanacağınızı göstereceğiz. Bu blog, hedef kitle olarak iş analistleri, veri mühendisleri, veri bilimcileri ve R Dili ile Amazon Redshift kullanan tüm geliştiriciler ile Amazon SageMaker dili üzerinde Rstudio'ya odaklanmaktadır.

Amazon Redshift ile geleneksel SageMaker Studio deneyimini kullanmak istiyorsanız bkz. Bir Amazon SageMaker Jupyter not defterinden etkileşim kurmak için Amazon Redshift Data API'yi kullanma.

Çözüme genel bakış

Bugünkü blogda, aşağıdaki adımları uygulayacağız:

  1. Numune deposunu gerekli paketlerle klonlama.
  2. Güvenli bir ODBC bağlantısıyla Amazon Redshift'e bağlanma (ODBC, RStudio için tercih edilen protokoldür).
  3. SageMaker üzerinde RStudio aracılığıyla Amazon Redshift Serverless içindeki veriler üzerinde sorgular ve SageMaker API eylemleri çalıştırma

Bu süreç, aşağıdaki çözüm mimarisinde tasvir edilmiştir:

Çözüm yolu

Önkoşullar

Başlamadan önce, RStudio'yu Amazon SageMaker ve Amazon Redshift Serverless üzerinde kurmak için aşağıdakiler gibi tüm gereksinimlere sahip olduğunuzdan emin olun:

Gerekli altyapıyı oluşturmak için bir CloudFormation yığını kullanacağız.

Not: Halihazırda bir RStudio alanınız ve Amazon Redshift kümeniz varsa bu adımı atlayabilirsiniz.

Bu yığının başlatılması aşağıdaki kaynakları oluşturur:

  • 3 özel alt ağ
  • 1 Genel alt ağ
  • 1 NAT ağ geçidi
  • İnternet ağ geçidi
  • Amazon Redshift Sunucusuz küme
  • RStudio ile SageMaker etki alanı
  • SageMaker RStudio kullanıcı profili
  • SageMaker RStudio etki alanı yürütmesi için IAM hizmet rolü
  • SageMaker RStudio kullanıcı profili yürütmesi için IAM hizmet rolü

Bu şablon, bir Bölgede çalışmak üzere tasarlanmıştır (örn. us-east-1, us-west-2) üç Erişilebilirlik Alanı, SageMaker üzerinde RStudio ve Amazon Redshift Serverless ile. Bölgenizin bu kaynaklara erişimi olduğundan emin olun veya şablonları buna göre değiştirin.

Basın Yığını Başlat yığını oluşturmak için düğmesine basın.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

  1. Üzerinde Yığın oluştur sayfasını seçin Sonraki.
  2. Üzerinde Yığın ayrıntılarını belirtme sayfasında, yığınınız için bir ad verin ve kalan seçenekleri varsayılan olarak bırakın, ardından Sonraki.
  3. Üzerinde Yığın seçeneklerini yapılandırma sayfasında, seçenekleri varsayılan olarak bırakın ve Sonraki.
  4. Üzerinde İnceleme sayfası, Seçin
  • AWS CloudFormation'ın özel adlarla IAM kaynakları oluşturabileceğini kabul ediyorum
  • AWS CloudFormation'ın şu yeteneği gerektirebileceğini kabul ediyorum: CAPABILITY_AUTO_EXPANDonay kutuları ve seçin Gönder.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Şablon beş yığın oluşturacaktır.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Yığın durumu bir kez CREATE_COMPLETE, Amazon Redshift Serverless konsoluna gidin. Bu, bulutta analitiği her ölçekte yüksek performansla çalıştırmayı son derece kolaylaştıran yeni bir yetenektir. Sadece verilerinizi yükleyin ve sorgulamaya başlayın. Kümeler kurmaya ve yönetmeye gerek yoktur.

not: Amazon Redshift ve RStudio'yu Amazon SageMaker'a entegre eden bu blogda gösterilen model, Amazon Redshift dağıtım modelinden (sunucusuz veya geleneksel küme) bağımsız olarak aynı olacaktır.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Amazon Redshift Serverless'ta veri yükleme

CloudFormation komut dosyası, adlı bir veritabanı oluşturdu. sagemaker. Bu veritabanını, RStudio kullanıcısının sorgulaması için tablolarla dolduralım. Bir SQL düzenleyici sekmesi oluşturun ve sagemaker veritabanı seçilir. biz kullanıyor olacağız sentetik kredi kartı işlem verileri veritabanımızda tablolar oluşturmak için. Bu veriler, SageMaker örnek tablo veri kümelerinin bir parçasıdır s3://sagemaker-sample-files/datasets/tabular/synthetic_credit_card_transactions.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Sorgu düzenleyicide aşağıdaki sorguyu çalıştıracağız. Bu üç tablo üretecek, kartlar, işlemler, ve kullanıcılar.

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;

Sorgu düzenleyicinin sol bölmesinde üç tablo görerek sorgunun başarıyla çalıştığını doğrulayabilirsiniz.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Tüm tablolar doldurulduktan sonra SageMaker RStudio'ya gidin ve bir ml.m5.xlarge örneğinde RSession temel görüntüsüyle yeni bir oturum başlatın.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Oturum başlatıldıktan sonra Amazon Redshift Serverless veritabanımızla bağlantı oluşturmak için bu kodu çalıştıracağız.

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)

Yapay şemadaki tabloları görüntülemek için sorgu düzenleyici aracılığıyla Amazon Redshift'te erişim izni vermeniz gerekir.

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

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

RStudio Bağlantılar bölmesi şunu göstermelidir: sagemaker şema sentetik ve tablo kartları, işlemler, kullanıcılar ile veritabanı.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

1,000 kaydı görüntülemek için tabloların yanındaki tablo simgesine tıklayabilirsiniz.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Not: Projede bulunabilen önceden oluşturulmuş tüm kod blokları ile önceden oluşturulmuş bir R Markdown dosyası oluşturduk. GitHub repo.

Şimdi kullanalım DBI paket işlevi dbListTables() mevcut tabloları görüntülemek için.

dbListTables(con)

Veritabanına bir SQL sorgusu iletmek için dbGetQuery()'yi kullanın.

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

Ayrıca kullanabiliriz dbplyr ve dplyr veritabanında sorgu yürütmek için paketler. Haydi count() İşlemler tablosunda kaç işlem var. Ama önce bu paketleri kurmamız gerekiyor.

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

Kullan tbl() şemayı belirtirken işlev.

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

Her tablo için satır sayısını sayalım.

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

Yani 2,000 kullanıcımız var; 6,146 kart; ve 24,386,900 işlem. Tabloları konsolda da görebiliriz.

transactions_tbl

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Ayrıca ne olduğunu da görebiliriz dplyr fiiller kaputun altında yapıyor.

show_query(transactions_tbl)

Yıllara göre işlem sayısını görsel olarak inceleyelim.

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 ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.

Veritabanındaki verileri de şöyle özetleyebiliriz:

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

Kart bilgilerini kullanarak dolandırıcılığı görüntülemek istediğimizi varsayalım. Sadece tabloları birleştirmemiz ve ardından onları niteliğe göre gruplamamız gerekiyor.

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

Şimdi makine öğrenmesi için kullanılabilecek bir veri seti hazırlayalım. Sütunların yalnızca bir alt kümesini tutarken Discover kredi kartlarını içerecek şekilde işlem verilerini filtreleyelim.

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)

Şimdi aşağıdaki dönüşümleri kullanarak biraz temizlik yapalım:

  • dönüştürmek is_fraud ikili özniteliğe
  • İşlem dizesini şuradan kaldır: use_chip ve yazmak için yeniden adlandırın
  • Yıl, ay ve günü bir veri nesnesinde birleştirin
  • Miktardan $ çıkarın ve sayısal bir veri türüne dönüştürün
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)

Artık veri setimizi filtreleyip temizledik, bu veri setini yerel RAM'de toplamaya hazırız.

discover <- collect(discover_tbl)
summary(discover)

Artık, özellikler oluşturmaya ve modeller uydurmaya başlamak için çalışan bir veri setimiz var. Bu blogda bu adımları ele almayacağız, ancak SageMaker'da RStudio'da model oluşturma hakkında daha fazla bilgi edinmek istiyorsanız bkz. Veri Bilimciler için Amazon SageMaker'da Tam Yönetilen RStudio Duyurusu.

Temizlemek

Yinelenen maliyetleri önlemek amacıyla kaynakları temizlemek için kök CloudFormation şablonunu silin. Ayrıca oluşturulan tüm EFS bağlantılarını ve oluşturulan tüm S3 gruplarını ve nesneleri silin.

Sonuç

Bulutta büyük veri kümeleriyle çalışırken veri analizi ve modelleme zor olabilir. Amazon Redshift, kullanıcıların bu görevleri gerçekleştirmesine yardımcı olabilecek popüler bir veri ambarıdır. Veri analizi için en yaygın kullanılan tümleşik geliştirme ortamlarından (IDE'ler) biri olan RStudio, genellikle R dili ile birlikte kullanılır. Bu blog gönderisinde, büyük veri kümeleri üzerinde verimli bir şekilde analiz gerçekleştirmek için SageMaker üzerinde Amazon Redshift ve RStudio'nun birlikte nasıl kullanılacağını gösterdik. Kullanıcılar, SageMaker üzerinde RStudio'yu kullanarak SageMaker'ın tam olarak yönetilen altyapısından, erişim kontrolünden, ağ oluşturma ve güvenlik özelliklerinden faydalanabilir ve aynı zamanda Amazon Redshift ile entegrasyonu basitleştirebilir. Bu iki aracı birlikte kullanma hakkında daha fazla bilgi edinmek isterseniz, diğer blog gönderilerimize ve kaynaklarımıza göz atın. Ayrıca kendiniz için SageMaker ve Amazon Redshift üzerinde RStudio kullanmayı deneyebilir ve veri analizi ve modelleme görevlerinizde size nasıl yardımcı olabileceklerini görebilirsiniz.

Lütfen geri bildiriminizi bu bloga ekleyin veya web sitesinde bir çekme isteği oluşturun. GitHub.


Yazarlar Hakkında

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.Ryan Garner AWS Profesyonel Hizmetlerine sahip bir Veri Bilimcisidir. AWS müşterilerinin Veri Bilimi ve Makine Öğrenimi sorunlarını çözmeleri için R'yi kullanmalarına yardımcı olma konusunda tutkulu.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.Raj Pathak Finansal Hizmetler (Sigorta, Bankacılık, Sermaye Piyasaları) ve Makine Öğrenimi alanlarında uzmanlaşmış Kıdemli Çözüm Mimarı ve Teknoloji Uzmanıdır. Doğal Dil İşleme (NLP), Büyük Dil Modelleri (LLM) ve Makine Öğrenimi altyapı ve operasyon projelerinde (MLOps) uzmanlaşmıştır.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.Aditi Rajniş Waterloo Üniversitesi'nde ikinci sınıf yazılım mühendisliği öğrencisidir. İlgi alanları arasında bilgisayar görüşü, doğal dil işleme ve uç bilgi işlem yer alır. Ayrıca topluluk temelli STEM sosyal yardım ve savunuculuğu konusunda tutkulu. Boş zamanlarında kaya tırmanışı yaparken, piyano çalarken veya mükemmel çörek pişirmeyi öğrenirken bulunabilir.

Amazon Redshift ve RStudio'yu Amazon SageMaker PlatoBlockchain Veri Zekasına bağlama. Dikey Arama. Ai.Saiteja Pudi AWS'de Dallas, Tx merkezli bir Çözüm Mimarıdır. 3 yılı aşkın bir süredir AWS'de çalışıyor ve müşterilerin güvenilir danışmanları olarak AWS'nin gerçek potansiyelini elde etmelerine yardımcı oluyor. Veri Bilimi ve Makine Öğrenimi ile ilgilenen bir uygulama geliştirme geçmişinden geliyor.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi