Öğretici: Azure HDInsight'ta satış içgörüleri türetmek için uçtan uca veri işlem hattı oluşturma
Bu öğreticide ayıklama, dönüştürme ve yükleme (ETL) işlemleri gerçekleştiren uçtan uca bir veri işlem hattı oluşturacaksınız. İşlem hattı, verileri sorgulamak ve işlemek için Azure HDInsight üzerinde çalışan Apache Spark ve Apache Hive kümelerini kullanır. Ayrıca veri depolama için Azure Data Lake Storage 2. Nesil ve görselleştirme için Power BI gibi teknolojileri de kullanırsınız.
Bu veri işlem hattı çeşitli depolardan verileri birleştirir, istenmeyen verileri kaldırır, yeni veriler ekler ve iş içgörülerini görselleştirmek için verileri depolama alanınıza geri yükler. ETL işlem hatları hakkında daha fazla bilgi için bkz . Büyük ölçekte ayıklama, dönüştürme ve yükleme.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Azure CLI, en az sürüm 2.2.0. Bkz . Azure CLI'yi yükleme.
- jq, bir komut satırı JSON işlemcisi. Bkz. jq web sitesi.
- Azure yerleşik rolünün bir üyesi: Sahip.
- Azure Data Factory işlem hattını tetikleme amacıyla PowerShell kullanıyorsanız Az PowerShell modülüne ihtiyacınız vardır.
- Bu öğreticinin sonunda iş içgörülerini görselleştirmek için Power BI Desktop .
Bu bölümde kaynakların nasıl oluşturulacağı gösterilmektedir.
Azure aboneliğinizde oturum açın. Azure Cloud Shell kullanmayı planlıyorsanız kod bloğunun sağ üst köşesindeki Deneyin'i seçin. Aksi takdirde, aşağıdaki komutu girin:
az login # If you have multiple subscriptions, set the one to use # az account set --subscription "SUBSCRIPTIONID"
Azure rol sahibi üyesi olduğunuzdan emin olun. değerini hesabınızla değiştirin
user@contoso.com
ve komutunu girin:az role assignment list \ --assignee "user@contoso.com" \ --role "Owner"
Kayıt döndürülmezse, üye değilsinizdir ve bu öğreticiyi tamamlayamazsınız.
HDInsight satış içgörüleri ETL deposundan bu öğreticinin verilerini ve betiklerini indirin. Aşağıdaki komutu girin:
git clone https://github.com/Azure-Samples/hdinsight-sales-insights-etl.git cd hdinsight-sales-insights-etl
Oluşturulduğuna
salesdata scripts templates
emin olun. Aşağıdaki komutla doğrulayın:ls
komutunu girerek tüm betikler için yürütme izinleri ekleyin:
chmod +x scripts/*.sh
Kaynak grubu için değişkenleri ayarlama. öğesini varolan veya yeni bir kaynak grubunun adıyla değiştirin
RESOURCE_GROUP_NAME
ve komutunu girin:RESOURCE_GROUP="RESOURCE_GROUP_NAME"
Betiği çalıştırın. değerini istediğiniz değerle değiştirin
LOCATION
ve komutunu girin:./scripts/resources.sh $RESOURCE_GROUP LOCATION
Hangi bölgeyi belirteceğinizden emin değilseniz az account list-locations komutunu kullanarak aboneliğiniz için desteklenen bölgelerin listesini alın.
komutu aşağıdaki kaynakları dağıtır:
- bir Azure Blob Depolama hesabı. Bu hesap, şirket satış verilerini barındırıyor.
- Data Lake Storage 2. Nesil hesabı. Bu hesap, her iki HDInsight kümesi için de depolama hesabı görevi görür. Data Lake Storage 2. Nesil ile Azure HDInsight tümleştirmesinde HDInsight ve Data Lake Storage 2. Nesil hakkında daha fazla bilgi edinin.
- Kullanıcı tarafından atanan yönetilen kimlik. Bu hesap HDInsight kümelerine Data Lake Storage 2. Nesil hesabına erişim verir.
- Apache Spark kümesi. Bu küme ham verileri temizlemek ve dönüştürmek için kullanılır.
- Apache Hive Etkileşimli Sorgu kümesi. Satış verilerini sorgulamak ve Power BI ile görselleştirmek için bu kümeyi kullanabilirsiniz.
- Ağ güvenlik grubu kuralları tarafından desteklenen bir Azure sanal ağı. Bu sanal ağ, kümelerin iletişim kurmasına olanak tanır ve iletişimlerinin güvenliğini sağlar.
Küme oluşturma işlemi yaklaşık 20 dakika sürebilir.
Kümelere Secure Shell (SSH) protokolü erişimi için varsayılan paroladır Thisisapassword1
. Parolayı değiştirmek istiyorsanız, dosyaya ./templates/resourcesparameters_remainder.json
gidin ve , sparkClusterLoginPassword
, llapClusterLoginPassword
ve llapsshPassword
parametrelerinin sparksshPassword
parolasını değiştirin.
Dağıtımınızın durumunu denetlemek istiyorsanız Azure portalında kaynak grubuna gidin. Ayarlar'ın altında Dağıtımlar'ı seçin. Ardından dağıtımınızı seçin. Burada başarıyla dağıtılan kaynakları ve devam eden kaynakları görebilirsiniz.
Kümelerin adlarını görüntülemek için aşağıdaki komutu girin:
SPARK_CLUSTER_NAME=$(cat resourcesoutputs_remainder.json | jq -r '.properties.outputs.sparkClusterName.value') LLAP_CLUSTER_NAME=$(cat resourcesoutputs_remainder.json | jq -r '.properties.outputs.llapClusterName.value') echo "Spark Cluster" $SPARK_CLUSTER_NAME echo "LLAP cluster" $LLAP_CLUSTER_NAME
Azure depolama hesabını ve erişim anahtarını görüntülemek için aşağıdaki komutu girin:
BLOB_STORAGE_NAME=$(cat resourcesoutputs_storage.json | jq -r '.properties.outputs.blobStorageName.value') blobKey=$(az storage account keys list \ --account-name $BLOB_STORAGE_NAME \ --resource-group $RESOURCE_GROUP \ --query [0].value -o tsv) echo $BLOB_STORAGE_NAME echo $BLOB_KEY
Data Lake Storage 2. Nesil hesabını ve erişim anahtarını görüntülemek için aşağıdaki komutu girin:
ADLSGEN2STORAGENAME=$(cat resourcesoutputs_storage.json | jq -r '.properties.outputs.adlsGen2StorageName.value') ADLSKEY=$(az storage account keys list \ --account-name $ADLSGEN2STORAGENAME \ --resource-group $RESOURCE_GROUP \ --query [0].value -o tsv) echo $ADLSGEN2STORAGENAME echo $ADLSKEY
Azure Data Factory, Azure Pipelines'ın otomatikleştirilmesine yardımcı olan bir araçtır. Bu görevleri yerine getirmenin tek yolu bu değildir, ancak işlemleri otomatikleştirmenin harika bir yoludur. Data Factory hakkında daha fazla bilgi için Data Factory belgelerine bakın.
Bu veri fabrikasında iki etkinliği olan bir işlem hattı vardır:
- İlk etkinlik, veri alımını taklit etmek için verileri Blob Depolama'dan Data Lake Storage 2. Nesil depolama hesabına kopyalar.
- İkinci etkinlik Spark kümesindeki verileri dönüştürür. Betik, istenmeyen sütunları kaldırarak verileri dönüştürür. Ayrıca, tek bir işlemin oluşturduğu geliri hesaplayan yeni bir sütun ekler.
Data Factory işlem hattınızı ayarlamak için aşağıdaki komutu çalıştırın. Dizinde hdinsight-sales-insights-etl
olmanız gerekir.
BLOB_STORAGE_NAME=$(cat resourcesoutputs_storage.json | jq -r '.properties.outputs.blobStorageName.value')
ADLSGEN2STORAGENAME=$(cat resourcesoutputs_storage.json | jq -r '.properties.outputs.adlsGen2StorageName.value')
./scripts/adf.sh $RESOURCE_GROUP $ADLSGEN2STORAGENAME $BLOB_STORAGE_NAME
Bu betik aşağıdaki eylemleri gerçekleştirir:
- Data Lake Storage 2. Nesil depolama hesabında izinleri olan
Storage Blob Data Contributor
bir hizmet sorumlusu oluşturur. - Data Lake Storage 2. Nesil dosya sistemi REST API'sine yönelik istekleri yetkilendirmek
POST
için bir kimlik doğrulama belirteci alır. - ve
query.hql
dosyalarında Data Lake Storage 2. Nesil depolama hesabınızınsparktransform.py
gerçek adını doldurur. - Data Lake Storage 2. Nesil ve Blob Depolama hesapları için depolama anahtarlarını alır.
- İlişkili bağlı hizmetleri ve etkinlikleriyle bir Data Factory işlem hattı oluşturmak için başka bir kaynak dağıtımı oluşturur. Bağlı hizmetlerin depolama hesaplarına doğru şekilde erişebilmesi için depolama anahtarlarını şablon dosyasına parametre olarak geçirir.
Bu bölümde veri işlem hattının nasıl çalıştırılacakları gösterilmektedir.
Oluşturduğunuz Data Factory işlem hattındaki ilk etkinlik, verileri Blob Depolama'dan Data Lake Storage 2. Nesil taşır. İkinci etkinlik, Spark dönüşümlerini verilere uygular ve dönüştürülen .csv dosyalarını yeni bir konuma kaydeder. İşlem hattının tamamının tamamlanması birkaç dakika sürebilir.
Data Factory adını almak için aşağıdaki komutu girin:
cat resourcesoutputs_adf.json | jq -r '.properties.outputs.factoryName.value'
İşlem hattını tetiklemeniz için iki seçeneğiniz vardır. Şunları yapabilirsiniz:
PowerShell'de Data Factory işlem hattını tetikleme. ve
DataFactoryName
değerlerini uygun değerlerle değiştirinRESOURCEGROUP
ve aşağıdaki komutları çalıştırın:# If you have multiple subscriptions, set the one to use # Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>" $resourceGroup="RESOURCEGROUP" $dataFactory="DataFactoryName" $pipeline =Invoke-AzDataFactoryV2Pipeline ` -ResourceGroupName $resourceGroup ` -DataFactory $dataFactory ` -PipelineName "IngestAndTransform" Get-AzDataFactoryV2PipelineRun ` -ResourceGroupName $resourceGroup ` -DataFactoryName $dataFactory ` -PipelineRunId $pipeline
İlerleme durumunu izlemek için gerektiğinde yeniden yürütebilirsiniz
Get-AzDataFactoryV2PipelineRun
.İsterseniz:
Veri fabrikasını açın ve Yazar ve İzleyici'yi seçin. Portaldan
IngestAndTransform
işlem hattını tetikleme. Portal aracılığıyla işlem hatlarını tetikleme hakkında bilgi için bkz . Azure Data Factory kullanarak HDInsight'ta isteğe bağlı Apache Hadoop kümeleri oluşturma.
İşlem hattının çalıştığını doğrulamak için aşağıdaki adımlardan birini uygulayın:
- Portal aracılığıyla veri fabrikanızdaki İzleyici bölümüne gidin.
- Azure Depolama Gezgini'da Data Lake Storage 2. Nesil depolama hesabınıza gidin.
files
Dosya sistemine gidin ve ardından klasöretransformed
gidin. İşlem hattının başarılı olup olmadığını görmek için klasör içeriğini denetleyin.
HDInsight kullanarak verileri dönüştürmenin diğer yolları için Jupyter Not Defteri'ni kullanma hakkındaki bu makaleye bakın.
query.hql
Güvenli kopyalama (SCP) komutunu kullanarak dosyayı LLAP kümesine kopyalayın. Komutunu girin:LLAP_CLUSTER_NAME=$(cat resourcesoutputs_remainder.json | jq -r '.properties.outputs.llapClusterName.value') scp scripts/query.hql sshuser@$LLAP_CLUSTER_NAME-ssh.azurehdinsight.net:/home/sshuser/
Anımsatıcı: Varsayılan paroladır
Thisisapassword1
.LLAP kümesine erişmek için SSH kullanın. Aşağıdaki komutu girin:
ssh sshuser@$LLAP_CLUSTER_NAME-ssh.azurehdinsight.net
Betiği çalıştırmak için aşağıdaki komutu kullanın:
beeline -u 'jdbc:hive2://localhost:10001/;transportMode=http' -f query.hql
Bu betik, Power BI'dan erişebileceğiniz Etkileşimli Sorgu kümesinde yönetilen bir tablo oluşturur.
Power BI Desktop açın.
Menüde Daha fazla veri>al... seçeneğine gidin.>Azure>HDInsight Etkileşimli Sorgusu.
Bağlan'ı seçin.
HDInsight Etkileşimli Sorgu iletişim kutusunda:
- Sunucu metin kutusuna LLAP kümenizin adını biçiminde https://LLAPCLUSTERNAME.azurehdinsight.netgirin.
- Veritabanı metin kutusuna varsayılan değerini girin.
- Tamam'ı seçin.
AzureHive iletişim kutusunda:
- Kullanıcı adı metin kutusuna admin yazın.
- Parola metin kutusuna Thisisapassword1 yazın.
- Bağlan'ı seçin.
Gezgin'de satış veya sales_raw seçerek verilerin önizlemesini görüntüleyin. Veriler yüklendikten sonra, oluşturmak istediğiniz panoyla denemeler yapabilirsiniz. Power BI panolarını kullanmaya başlamak için aşağıdaki makalelere bakın:
Bu uygulamayı kullanmaya devam etmeyecekseniz, ücretlendirilmemesi için tüm kaynakları silin.
Kaynak grubunu kaldırmak için komutunu girin:
az group delete -n $RESOURCE_GROUP
Hizmet sorumlusunu kaldırmak için şu komutları girin:
SERVICE_PRINCIPAL=$(cat serviceprincipal.json | jq -r '.name') az ad sp delete --id $SERVICE_PRINCIPAL