Ana içeriğe geç

TabPy ile Tableau’da Python Nasıl Çalıştırılır: Kapsamlı Rehber

TabPy kullanarak Tableau’da Python betiklerini çalıştırmaya başlamak için bu adımları izleyin. Bu sayede Tableau görselleştirmeleriniz için modelleme ve analitik iş akışları oluşturabilirsiniz.
· 9 dk. oku

Yapay Zeka ile Keşfedin

Tableau, veri profesyonelleri arasında oldukça popüler bir veri görselleştirme aracıdır ve işe alımlarda sıkça talep edilir. Python ise veri biliminde yaygın olarak kullanılan çok yönlü bir programlama dilidir. Tableau’da Python entegrasyonu, kullanıcıların gelişmiş modeller kurmasını, karmaşık hesaplamalar yürütmesini ve Tableau’nun yerel yeteneklerini genişletmesini sağlar. 

Bu, gösterge tablolarının içinde doğrudan istatistiksel modelleme, makine öğrenmesi ve veri işleme tekniklerinden yararlanmak isteyen veri analistleri, veri bilimciler ve iş zekâsı profesyonelleri için özellikle kullanışlıdır.

Bu makale, Python’ı Tableau ile entegre etmek için uygulamalı bir öğretici olarak hizmet eder. Ortamınızı nasıl kuracağınızı, Python betiklerini nasıl çalıştıracağınızı, gelişmiş analitik kullanım senaryolarını nasıl keşfedeceğinizi ve sık karşılaşılan sorunları nasıl gidereceğinizi öğreneceksiniz. Tableau hakkında ön bilgi almak isterseniz şu Tableau’ya giriş kursunu takip edin.

Entegrasyonu Anlamak

Tableau ile Python entegrasyonu, TabPy (Tableau Python Server) adlı analitik uzantısı olan harici bir hizmet aracılığıyla mümkün olur. Bu uzantı, Tableau kullanıcılarının Python betiklerini Tableau ortamlarında çalıştırmasına olanak tanır. 

Python ile dosyalar oluşturup ardından bunları Tableau’da görselleştirme konusunda deneyiminiz olabilir; örneğin Python ve Tableau ile veri görselleştirme öğreticisindeki gibi. Ancak TabPy ile kurulan bu bağlantı, Tableau’daki veriler ile Python betikleriniz arasında daha sorunsuz bir entegrasyon sağlar.

TabPy’nin Rolü

TabPy, Tableau ile Python arasında bir köprü görevi görür. İstemci-sunucu modeliyle çalışır; Tableau (istemci) betikleri TabPy’ye (sunucu) gönderir, TabPy bunları bir Python ortamında yürütür ve sonuçları geri döndürür.

Nasıl çalışır

  1. Tableau Desktop veya Server, hesaplanmış alanlar kullanarak bir betik gönderir.
  2. TabPy Python kodunu yürütür.
  3. Sonuçlar, görselleştirmelerde işlenmek üzere Tableau’ya geri gönderilir.

Diagram showing connection between Tableau, TabPy, and Python

Tableau, TabPy ve Python ortamı arasındaki bağlantıyı gösteren diyagram, eraser.io kullanılarak oluşturulmuştur

Tableau ile Python kullanmanın faydaları

Tableau son derece güçlü olsa da, karmaşık analitik görevlerde hesaplanmış alanlar bazen hantal veya verimsiz gelebilir. Python entegrasyonu, Tableau’nun yerel yeteneklerine kıyasla çeşitli avantajlar sunar ve kullanıcılara verilerini işlemekte daha fazla özgürlük tanır. 

