dbt Core'a Bağlan

Not

Bu makale, Azure Databricks çalışma alanlarınızdaki Databricks SQL ambarları ve Azure Databricks kümeleriyle etkileşim kuran yerel geliştirme makinenizin dbt sürümü olan dbt Core'ı kapsar. Bunun yerine dbt'nin barındırılan sürümünü (dbt Cloud olarak adlandırılır) kullanmak veya çalışma alanınızda hızla bir SQL ambarı oluşturmak ve ardından dbt Cloud'a bağlamak için Bağlan bkz. dbt Cloud'a Bağlan.

dbt (veri derleme aracı), veri analistlerinin ve veri mühendislerinin yalnızca seçim deyimleri yazarak verileri dönüştürmesini sağlayan bir geliştirme ortamıdır. dbt, bu seçim deyimlerini tablolara ve görünümlere dönüştürmeyi işler. dbt kodunuzu ham SQL'de derler ve ardından bu kodu Azure Databricks'te belirtilen veritabanında çalıştırır. dbt, işbirliğine dayalı kodlama desenlerini ve sürüm denetimi, belgeler, modülerlik ve daha fazlası gibi en iyi uygulamaları destekler.

dbt verileri ayıklamaz veya yüklemez. dbt, "yüklemeden sonra dönüştürme" mimarisini kullanarak yalnızca dönüştürme adımına odaklanır. dbt, verilerinizin bir kopyasının zaten veritabanınızda olduğunu varsayar.

Bu makalede dbt Core kullanımına odaklanmaktadır. dbt Core, dbt kodunu yerel geliştirme makinenizde istediğiniz metin düzenleyicisine veya IDE'ye yazmanızı ve ardından dbt'yi komut satırından çalıştırmanızı sağlar. dbt Core, dbt Komut Satırı Arabirimi'ni (CLI) içerir. dbt CLI'yi kullanmak ve açık kaynak ücretsizdir.

Dbt'nin dbt Cloud adlı barındırılan bir sürümü de kullanılabilir. dbt Cloud, işleri zamanlama, CI/CD, belge sunumu, izleme ve uyarma ve tümleşik geliştirme ortamı (IDE) için anahtar teslimi destekle donatılmıştır. Daha fazla bilgi için bkz. dbt Cloud'a Bağlan. dbt Bulut Geliştirici planı tek bir ücretsiz geliştirici lisansı sağlar; Team ve Enterprise ücretli planları da mevcuttur. Daha fazla bilgi için dbt web sitesindeki dbt Fiyatlandırması bölümüne bakın.

