Azure Stream Analytics ile sosyal medya analizi

Bu makalede gerçek zamanlı Twitter olaylarını Azure Event Hubs'a getirerek ve ardından Stream Analytics kullanarak analiz ederek sosyal medya yaklaşım analizi çözümü oluşturmayı öğreneceksiniz. Verileri analiz etmek ve sonuçları daha sonra kullanmak üzere depolamak için bir Azure Stream Analytics sorgusu yazar veya gerçek zamanlı içgörüler sağlamak üzere bir Power BI panosu oluşturursunuz.

Sosyal medya analiz araçları, kuruluşların popüler konuları anlamasına yardımcı olur. Popüler konular, sosyal medyada yüksek hacimli gönderilere sahip konular ve tutumlardır. Fikir madenciliği olarak da adlandırılan yaklaşım analizi, bir ürüne veya fikre karşı tutumları belirlemek için sosyal medya analiz araçlarını kullanır.

Gerçek zamanlı Twitter eğilim analizi, analiz aracına harika bir örnektir çünkü hashtag abonelik modeli belirli anahtar sözcükleri (hashtag'ler) dinlemenize ve akışın yaklaşım analizini geliştirmenize olanak tanır.

Senaryo: Gerçek zamanlı olarak sosyal medya yaklaşım analizi

Haber medyası web sitesine sahip bir şirket, okuyucuları için hemen ilgili olan site içeriğini öne çıkararak rakiplerine karşı avantaj elde etmekle ilgileniyor. Şirket, Twitter verilerinin gerçek zamanlı yaklaşım analizini yaparak okuyucularla ilgili konularda sosyal medya analizini kullanıyor.

Twitter'da popüler konuları gerçek zamanlı olarak tanımlamak için şirketin tweet hacmi hakkında gerçek zamanlı analizlere ve önemli konulara yönelik yaklaşıma ihtiyacı vardır.

Önkoşullar

Bu nasıl yapılır kılavuzunda, Twitter'a bağlanan ve belirli hashtag'lere (ayarlayabileceğiniz) sahip tweet'leri arayan bir istemci uygulaması kullanırsınız. Aşağıdaki liste, uygulamayı çalıştırmak ve Azure Streaming Analytics kullanarak tweet'leri analiz etmek için önkoşullar sağlar.

  • Azure aboneliğiniz yoksa ücretsiz hesap oluşturun.

  • Bir Twitter hesabı.

  • Twitter akışını okuyan TwitterClientCore uygulaması. Bu uygulamayı almak için TwitterClientCore'ı indirin.

  • .NET Core CLI sürüm 2.1.0'ı yükleyin.

Uygulayacağınız çözüm mimarisi aşağıdadır.

A diagram showing different pieces of services and applications used to build the solution.

Akış girişi için olay hub'ı oluşturma

Örnek uygulama olayları oluşturur ve bir olay hub'ına iletir. Azure Event Hubs, Stream Analytics için tercih edilen olay alımı yöntemidir. Daha fazla bilgi için Azure Event Hubs belgelerine bakın.

Event Hubs ad alanı ve olay hub'ı oluşturma

Hızlı Başlangıç: Event Hubs ad alanı ve socialtwitter-eh adlı bir olay hub'ı oluşturmak için Azure portalını kullanarak olay hub'ı oluşturma yönergelerini izleyin. Farklı bir ad kullanabilirsiniz. Bunu yaparsanız, adını daha sonra ihtiyacınız olduğundan not alın. Olay hub'ı için başka seçenek ayarlamanız gerekmez.

Olay hub'ına erişim izni verme

Bir işlemin bir olay hub'ına veri gönderebilmesi için olay hub'ına erişim izni veren bir ilke gerekir. Erişim ilkesi, yetkilendirme bilgilerini içeren bir bağlantı dizesi oluşturur.

  1. Event Hubs ad alanınızın sol tarafındaki gezinti çubuğunda Varlıklar bölümünde bulunan Event Hubs'ı seçin. Ardından, yeni oluşturduğunuz olay hub'ını seçin.

  2. Sol taraftaki gezinti çubuğunda Ayarlar altında bulunan Paylaşılan erişim ilkeleri'ni seçin.

    Not

    Altında ad alanı ve olay hub'ı için paylaşılan erişim ilkeleri seçeneği vardır. Ad alanı değil olay hub'ınız bağlamında çalıştığından emin olun.

  3. Paylaşılan erişim ilkeleri sayfasında, komut çubuğunda + Ekle'yi seçin. Ardından İlke adı için socialtwitter-access girin ve Yönet onay kutusunu işaretleyin.

  4. Oluştur'u belirleyin.

  5. İlke dağıtıldıktan sonra, paylaşılan erişim ilkeleri listesinden ilkeyi seçin.

  6. Bağlan ion dizesi birincil anahtarı etiketli kutuyu bulun ve bağlantı dizesi yanındaki kopyala düğmesini seçin.

  7. Bağlantı dizesini bir metin düzenleyicisine yapıştırın. Bazı küçük düzenlemeler yaptıktan sonra sonraki bölüm için bu bağlantı dizesi gerekir.

bağlantı dizesi şöyle görünür:

Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialtwitter-eh

bağlantı dizesi noktalı virgülle ayrılmış birden çok anahtar-değer çifti içerdiğine dikkat edin: Endpoint, SharedAccessKeyName, SharedAccessKeyve EntityPath.

Not

Güvenlik için örnekteki bağlantı dizesi bölümleri kaldırıldı.

Twitter istemci uygulamasını yapılandırma ve başlatma

İstemci uygulaması tweet olaylarını doğrudan Twitter'dan alır. Bunu yapmak için Twitter Akış API'lerini çağırma iznine sahip olması gerekir. Bu izni yapılandırmak için Twitter'da benzersiz kimlik bilgileri (OAuth belirteci gibi) oluşturan bir uygulama oluşturursunuz. Ardından istemci uygulamasını API çağrıları yaparken bu kimlik bilgilerini kullanacak şekilde yapılandırabilirsiniz.

Twitter uygulaması oluşturma

Bu nasıl yapılır kılavuzu için kullanabileceğiniz bir Twitter uygulamanız yoksa bir tane oluşturabilirsiniz. Zaten bir Twitter hesabınız olmalıdır.

Not

Twitter'da uygulama oluşturma ve anahtarları, gizli dizileri ve belirteci alma işlemi değişebilir. Bu yönergeler Twitter sitesinde gördüklerinize uymuyorsa Twitter geliştirici belgelerine bakın.

  1. Web tarayıcısından Geliştiriciler için Twitter'a gidin, bir geliştirici hesabı oluşturun ve Uygulama oluştur'u seçin. Twitter geliştirici hesabına başvurmanız gerektiğini belirten bir ileti görebilirsiniz. Bunu yapmaktan çekinmeyin ve uygulamanız onaylandıktan sonra bir onay e-postası görmeniz gerekir. Geliştirici hesabı için onaylanması birkaç gün sürebilir.

    Screenshot shows the Create an app button.

  2. Uygulama oluşturun sayfasında yeni uygulamaya ilişkin ayrıntıları sağlayın ve Kendi Twitter uygulamanızı oluşturun’u seçin.

    Screenshot shows the App details pane where you can enter values for your app.

  3. Uygulama sayfasında Anahtarlar ve Belirteçler sekmesini seçin ve Tüketici API Anahtarı ve Tüketici API Gizli Anahtarı değerlerini kopyalayın. Ayrıca erişim belirteçlerini oluşturmak için Erişim Belirteci ve Erişim Belirteci Gizli Dizisi altında Oluştur'u seçin. Erişim Belirteci veErişim Belirteci Parolası değerlerini kopyalayın.

    Twitter uygulaması için aldığınız değerleri kaydedin. Değerlere daha sonra ihtiyacınız olacak.

Not

Twitter uygulamasının anahtarları ve gizli dizileri Twitter hesabınıza erişim sağlar. Bu bilgileri Twitter parolanızı kullandığınız gibi hassas olarak değerlendirin. Örneğin, bu bilgileri başkalarına verdiğiniz bir uygulamaya eklemeyin.

İstemci uygulamasını yapılandırma

Belirli bir konu kümesiyle ilgili tweet olaylarını toplamak için Twitter Akış API'lerini kullanarak Twitter verilerine bağlanan bir istemci uygulaması oluşturduk.

Uygulama çalışmadan önce Sizden Twitter anahtarları ve olay hub'ı bağlantı dizesi gibi belirli bilgiler gerektirir.

  1. Önkoşullarda listelendiği gibi TwitterClientCore uygulamasını indirdiğinizden emin olun.

  2. App.config dosyasını açmak için bir metin düzenleyicisi kullanın. öğesinde aşağıdaki değişiklikleri <appSettings> yapın:

    • Twitter Tüketici Anahtarı (API anahtarı) olarak ayarlayın oauth_consumer_key .
    • Twitter Tüketici Gizli Anahtarı (API gizli anahtarı) olarak ayarlayın oauth_consumer_secret .
    • Twitter Erişim belirtecine ayarlayın oauth_token .
    • Twitter Erişim belirteci gizli dizisi olarak ayarlayın oauth_token_secret .
    • bağlantı dizesi olarak ayarlayınEventHubNameConnectionString.
    • Olay hub'ı adına (varlık yolunun değeri) ayarlayın EventHubName .
  3. Komut satırını açın ve TwitterClientCore uygulamanızın bulunduğu dizine gidin. Projeyi oluşturmak için komutunu dotnet build kullanın. Ardından komutunu dotnet run kullanarak uygulamayı çalıştırın. Uygulama, Event Hubs'ınıza Tweet gönderir.

Akış Analizi işi oluşturma

Tweet etkinlikleri Twitter'dan gerçek zamanlı olarak akışa alındığından, bu olayları gerçek zamanlı olarak analiz etmek için bir Stream Analytics işi ayarlayabilirsiniz.

  1. Azure portalında kaynak grubunuza gidin ve + Ekle'yi seçin. Ardından Stream Analytics işini arayın ve Oluştur'u seçin.

  2. İşi socialtwitter-sa-job adlandırın ve bir abonelik, kaynak grubu ve konum belirtin.

    En iyi performans için işi ve olay hub'ını aynı bölgeye yerleştirmek ve bölgeler arasında veri aktarımı için ödeme yapmamak iyi bir fikirdir.

  3. Oluştur'u belirleyin. Ardından dağıtım tamamlandığında işinize gidin.

İş girişini belirtme

  1. Stream Analytics işinizde, İş Topolojisi'nin altındaki sol menüden Girişler'i seçin.

  2. + Akış girişi>ekle Olay Hub'ı seçin. Yeni giriş formunu aşağıdaki bilgilerle doldurun:

    Ayar Önerilen değer Açıklama
    Giriş diğer adı TwitterStream Giriş için bir diğer ad girin.
    Abonelik <Aboneliğiniz> Kullanmak istediğiniz Azure aboneliğini seçin.
    Event Hubs ad alanı asa-twitter-eventhub
    Olay hub'ı adı socialtwitter-eh Var olanı kullan'ı seçin. Ardından oluşturduğunuz olay hub'ını seçin.
    Olay sıkıştırma türü Gzip Veri sıkıştırma türü.

    Kalan varsayılan değerleri bırakın ve Kaydet'i seçin.

İş sorgusunu belirtme

Stream Analytics, dönüştürmeleri açıklayan basit, bildirim temelli bir sorgu modelini destekler. Dil hakkında daha fazla bilgi edinmek için bkz . Azure Stream Analytics Sorgu Dili Başvurusu. Bu nasıl yapılır kılavuzu, Twitter verileri üzerinde çeşitli sorgular yazmanıza ve test etmenize yardımcı olur.

Konular arasındaki bahsetme sayısını karşılaştırmak için, konuya göre her beş saniyede bir bahsetme sayısını almak için atlayan bir pencere kullanabilirsiniz.

  1. İşinize Genel Bakış bölümünde Sorgu kutusunun sağ üst kısmındaki Sorguyu düzenle'yi seçin. Azure, iş için yapılandırılan girişleri ve çıkışları listeler ve çıkışa gönderilirken giriş akışını dönüştürmek için bir sorgu oluşturmanıza olanak tanır.

  2. Sorgu düzenleyicisindeki sorguyu aşağıdaki şekilde değiştirin:

    SELECT *
    FROM TwitterStream
    
  3. İletilerdeki olay verileri sorgunuzun altındaki Giriş önizleme penceresinde görünmelidir. Görünüm'un JSON olarak ayarlandığından emin olun. Herhangi bir veri görmüyorsanız, veri oluşturucunuzun olay hub'ınıza olay gönderdiğinden ve giriş için sıkıştırma türü olarak Gzip'i seçtiğinizden emin olun.

  4. Test sorgusu'na tıklayın ve sorgunuzun altındaki Test sonuçları penceresinde sonuçlarıgörebilirsiniz.

  5. Kod düzenleyicisindeki sorguyu aşağıdakiyle değiştirin ve Sorguyu test et'i seçin:

    SELECT System.Timestamp as Time, text
    FROM TwitterStream
    WHERE text LIKE '%Azure%'
    
  6. Bu sorgu, Azure anahtar sözcüğünü içeren tüm tweet'leri döndürür.

Çıkış havuzu oluşturma

Şimdi bir olay akışı, olayları almak için bir olay hub'ı girişi ve akış üzerinde dönüştürme gerçekleştirmek için bir sorgu tanımlamış oldunuz. Son adım, iş için bir çıkış havuzu tanımlamaktır.

Bu nasıl yapılır kılavuzunda, toplu tweet olaylarını iş sorgusundan Azure Blob depolamaya yazarsınız. Ayrıca uygulamanızın gereksinimlerine bağlı olarak sonuçlarınızı Azure SQL Veritabanı, Azure Tablo depolama, Event Hubs veya Power BI'a gönderebilirsiniz.

İş çıkışını belirtme

  1. Sol gezinti menüsündeki İş Topolojisi bölümünün altında Çıkışlar'ı seçin.

  2. Çıkışlar sayfasında + Ekle ve Blob depolama/Data Lake Storage 2. Nesil seçeneğini belirleyin:

    • Çıkış diğer adı: adını TwitterStream-Outputkullanın.
    • İçeri aktarma seçenekleri: Aboneliklerinizden depolama seçin'i seçin.
    • Depolama hesabı. Depolama hesabınızı seçin.
    • Kapsayıcı. Yeni oluştur'u seçin ve girinsocialtwitter.
  3. Kaydet'i seçin.

İşi başlatma

bir iş girişi, sorgu ve çıkış belirtilir. Stream Analytics işini başlatmaya hazırsınız.

  1. TwitterClientCore uygulamasının çalıştığından emin olun.

  2. İşe genel bakış bölümünde Başlat'ı seçin.

  3. İşi başlat sayfasında, İş çıktısı başlangıç zamanı için Şimdi'yi ve ardından Başlat'ı seçin.

Destek alın

Daha fazla yardım için Azure Stream Analytics için Microsoft Soru-Cevap soru sayfamızı deneyin.

Sonraki adımlar