Örneğin, Python ile aşağıdaki kullanım senaryolarını hayata geçirebilirsiniz:

  • Gelişmiş modelleme: Regresyon, kümeleme ve sınıflandırma için scikit-learn, statsmodels ve xgboost gibi kütüphaneleri kullanın.
  • API entegrasyonu: Twitter, Reddit veya kurumsal özel servisler gibi API’ler üzerinden gerçek zamanlı veri çekin.
  • Dinamik işleme: Kullanıcı girdisine veya değişen verilere göre uyarlanan hesaplamalar çalıştırın. Tableau gösterge tablonuzun analitik gücünü ciddi ölçüde artırmak için pandas veya numpy gibi paketleri kullanabilirsiniz.

TabPy’nin Kurulumu

Tableau’da Python kullanmaya başlamak için TabPy’yi kurup yapılandırmanız gerekir. Bu adım oldukça basittir! Esas süreç, bilgisayarınızda Python ve Tableau’nun kurulu olduğundan emin olmaktır.

Sistem gereksinimleri ve kurulum

Önkoşullar:

  • Python 3.7+ (pip’in kurulu olduğundan emin olun)
  • Tableau Desktop veya Tableau Server (2020.1 veya üzeri önerilir)

Adım adım kurulum:

1. Python’ı kurun. İşletim sisteminize uygun talimatları izleyerek Python’ı kurun.

2. Sanal Ortam Oluşturun:

python3 -m venv tableau-env

3. TabPy’yi kurun (ortamınızı etkinleştirdiğinizden emin olun). Bu aşamada pandas, numpy, sklearn ve diğer paketleri de kurabilirsiniz.

pip install tabpy

4. TabPy’yi başlatın:

tabpy

TabPy’yi Yapılandırma

TabPy’yi özelleştirmek için yapılandırma dosyasını düzenleyin. Bu özelleştirmeler, TabPy’nin hangi portu dinlediği ve hangi aktarım protokolünü kullandığı gibi ayarları değiştirmenize olanak tanır. Yapılandırma ayarları hakkında daha fazla bilgi için TabPy’nin yapılandırma rehberini takip edin.

Örnek yapılandırma dosyası (tabpy.conf)

İşte TabPy için bir yapılandırma dosyasının nasıl görünebileceğine bir örnek.

[TABPY]
TABPY_PORT = 9004
TABPY_TRANSFER_PROTOCOL = http

Ağ ve güvenlik ipuçları

TabPy, yerel kaynaklarınıza internet benzeri bir sunucu bağlantısı üzerinden eriştiğinden, bazı ağ ve güvenlik ipuçlarını takip etmek en iyisidir: 

  • Güvenlik duvarınızda açık olan, ancak dış bağlantılara dinlemeyen bir port seçtiğinizden emin olun. 
  • Güvenli iletişim için SSL’li NGINX gibi bir ters proxy yapılandırın. 
  • Tableau Server üzerinde çalışıyorsanız, TabPy’nin aynı ağdan erişilebilir olduğundan emin olun

TabPy ile başlamaya dair daha fazla ayrıntı için şu TabPy’ye başlama öğreticisini takip edin.

Tableau’da Python Çalıştırma

TabPy’yi kurduktan sonra, Python’ı doğrudan Tableau gösterge tablolarına entegre edebilirsiniz. Önce Tableau’da uzantı bağlantılarını etkinleştirmeniz gerekir. Tableau Desktop’ı açın, Settings and Performance’a gidin, Manage analytics Extension Connection’ı seçin ve TabPy’yi işaretleyin. Ardından, TabPy yapılandırma dosyanızdaki ayarlara göre yapılandırın.

Manage Analytics Extensions Connection screen in Tableau

Tableau’da Manage Analytics Extensions Connection ekranı (help.tableau.com)

Betik entegrasyon yöntemleri

Tableau’da Python betikleri çalıştırmanın üç ana yolu vardır: hesaplanmış alan içinde satır içi betik hesaplamaları, Tableau uzantılarıyla ön işleme ve model uç noktaları.

1. Satır içi betik hesaplamaları