dbt Core ve dbt Cloud barındırılan git depolarını (örneğin GitHub, GitLab veya BitBucket'te) kullanabileceği için dbt Core kullanarak bir dbt projesi oluşturabilir ve ardından dbt Cloud kullanıcılarınızın kullanımına sunabilirsiniz. Daha fazla bilgi için bkz . Dbt projesi oluşturma ve dbt web sitesinde var olan bir projeyi kullanma.

dbt'ye genel bir genel bakış için aşağıdaki YouTube videosunu izleyin (26 dakika).

Gereksinimler

dbt Core'u yüklemeden önce yerel geliştirme makinenize aşağıdakileri yüklemeniz gerekir:

  • Python 3.7 veya üzeri
  • Python sanal ortamları oluşturmak için bir yardımcı program (pipenv gibi)

Ayrıca kimlik doğrulaması için aşağıdakilerden birine de ihtiyacınız vardır:

  • (Önerilen) dbt Core, hesabınızda OAuth uygulaması olarak etkinleştirildi. Bu varsayılan olarak etkindir.

  • Kişisel erişim belirteci

    Not

    Otomatik araçlar, sistemler, betikler ve uygulamalarla kimlik doğrulaması yaparken en iyi güvenlik uygulaması olarak Databricks, OAuth belirteçleri kullanmanızı önerir.

    Kişisel erişim belirteci kimlik doğrulaması kullanıyorsanız Databricks, çalışma alanı kullanıcıları yerine hizmet sorumlularına ait kişisel erişim belirteçlerinin kullanılmasını önerir. Hizmet sorumlularına yönelik belirteçler oluşturmak için bkz . Hizmet sorumlusu için belirteçleri yönetme.

1. Adım: Python sanal ortamı oluşturma ve etkinleştirme

Bu adımda, python sanal ortamı oluşturmak için kullanırsınızpipenv. Diğer ortamlardaki paket sürümlerine ve kod bağımlılıklarına bakılmaksızın paket sürümlerini ve kod bağımlılıklarını bu ortama yalıtan bir Python sanal ortamı kullanmanızı öneririz. Bu, beklenmeyen paket sürümü uyuşmazlıklarını ve kod bağımlılığı çakışmalarını azaltmaya yardımcı olur.

  1. Terminalinizde boş bir dizine geçin ve gerekirse önce bu dizini oluşturun. Bu yordam, kullanıcı giriş dizininizin kökünde adlı dbt_demo boş bir dizin oluşturur.

    Unix, linux, macos

    mkdir ~/dbt_demo
    cd ~/dbt_demo
    

    Windows

    mkdir %USERPROFILE%\dbt_demo
    cd %USERPROFILE%\dbt_demo
    
  2. Bu boş dizinde, aşağıdaki içeriğe sahip adlı Pipfile bir dosya oluşturun. Bu Pipfile , Python sürüm 3.8.6'nın kullanılmasını sağlar pipenv . Farklı bir sürüm kullanıyorsanız değerini sürüm numaranızla değiştirin 3.8.6 .

    [[source]]
    url = "https://pypi.org/simple"
    verify_ssl = true
    name = "pypi"
    
    [packages]
    dbt-databricks = "*"
    
    [requires]
    python_version = "3.8.6"
    

    Not

    Yukarıdaki satırdbt-databricks = "*", paketin en son sürümünün dbt-databricks kullanılmasını belirtirpipenv. Üretim senaryolarında değerini, kullanmak istediğiniz paketin belirli bir sürümüyle değiştirmeniz * gerekir. Databricks, dbt-databricks paketinin 1.6.0 veya üzeri bir sürümünü önerir. Python Paket Dizini (PyPI) web sitesinde dbt-databricks Yayın geçmişi'ne bakın.

  3. Komutunu çalıştırıp pipenv kullanılacak Python sürümünü belirterek bu dizinde bir Python sanal ortamı oluşturun. Bu komut Python 3.8.6 sürümünü belirtir. Farklı bir sürüm kullanıyorsanız değerini sürüm numaranızla değiştirin 3.8.6 :

    pipenv --python 3.8.6
    
  4. seçeneğiyle komutunu çalıştırarak pipenv dbt Databricks bağdaştırıcısını install yükleyin. Bu işlem, pypi'den dbt Databricks bağdaştırıcı paketini dbt-databricksiçeren paketleri sizinkine Pipfileyükler. dbt Databricks bağdaştırıcı paketi otomatik olarak dbt Core ve diğer bağımlılıkları yükler.

    Önemli

    Yerel geliştirme makineniz aşağıdaki işletim sistemlerinden birini kullanıyorsa öncelikle ek adımları tamamlamanız gerekir: CentOS, MacOS, Ubuntu, Debian ve Windows. dbt Labs web sitesine dbt yüklemek için pip kullanma makalesinin "İşletim sistemimin önkoşulları var mı" bölümüne bakın.

    pipenv install
    
  5. komutunu çalıştırarak pipenv shellbu sanal ortamı etkinleştirin. Etkinleştirmeyi onaylamak için, terminal istemden önce görüntülenir (dbt_demo) . Sanal ortam, belirtilen Python sürümünü kullanmaya başlar ve bu yeni ortamdaki tüm paket sürümlerini ve kod bağımlılıklarını yalıtmaktadır.

    pipenv shell
    

    Not

    Bu sanal ortamı devre dışı bırakmak için komutunu çalıştırın exit. (dbt_demo) isteminden önce kaybolur. Bu sanal ortamı devre dışı bırakırsanız veya pip list çalıştırırsanız python --version farklı bir Python sürümü, kullanılabilir paketlerin veya paket sürümlerinin farklı bir listesini ya da her ikisini de görebilirsiniz.

  6. seçeneğiyle --version çalıştırarak sanal ortamınızın beklenen Python sürümünü çalıştırdığını python onaylayın.

    python --version
    

    Beklenmeyen bir Python sürümü görüntülüyorsa komutunu çalıştırarak pipenv shellsanal ortamınızı etkinleştirdiğinizden emin olun.

  7. seçeneğiyle --version çalıştırarak sanal ortamınızın dbt ve dbt Databricks bağdaştırıcısının beklenen sürümlerini çalıştırdığını dbt onaylayın.

    dbt --version
    

    dbt veya dbt Databricks bağdaştırıcısının beklenmeyen bir sürümü görüntülüyorsa komutunu çalıştırarak pipenv shellsanal ortamınızı etkinleştirdiğinizden emin olun. Beklenmeyen bir sürüm yine de görüntüleniyorsa, sanal ortamınızı etkinleştirdikten sonra dbt veya dbt Databricks bağdaştırıcısını yüklemeyi yeniden deneyin.

2. Adım: Dbt projesi oluşturma ve bağlantı ayarlarını belirtme ve test etme

Bu adımda, dbt'yi kullanmak için gereken ilgili dizinlerden ve dosyalardan oluşan bir koleksiyon olan bir dbt projesi oluşturursunuz. Ardından, Azure Databricks kümesi, SQL ambarı veya her ikisi için bağlantı ayarlarını içeren bağlantı profillerinizi yapılandırabilirsiniz. Güvenliği artırmak için dbt projeleri ve profilleri varsayılan olarak ayrı konumlarda depolanır.

İpucu

Mevcut bir kümeye veya SQL ambarı'na bağlanabilir veya yeni bir tane oluşturabilirsiniz.

  • Mevcut bir küme veya SQL ambarı, birden çok dbt projesi için, dbt'yi bir ekipte kullanmak veya geliştirme kullanım örnekleri için verimli olabilir.
  • Yeni bir küme veya SQL ambarı, üretim kullanım örnekleri için tek bir dbt projesini yalıtarak çalıştırmanıza ve bu dbt projesi çalışmadığında maliyet tasarrufu sağlamak için otomatik sonlandırmadan yararlanmanıza olanak tanır.

Yeni bir küme veya SQL ambarı oluşturmak için Azure Databricks'i kullanın ve ardından dbt profilinizden yeni oluşturulan veya var olan kümeye ya da SQL ambarı'na başvurun.

  1. Sanal ortam hala etkinken dbt init komutunu projeniz için bir adla çalıştırın. Bu yordam adlı my_dbt_demobir proje oluşturur.

    dbt init my_dbt_demo
    
  2. Bir veya spark veritabanı seçmeniz databricks istendiğinde, öğesine karşılık gelen databricksnumarayı girin.

  3. Bir host değer istendiğinde aşağıdakileri yapın:

    • Bir küme için, Azure Databricks kümenizin Gelişmiş Seçenekler, JDBC/ODBC sekmesinden Sunucu Ana Bilgisayar Adı değerini girin.
    • SQL ambarı için SQL ambarınızın Bağlan ion Details sekmesinden Sunucu Ana Bilgisayar adı değerini girin.
  4. Bir http_path değer istendiğinde aşağıdakileri yapın:

  5. Bir kimlik doğrulama türü seçmek için, veya ile use oauth karşılık gelen (önerilen) use access tokennumarayı girin.

  6. Kimlik doğrulama türünü seçtiyseniz use access token Azure Databricks kişisel erişim belirtecinizin değerini girin.

    Not

    En iyi güvenlik uygulaması olarak otomatik araçlar, sistemler, betikler ve uygulamalarla kimlik doğrulaması yaptığınızda Databricks, çalışma alanı kullanıcıları yerine hizmet sorumlularına ait kişisel erişim belirteçlerini kullanmanızı önerir. Hizmet sorumlularına yönelik belirteçler oluşturmak için bkz . Hizmet sorumlusu için belirteçleri yönetme.

  7. Değer istendiğinde desired Unity Catalog option veya ile use Unity Catalognot use Unity Catalogkarşılık gelen sayıyı girin.

  8. Unity Kataloğu'nu kullanmayı seçtiyseniz, istendiğinde için catalog istenen değeri girin.

  9. İstendiğinde ve threads için schema istenen değerleri girin.

  10. dbt, girdilerinizi bir profiles.yml dosyaya yazar. Bu dosyanın konumu komutun çıkışında dbt init listelenir. Bu konumu daha sonra komutunu çalıştırarak dbt debug --config-dir da listeleyebilirsiniz. İçeriğini incelemek ve doğrulamak için bu dosyayı şimdi açabilirsiniz.

    Kimlik doğrulama türünü seçtiyseniz use oauth makineden makineye (M2M) veya kullanıcıdan makineye (U2M) kimlik doğrulama profilinizi öğesine profiles.ymlekleyin.

    Örnekler için bkz . Microsoft Entra ID ile dbt Core'dan Azure Databricks oturum açmayı yapılandırma.

    Databricks, içinde gizli dizilerin profiles.yml doğrudan belirtilmesi önerilmez. Bunun yerine, istemci kimliğini ve istemci gizli dizisini ortam değişkenleri olarak ayarlayın.

  11. Dizine geçiş yaparak ve komutunu çalıştırarak bağlantı ayrıntılarının my_dbt_demodbt debug doğru olduğunu onaylayın.

    Kimlik doğrulama türünü seçtiyseniz use oauth kimlik sağlayıcınızla oturum açmanız istenir.

    Önemli

    Başlamadan önce kümenizin veya SQL ambarınızın çalıştığını doğrulayın.

    Aşağıdakine benzer bir çıktı görmeniz gerekir:

    cd my_dbt_demo
    dbt debug
    
    ...
    Configuration:
      profiles.yml file [OK found and valid]
      dbt_project.yml file [OK found and valid]
    
    Required dependencies:
      - git [OK found]
    
    Connection:
      ...
      Connection test: OK connection ok
    

Sonraki adımlar

  • Dbt Core modellerini yerel olarak oluşturun, çalıştırın ve test edin. Dbt Core öğreticisine bakın.
  • dbt Core projelerini Azure Databricks iş görevleri olarak çalıştırın. Bkz. Azure Databricks işinde dbt dönüşümlerini kullanma.

Ek kaynaklar