1. Giriş
Son Güncelleme Tarihi: 28.02.2020
Bu codelab'de, CSV biçimli sağlık hizmeti verilerini BigQuery'ye gerçek zamanlı olarak aktarmak için kullanılacak bir veri kullanımı kalıbı gösterilmiştir. Bu laboratuvarda Cloud Data fusion Gerçek Zamanlı Veri ardışık düzenini kullanacağız. Sağlık alanında gerçekçi test verileri oluşturuldu ve sizin için Google Cloud Storage paketinde (gs://hcls_testing_data_fhir_10_patients/csv/) kullanıma sunuldu.
Bu kod laboratuvarında şunları öğreneceksiniz:
- Cloud Data Fusion kullanarak CSV verilerini (gerçek zamanlı yükleme) Pub/Sub'dan BigQuery'ye aktarma.
- Sağlık verilerini gerçek zamanlı olarak yüklemek, dönüştürmek ve maskelemek için Cloud Data Fusion'da görsel olarak bir veri entegrasyonu ardışık düzeni derleme.
Bu demoyu çalıştırmak için nelere ihtiyacınız var?
- Bir GCP projesine erişiminiz olmalıdır.
- GCP projesinde size Sahip rolü atanmalıdır.
- Başlık da dahil olmak üzere CSV biçiminde sağlık hizmetleri verileri.
GCP projeniz yoksa yeni bir GCP projesi oluşturmak için bu adımları uygulayın.
CSV biçimindeki sağlık hizmetleri verileri, gs://hcls_testing_data_fhir_10_patients/csv/ adresindeki GCS paketine önceden yüklenmiştir. Her CSV kaynak dosyasının benzersiz bir şema yapısı vardır. Örneğin, Patients.csv, Providers.csv'den farklı bir şemaya sahiptir. Önceden yüklenmiş şema dosyaları gs://hcls_testing_data_fhir_10_patients/csv_schemas adresinde bulunabilir.
Yeni bir veri kümesine ihtiyacınız olursa dilediğiniz zaman SyntheaTM'yi kullanarak veri kümesi oluşturabilirsiniz. Ardından, giriş verilerini kopyala adımında paketten kopyalamak yerine dosyayı GCS'ye yükleyin.
2. GCP Proje Kurulumu
Ortamınız için kabuk değişkenlerini başlatın.
PROJECT_ID'yi bulmak için Projeleri tanımlama bölümüne bakın.
<!-- CODELAB: Initialize shell variables -> <!-- Your current GCP Project ID -> export PROJECT_ID=<PROJECT_ID> <!-- A new GCS Bucket in your current Project - INPUT -> export BUCKET_NAME=<BUCKET_NAME> <!-- A new BQ Dataset ID - OUTPUT -> export DATASET_ID=<DATASET_ID>
gsutil aracını kullanarak giriş verilerini ve hata günlüklerini depolamak için bir GCS paketi oluşturun.
gsutil mb -l us gs://$BUCKET_NAME
Sentetik veri kümesine erişim elde edin.
- Cloud Console'a giriş yapmak için kullandığınız e-posta adresinden hcls-solutions-external+subscribe@google.com adresine katılma isteğinde bulunan bir e-posta gönderin.
- İşlemi nasıl onaylayacağınıza ilişkin talimatları içeren bir e-posta alacaksınız.
- Gruba katılmak için e-postayı yanıtlama seçeneğini kullanın.
düğmesini TIKLAMAYIN.
- Onay e-postasını aldıktan sonra, codelab'de bir sonraki adıma geçebilirsiniz.
Giriş verilerini kopyala.
gsutil -m cp -r gs://hcls_testing_data_fhir_10_patients/csv gs://$BUCKET_NAME
Bir BigQuery veri kümesi oluşturun.
bq mk --location=us --dataset $PROJECT_ID:$DATASET_ID
Google Cloud SDK'yı yükleyip başlatın ve Pub veya Sub konusu ve abonelikleri oluşturun.
gcloud init gcloud pubsub topics create your-topic gcloud pubsub subscriptions create --topic your-topic your-sub
3. Cloud Data Fusion Ortamı Kurulumu
Cloud Data Fusion API'sini etkinleştirmek ve gerekli izinleri vermek için şu adımları uygulayın:
API'leri etkinleştirin.
- GCP Console API Kitaplığı'na gidin.
- Proje listesinden projenizi seçin.
- API Kitaplığı'nda etkinleştirmek istediğiniz API'yi seçin ( Cloud Data Fusion API, Cloud Pub/Sub API). API'yi bulma konusunda yardıma ihtiyacınız varsa arama alanını ve filtreleri kullanın.
- API sayfasında ETKİNLEŞTİR'i tıklayın.
Cloud Data Fusion örneği oluşturun.
- GCP Console'da proje kimliğinizi seçin.
- Soldaki menüden Data Fusion'ı seçin, ardından sayfanın ortasındaki ÖRNEK OLUŞTUR düğmesini (1. oluşturma) veya üst menüde ÖRNEK OLUŞTUR düğmesini (ek oluşturma) tıklayın.
- Örnek adını girin. Enterprise'ı seçin.
- OLUŞTUR düğmesini tıklayın.
Örnek izinlerini ayarlayın.
Örnek oluşturduktan sonra, projenizdeki örnek izinleriyle ilişkili hizmet hesabına izin vermek için aşağıdaki adımları uygulayın:
- Örnek adını tıklayarak örnek ayrıntıları sayfasına gidin.
- Hizmet hesabını kopyalayın.
- Projenizin IAM sayfasına gidin.
- IAM izinleri sayfasında, Ekle düğmesini tıklayarak hizmet hesabına Cloud Data Fusion API Hizmet Aracısı rolünü verin. "Hizmet hesabı"nı yapıştırın Yeni üyeler alanına girin ve Service Management -> Cloud Data Fusion API Sunucu Aracısı rolü.
- Pub/Sub Abone rolü eklemek için + Başka bir rol ekle'yi (veya Cloud Data Fusion API Hizmet Aracısı'nı Düzenle) tıklayın.
- Kaydet'i tıklayın.
Bu adımlar tamamlandıktan sonra, Cloud Data Fusion örnekleri sayfasında Örneği Görüntüle bağlantısını veya bir örneğin ayrıntılar sayfasında Cloud Data Fusion'ı kullanmaya başlayabilirsiniz.
Güvenlik duvarı kuralını ayarlayın.
- GCP Console'a gidin -> VPC Ağı -> default-allow-ssh kuralının mevcut olup olmadığını kontrol eden güvenlik duvarı kuralları.
- Değilse tüm giriş SSH trafiğine varsayılan ağa izin veren bir güvenlik duvarı kuralı ekleyin.
Komut satırını kullanarak:
gcloud beta compute --project={PROJECT_ID} firewall-rules create default-allow-ssh --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --enable-logging
Kullanıcı arayüzünü kullanma: Create Firewall Rule (Güvenlik Duvarı Kuralı Oluştur) seçeneğini tıklayın ve bilgileri girin:
4. Ardışık düzen için düğümler derleme
Artık GCP'de Cloud Data Fusion ortamına sahip olduğumuza göre, aşağıdaki adımları uygulayarak Cloud Data Fusion'da Veri ardışık düzenlerini oluşturmaya başlayalım:
- Cloud Data Fusion penceresinde, İşlem sütunundaki Örneği Görüntüle bağlantısını tıklayın. Başka bir sayfaya yönlendirileceksiniz. Cloud Data Fusion örneğini açmak için sağlanan url'yi tıklayın. "Turu Başlat"ı tıklama seçiminiz veya "Hayır, teşekkürler" düğmesini seçin.
- "Hamburger"i genişletin menüsünde, Ardışık düzen -> öğesini seçin. Liste 1
- Sağ üst köşedeki yeşil + düğmesini tıklayın ve Ardışık düzen oluştur'u seçin. Dilerseniz "Oluştur"u da tıklayabilirsiniz. Ardışık düzen bağlantısına sahiptir.
- Ardışık düzen stüdyosu göründükten sonra sol üstte, açılır listeden Veri Ardışık Düzeni - Gerçek Zamanlı'yı seçin.
- Veri Ardışık Düzenleri kullanıcı arayüzünde, sol panelde Filtre, Kaynak, Dönüşüm, Analiz, Havuz, Hata İşleyiciler ve Uyarılar gibi farklı bölümler göreceksiniz. Bu bölümlerde, ardışık düzen için düğüm veya düğüm seçebilirsiniz.
Bir Kaynak düğümü seçin.
- Soldaki Eklenti paletinde yer alan Kaynak bölümünün altında, Veri Ardışık Düzenleri kullanıcı arayüzünde görünen Google Cloud PubSub düğümünü çift tıklayın.
- Fare imlecini PubSub kaynak düğümünün üzerine getirin ve Özellikler'i tıklayın.
- Zorunlu alanları doldurun. Aşağıdaki alanları ayarlayın:
- Etiket = {herhangi bir metin}
- Referans adı = {herhangi bir metin}
- Proje kimliği = otomatik algıla
- Abonelik = Pub/Sub Konusu Oluşturun bölümünde oluşturulan abonelik (örneğin, aboneniz)
- Konu = Pub/Sub konusu oluşturun bölümünde oluşturulan konu (örneğin, konunuz)
- Ayrıntılı açıklama için Belgeler'i tıklayın. Tüm giriş bilgilerini doğrulamak için Doğrula düğmesini tıklayın. Yeşil "Hata bulunamadı" başarı anlamına gelir.
- Pub/Sub Özellikleri'ni kapatmak için X düğmesini tıklayın.
Dönüşüm düğümünü seçin.
- Soldaki Eklenti paletinde bulunan Dönüşüm bölümünde, Veri Ardışık Düzenleri kullanıcı arayüzünde görünen Projeksiyon düğümünü çift tıklayın. Pub/Sub kaynak düğümünü Projection dönüşüm düğümüne bağlayın.
- Fare imlecini Projeksiyon düğümünün üzerine getirin ve Özellikler'i tıklayın.
- Zorunlu alanları doldurun. Aşağıdaki alanları ayarlayın:
- Dönüştür = mesajı bayt türünden dize türüne dönüştürür.
- Kaldırılacak alanlar = {herhangi bir alan}
- Saklanacak alanlar = {mesaj, zaman damgası ve özellikler} (örneğin, Pub/Sub'dan gönderilen özellikler: key=‘filename':value=‘hastalar’)
- Yeniden adlandırılacak alanlar = {mesaj, timestamp}
- Ayrıntılı açıklama için Belgeler'i tıklayın. Tüm giriş bilgilerini doğrulamak için Doğrula düğmesini tıklayın. Yeşil "Hata bulunamadı" başarı anlamına gelir.
- Soldaki Eklenti paletinde yer alan Dönüşüm bölümünde, Veri Ardışık Düzenleri kullanıcı arayüzünde görünen Wrangler düğümünü çift tıklayın. Projection dönüşüm düğümünü Wrangler dönüşüm düğümüne bağlayın. Fare imlecini Wrangler düğümünün üzerine getirin ve Properties'i (Özellikler) tıklayın.
- İşlemler açılır menüsünü tıklayın ve kayıtlı bir şemayı (örneğin: gs://hcls_testing_data_fhir_10_patients/csv_schemas/ şema (Patients).json) içe aktarmak için İçe aktar'ı seçin.
- Son alanın yanındaki + düğmesini tıklayarak Çıktı Şeması'nda TIMESTAMP alanını (varsa) ekleyin ve "Null" seçeneğini işaretleyin. seçin.
- Zorunlu alanları doldurun. Aşağıdaki alanları ayarlayın:
- Etiket = {herhangi bir metin}
- Giriş alanı adı = {*}
- PubSub kaynak düğümünden gönderilen her kayıt veya mesaj türünü (örneğin, hastalar, sağlayıcılar, alerjiler) ayırt etmek için Precondition = {attributes.get("filename") != "patients"}.
- Ayrıntılı açıklama için Belgeler'i tıklayın. Tüm giriş bilgilerini doğrulamak için Doğrula düğmesini tıklayın. Yeşil "Hata bulunamadı" başarı anlamına gelir.
- Sütun adlarını tercih ettiğiniz şekilde belirleyin ve ihtiyacınız olmayan alanları bırakın. Aşağıdaki kod snippet'ini kopyalayıp Yemek Tarifi kutusuna yapıştırın.
drop attributes parse-as-csv :body ',' false drop body set columns TIMESTAMP,Id,BIRTHDATE,DEATHDATE,SSN,DRIVERS,PASSPORT,PREFIX,FIRST,LAST,SUFFIX,MAIDEN,MARITAL,RACE,ETHNICITY,GENDER,BIRTHPLACE,ADDRESS,CITY,STATE,ZIP mask-number SSN xxxxxxx####
- Veri maskeleme ve kimlik gizleme için Batch-Codelab - CDF üzerinden BigQuery'den BigQuery'ye başlıklı makaleyi inceleyin. Alternatif olarak, Yemek Tarifi kutusuna şu kod snippet'ini maske-numarası SSN xxxxxxx#### ekleyin
- Transform Properties (Dönüştürme Özellikleri) penceresini kapatmak için X düğmesini tıklayın.
Havuz düğümünü seçin.
- Soldaki Eklenti paletinde yer alan Havuz bölümünde, Veri Ardışık Düzeni kullanıcı arayüzünde gösterilen BigQuery düğümünü çift tıklayın. Wrangler dönüşüm düğümünü BigQuery havuz düğümüne bağlayın.
- BigQuery havuz düğümünün üzerine gelin ve Özellikler'i tıklayın.
- Zorunlu alanları doldurun:
- Etiket = {herhangi bir metin}
- Referans adı = {herhangi bir metin}
- Proje kimliği = otomatik algıla
- Veri kümesi = Geçerli projede kullanılan BigQuery veri kümesi (örneğin, DATASET_ID)
- Tablo = {table name}
- Ayrıntılı açıklama için Belgeler'i tıklayın. Tüm giriş bilgilerini doğrulamak için Doğrula düğmesini tıklayın. Yeşil "Hata bulunamadı" başarı anlamına gelir.
- BigQuery Özellikleri'ni kapatmak için X düğmesini tıklayın.
5. Gerçek zamanlı veri ardışık düzeni derleme
Önceki bölümde Cloud Data Fusion'da veri ardışık düzeni oluşturmak için gereken düğümleri oluşturduk. Bu bölümde gerçek ardışık düzeni derlemek için düğümleri bağlayacağız.
Bir ardışık düzendeki tüm düğümleri bağlama
- Bağlantı okunu sürükleyin > çift tıklayın ve hedef düğümün sol kenarına bırakın.
- Bir ardışık düzenin, aynı PubSub Kaynak düğümünden yayınlanmış mesajları alan birden fazla dalı olabilir.
- Ardışık düzene bir ad verin.
Bu kadar basit. Dağıtılacak ve çalıştırılacak ilk gerçek zamanlı veri ardışık düzeninizi oluşturdunuz.
Cloud Pub/Sub üzerinden mesaj gönderme
Pub/Sub kullanıcı arayüzünü kullanarak:
- GCP Console'a gidin -> Pub/Sub -> Konular'ı tıklayın, konunuzu seçin ve üst menüden MESAJ YAYINLA'yı tıklayın.
- Message (İleti) alanına aynı anda yalnızca bir kayıt satırı yerleştirin. +ÖZELLİK EKLE düğmesini tıklayın. Anahtar = dosya adı, Değer = <kayıt türü> sağlayın (örneğin hastalar, sağlayıcılar, alerjiler vb.).
- Mesajı göndermek için Yayınla düğmesini tıklayın.
gcloud komutunu kullanarak:
- Mesajı manuel olarak sağlayın.
gcloud pubsub topics publish <your-topic> --attribute <key>=<value> --message \ "paste one record row here"
- cat ve sed unix komutlarını kullanarak mesajı yarı otomatik olarak sağlayın. Bu komut, farklı parametrelerle tekrar tekrar çalıştırılabilir.
gcloud pubsub topics publish <your-topic> --attribute <key>=<value> --message \ "$(gsutil cat gs://$BUCKET_NAME/csv/<value>.csv | sed -n '#p')"
6. Ardışık Düzeni Yapılandırma, Dağıtma ve Çalıştırma
Veri ardışık düzenini geliştirdiğimize göre artık Cloud Data Fusion'da dağıtıp çalıştırabiliriz.
- Configure (Yapılandır) varsayılanını koruyun.
- Verileri önizlemek için Önizleme'yi tıklayın**.** Önceki pencereye dönmek için **Önizleme**'yi tekrar tıklayın. **ÇALIŞTIR**'ı tıklayarak ardışık düzeni Önizleme modunda da çalıştırabilirsiniz.
- Günlükleri görüntülemek için Günlükler'i tıklayın.
- Tüm değişiklikleri kaydetmek için Kaydet'i tıklayın.
- Yeni bir ardışık düzen oluştururken kaydedilen ardışık düzen yapılandırmasını içe aktarmak için Import'u (İçe aktar) tıklayın.
- Bir ardışık düzen yapılandırmasını dışa aktarmak için Dışa Aktar'ı tıklayın.
- Ardışık düzeni dağıtmak için Deploy'u (Dağıt) tıklayın.
- Dağıtımdan sonra Run'ı (Çalıştır) tıklayın ve ardışık düzenin çalışmasını bekleyin.
- Ardışık düzen çalıştırmasını istediğiniz zaman durdurmak için Stop'ı (Durdur) tıklayın.
- İşlemler düğmesinin altından Kopyala'yı seçerek ardışık düzeni kopyalayabilirsiniz.
- İşlemler düğmesinin altından Dışa Aktar'ı seçerek ardışık düzen yapılandırmasını dışa aktarabilirsiniz.
- Çalıştırma geçmişinin, kayıtların, hata günlüklerinin ve uyarıların grafiklerini görmek için Özet'i tıklayın.
7. Doğrulama
Bu bölümde veri ardışık düzeninin yürütülmesini doğrulayacağız.
- Ardışık düzenin başarıyla yürütüldüğünü ve sürekli çalıştığını doğrulayın.
- BigQuery tablolarının TIMESTAMP'e göre güncellenmiş kayıtlarla yüklendiğini doğrulayın. Bu örnekte, 25.06.2019 tarihinde Pub/Sub konusuna iki hasta kaydı veya mesajı ile bir alerji kaydı veya mesajı yayınlanmıştır.
bq query --nouse_legacy_sql 'select (select count(*) from \ '$PROJECT_ID.$DATASET_ID.Patients' where TIMESTAMP > "2019-06-25 \ 01:29:00.0000 UTC" ) as Patients, (select count(*) from \ '$PROJECT_ID.$DATASET_ID.Allergies' where TIMESTAMP > "2019-06-25 \ 01:29:00.0000 UTC") as Allergies;'
Waiting on bqjob_r14c8b94c1c0fe06a_0000016b960df4e1_1 ... (0s) Current status: DONE
+----------+-----------+
| Patients | Allergies |
+----------+-----------+
| 2 | 1 |
+----------+-----------+
- <Konunuz> adresinde yayınlanan mesajların doğrulandığını doğrulayın <aboneliğiniz> tarafından alındı abone olmanız gerekir.
gcloud pubsub subscriptions pull --auto-ack <your-sub>
Sonuçları görüntüleme
Gerçek zamanlı ardışık düzen çalışırken mesajlar Pub/Sub konusuna yayınlandıktan sonra sonuçları görüntülemek için:
- Tabloyu BigQuery kullanıcı arayüzünde sorgulayın. BIGQUERY Kullanıcı Arayüzüne GİT
- Aşağıdaki sorguyu kendi proje adınız, veri kümeniz ve tablonuza güncelleyin.
8. Temizleme
Bu eğiticide kullanılan kaynaklar için Google Cloud Platform hesabınızın ücretlendirilmesini önlemek amacıyla:
Eğiticiyi bitirdikten sonra, GCP'de oluşturduğunuz kaynakları temizleyebilirsiniz. Böylece bunlar kotayı kullanmaz ve gelecekte bunlar için faturalandırılmazsınız. Aşağıdaki bölümlerde bu kaynakların nasıl silineceği veya devre dışı bırakılacağı açıklanmaktadır.
BigQuery veri kümesini silme
Bu eğitim kapsamında oluşturduğunuz BigQuery veri kümesini silmek için bu talimatları uygulayın.
GCS Paketini Silme
Bu eğiticinin bir parçası olarak oluşturduğunuz GCS paketini silmek için bu talimatları uygulayın.
Cloud Data Fusion örneğini silme
Cloud Data Fusion örneğinizi silmek için bu talimatları uygulayın.
Projeyi silme
Faturalandırmayı ortadan kaldırmanın en kolay yolu, eğitim için oluşturduğunuz projeyi silmektir.
Projeyi silmek için:
- GCP Console'da Projeler sayfasına gidin. PROJELER SAYFASINA GİDİN
- Proje listesinde, silmek istediğiniz projeyi seçin ve Sil'i tıklayın.
- İletişim kutusuna proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın.
9. Tebrikler
Tebrikler, Cloud Data Fusion'ı kullanarak sağlık verilerini BigQuery'ye aktarmak için kod laboratuvarını başarıyla tamamladınız.
CSV verilerini Pub/Sub konusuna yayınlayıp BigQuery'ye yüklediniz.
Sağlık hizmetleri verilerini gerçek zamanlı olarak yüklemek, dönüştürmek ve maskelemek için görsel olarak bir veri entegrasyon ardışık düzeni derlediniz.
Artık Google Cloud Platform'da BigQuery ile Sağlık Hizmetleri Veri Analizi yolculuğunuza başlamak için gereken temel adımları biliyorsunuz.