Tableau’nun SCRIPT_REAL, SCRIPT_INT, SCRIPT_STR veya SCRIPT_BOOL işlevlerini kullanın. Bu işlevlerin her biri, harici bir betik çalıştırmadan veriyi doğrudan TabPy sunucusuna iletir. Python kodunu doğrudan bu betiklerin içine yazabilirsiniz.

Örnek: Z-skoru normalleştirme

SCRIPT_REAL(
  "import scipy.stats as stats
   return stats.zscore(_arg1)",
  SUM([Sales])
)

Yukarıdaki örnek, scipy içinden stats paketini içe aktarmanıza ve Tableau’nuzdaki SUM([Sales]) sütununun Z-skorunu döndürmenize olanak tanır.

2. Tablo uzantılarıyla ön işleme

Tableau uzantılarını kullanarak Python ile Tableau dışında ön işleme yapın ve ardından sonuçları içe aktarın.

  • Veriyi Pandas/Numpy ile ön işleyin.
  • Sonuçları CSV veya bir API uç noktası olarak kaydedin.
  • İşlenmiş veriyi Tableau’ya yükleyin.

Bu Uzantılar, Tableau çalışma kitabınızın Sheets sayfasından etkinleştirilir. Bu uzantılarla, betiğinizin tamamını TabPy Extension kullanarak girersiniz. Ardından betik, verilerinizin tamamı üzerinde çalışır; böylece veriyi satır düzeyinde değil, topluca ön işleyebilirsiniz. Bu genellikle çıktı olarak ayrı bir tablo üretir.

Table Extension feature available at the bottom of Sheets page 

Sheets sayfasının altında bulunan Table Extension özelliği. (Tableau dokümantasyonundan)

3. Dağıtılmış model uç noktaları

Son yöntem en güçlü olanlardan biridir. Bir betiği çalıştırmak için modeli TabPy sunucusunda barındırırız. Ardından, belirli bir veri kümesi üzerinde bu modeli çalıştırmak istediğimizde bu betiği Tableau’dan çağırırız.

Örnek: Modeli TabPy’ye dağıtma

İlk adım, TabPy tarafından dağıtılacak bir dosya oluşturmaktır. TabPy sunucunuzu (yukarıdaki adımları izleyerek) çalıştırdıktan sonra, bunu Python betiğinizi çalıştırmak için kullanabilirsiniz. Python betiği dağıtıldıktan sonra, Tableau’da SCRIPT_REAL kullanarak çağıracağız.

from tabpy.tabpy_tools.client import Client
import pickle

def predict_sales(input_features):
    model = pickle.load(open(model.pkl, ‘rb’)) # This assumes you have a saved model
    return model.predict(input_features)

client = Client(‘http://localhost:9004’)

client.deploy('predict_sales', predict_sales, 'Predict sales using linear model', override=True)

Tableau Betik Çağrısı:

SCRIPT_REAL("return tabpy.query(‘predict_sales’, _arg1)[‘response’]", SUM[Feature1])

Performans optimizasyon teknikleri

Tableau dışında Python betikleri çalıştırırken olduğu gibi, performansa dikkat etmeliyiz. Tableau’da veri çalıştırırken özel bazı hususlar vardır.

  1. Toplu işleme: Çağrı sayısını, veriyi parçalar hâlinde işleyerek en aza indirin. Veriyi Tableau tarafından çağrıldıkça değil, genellikle bir seferde tamamını işlemek faydalıdır.
  2. Sonuçları önbelleğe alma: Tableau’nun önbellekleme ayarlarını kullanarak statik sonuçları önbelleğe alın.
  3. Vektörizasyon: Daha hızlı yürütme için döngüler yerine NumPy/Pandas işlemlerini kullanın. Bunlar genellikle matematiksel hesaplamaları vektörize ederek çok daha verimli hâle getirir.

Tableau Server kullanıyorsanız, bağlantı havuzu kullanarak daha fazla optimizasyon yapabilirsiniz. Bağlantı havuzu genel olarak, ek yükü en aza indirmek için veri kaynaklarıyla kalıcı bağlantılar sürdürme fikridir. 

Aynısını veri kaynaklarınız ve TabPy için de yaparak, her betik veya yeni hesaplama çalıştırıldığında Tableau’nun TabPy’ye olan bağlantıyı “yeniden açmasını” engelleyebilirsiniz.

Gelişmiş Analitik Kullanım Senaryoları

Artık temelleri tamamladığınıza göre, oldukça özelleştirilmiş analizleri hayata geçirebilirsiniz. Bu yöntemler, gösterge tablonuzla ilginç şekillerde etkileşen daha gelişmiş betikler oluşturmayı içerir.

Gerçek zamanlı kestirimci analiz

Harika bir model, kullanıcı girdisiyle güncellenen zaman serisi modellerini (ör. ARIMA, Prophet) dağıtmaktır; tıpkı TabPy ile işlevleri ve Prophet’i dağıtma rehberindeki gibi. 

Modelinizi oluşturduktan sonra, TabPy tarafından dağıtılabilecek bir betiğe paketleyebilirsiniz. Ardından aynı SCRIPT_REAL işlevini kullanarak bu modeli Tableau’muza bağlar ve dağıtılmış modelimizi çağırırız.

Kullanım Senaryosu: Satış tahmini

  • Python’da bir Prophet modeli oluşturup eğitin.
  • Modeli, öz nitelik olarak geçmiş satışlar ile TabPy üzerinde dağıtın
  • Gösterge tablosu filtresi değiştikçe satış tahminlerini güncelleyin.

Böylece biri konum, zaman veya ürün gibi filtreleri değiştirdiğinde, Tableau bu yeni filtrelerle gerçek zamanlı olarak yeni tahminler üretecektir.

Güvenlik ve Yönetişim

TabPy’ye olan bağlantılarımızı açtığımız göz önüne alındığında, uygun güvenlik ve yönetişim protokollerini izlememiz kritik öneme sahiptir. 

Kimlik doğrulama protokolleri

TabPy, kullanıcıların güvende kalmasına yardımcı olmak için çeşitli kimlik doğrulama protokolleri sunar. Aşağıdakiler desteklenir ve yapılandırılabilir:

  • Temel kimlik doğrulama (kullanıcı adı/şifre)
  • Sertifikaya dayalı kimlik doğrulama
  • Güvenli belirteç yönetimiyle OAuth2 (gelişmiş kurumsal kullanım için)

En iyi uygulama, üretim dağıtımlarında her zaman HTTPS ve güvenli belirteçler kullanmaktır.

Veri koruma önlemleri

Tableau ve TabPy’yi bağlarken uygun veri koruma yönetişimini takip ettiğimizden emin olmalıyız. Bu; verinin doğru bağlantı kanallarından aktığından, başka portları kullanamadığından ve aktarım sırasında her zaman şifrelendiğinden emin olmayı içerir. İzlenecek bazı en iyi uygulamalar şunlardır:

  • Tableau ile TabPy arasındaki iletişimi şifreleyin.
  • Güvenlik duvarı kuralları ve erişim kontrolleri kullanın.
  • Uyumluluk için TabPy üzerinde denetim günlüğünü etkinleştirin. Güvenlik açıklarını gidermek için Python paketlerini düzenli olarak güncelleyin.

Sonuçta, kuruluşunuzun belirli düzenleyici uyumlulukları takip etmesi gerekiyorsa, en iyi uygulamalarını izlemeye devam edin. PII’yi TabPy’ye gönderilmeden önce anonimleştirip belirteçleyerek GDPR ve CCPA’ya uyulduğundan emin olun. Ayrıca, sızıntıyı en aza indirmek için ara Python sonuçları için güvenli depolama kullanın.

Sorun Giderme ve Hata Ayıklama

Sorunlar kaçınılmazdır, ancak çoğu hızla çözülebilir.

Yaygın Sorunlar ve Çözümler

Sorun

Çözüm

Tableau, TabPy’ye bağlanamıyor

Güvenlik duvarını kontrol edin, portu (9004) doğrulayın ve TabPy’nin çalıştığını teyit edin

Betik NULL değerler döndürüyor

Girdi türlerini doğrulayın ve Python hata günlüklerini kontrol edin

Yavaş performans

Python’a gönderilen veriyi optimize edin, çağrı sıklığını azaltın, önbellekleme kullanın

Kodunuzla ilgili sorun yaşarsanız, şu hata ayıklama adımlarını izleyin (her betikte işe yarar):

  • Betiklerde print() veya logging kullanın (TabPy günlüklerinde görünür).
  • Python betiklerini Tableau dışında Jupyter ile test edin.
  • Tableau günlüklerini My Tableau Repository/Logs dizininde kontrol edin.

Sonuç

Python’ı Tableau ile entegre etmek, gelişmiş analitik gücünü doğrudan görsel gösterge tablolarınızın içine taşır. TabPy ile şunları yapabilirsiniz:

  • Karmaşık hesaplamalar yürütün
  • ML modellerini dağıtın ve onlarla etkileşime geçin
  • Tableau’nun yerel yeteneklerini önemli ölçüde genişletin

İster istatistiksel modeller çalıştırıyor, ister metin verisi işliyor, ister tahminleri görselleştiriyor olun; Python, Tableau gösterge tablolarına yeni bir zekâ boyutu kazandırır.

Bu rehberde belirtilen adımları izleyerek, daha içgörülü, esnek ve etkileşimli analizler için Python’dan yararlanabilirsiniz. Tableau ve yetenekleri hakkında daha fazla bilgi için şu rehberlere göz atın:

Tableau’da Python Çalıştırma SSS

Python’ı Tableau Public ile kullanabilir miyim?

Hayır. Tableau Public, TabPy gibi harici servisleri desteklemez. Python entegrasyonu Tableau Desktop (Professional Edition) ve Tableau Server’da mevcuttur.

TabPy, üretim ortamları için güvenli midir?

TabPy, üretim için HTTPS, güvenlik duvarı kısıtları, kimlik doğrulama protokolleri (temel, sertifika tabanlı, OAuth2) ve NGINX gibi ters proxy’lerle güvenli hâle getirilebilir. Ancak, varsayılan kurulumun ötesinde ek yapılandırmalar gereklidir.

Tableau, gösterge tablolarında Python betiklerinin performansını nasıl yönetir?

Tableau veriyi TabPy’ye gönderir ve yanıtı bekler; betikler optimize edilmemişse gecikme olabilir. Performansı artırmak için vektörizasyon, önbellekleme, toplu işleme ve gönderilen veriyi en aza indirme gibi teknikleri kullanın.

TabPy ile sanal ortamlar kullanabilir miyim?

Evet. TabPy’yi, bağımlılıkları yalıtmaya ve çakışmaları önlemeye yardımcı olan bir Python sanal ortamı içinde çalıştırabilirsiniz. TabPy’yi başlatmadan önce ortamı etkinleştirin.

TabPy JSON veya sözlük gibi karmaşık veri yapıları döndürebilir mi?

Hayır. TabPy, Tableau’nun yorumlayabileceği düz bir liste veya NumPy dizisi döndürmelidir. Sözlükler veya JSON gibi karmaşık veri yapıları, döndürülmeden önce listeye dönüştürülerek ön işlenmelidir.

Tim Lu

Yazar

Tim Lu

Mekânsal analiz, makine öğrenimi ve veri hatları konusunda deneyime sahip bir veri bilimciyim. GCP, Hadoop, Hive, Snowflake, Airflow ve diğer veri bilimi/mühendisliği süreçleriyle çalıştım.

Konular

İlgili