Tek başına işlem hatlarıyla Python kullanma

Python kullanarak bir defterden bağımsız maddi görünümler ve akış tabloları oluşturabilir ve yenileyebilirsiniz. İşlem hattınızı bir Python not defterinde oluşturun ve spark.sql() ile çalıştırın. Bu, tek başına işlem hatlarını diğer Python tabanlı not defteri iş akışlarınızla birlikte yönetmenizi sağlar.

Tek başına işlem hatları için Python kaynağı, sunucusuz genel işlem için bir not defteri eklenmesini gerektirir. Databricks SQL veri ambarından Python ile bağımsız işlem hatları oluşturamaz veya yenileyemezsiniz; çünkü veri ambarı Python not defterlerini değil, SQL ifadelerini çalıştırır. Bunun yerine bir SQL veri ambarı kullanmak için bkz. Bağımsız somutlaştırılmış görünümleri kullanma ve Bağımsız akış tablolarını kullanma.

Important

Sunucusuz genel işlem üzerinde bir not defteri üzerinden bağımsız somutlaştırılmış görünümler ve akış tabloları oluşturma ve yenileme Beta aşamasındadır ve yalnızca belirli bölgelerde kullanılabilir. Bkz. Not Defterleri.

Requirements

Python ile bağımsız işlem hatları oluşturmak ve yenilemek için, Databricks Runtime 18.1 veya üzerini çalıştıran sunucusuz genel işlem kaynağına bağlı bir not defterine ihtiyacınız vardır. Bölgesel kullanılabilirlik ve izinler de dahil olmak üzere gereksinimlerin tam listesi için bkz. Not defterleri.

Nasıl çalışır?

Bir Python not defterinde, Databricks SQL ambarından çalıştıracağınız ifadelerin aynısını spark.sql() öğesine iletin. Bağımsız maddileştirilmiş görünüm ve akış tablosu söz dizimi aynıdır; yalnızca ifadeyi gönderme biçiminiz farklıdır. Bir ambarda olduğu gibi, her CREATE veya REFRESH deyimi işlemi işlemek için sunucusuz bir işlem hattı çalıştırır.

Oturum spark varsayılan olarak Azure Databricks not defterlerinde kullanılabilir, bu nedenle içeri aktarma gerekmez.

Gerçekleştirilmiş görünüm oluşturma

Aşağıdaki örnek, temel tablodan mv1gerçekleştirilmiş görünümü base_table1 oluşturur:

spark.sql("""
  CREATE OR REPLACE MATERIALIZED VIEW mv1
  AS SELECT
    date,
    sum(sales) AS sum_of_sales
  FROM base_table1
  GROUP BY date
""")

Zamanlanmış ve tetiklenen yenilemeler gibi tüm CREATE MATERIALIZED VIEW ayrıntılar için bkz. Gerçekleştirilmiş görünüm oluşturma.

Akış tablosu oluşturma

Aşağıdaki örnek, akış tablosunu tablodan salesraw_data oluşturur:

spark.sql("""
  CREATE OR REFRESH STREAMING TABLE sales
  AS SELECT product, price FROM STREAM raw_data
""")

Otomatik Yükleyici ile dosya yükleme ve zamanlama gibi tüm CREATE STREAMING TABLE ayrıntılar için bkz. Tek başına akış tablolarını kullanma.

Somutlaştırılmış görünümü veya akış tablosunu yenile

Bağımsız bir tabloyu kaynağındaki en güncel verilerle güncellemek için REFRESH deyimini kullanın:

spark.sql("REFRESH MATERIALIZED VIEW mv1")
spark.sql("REFRESH STREAMING TABLE sales")

Sunucusuz genel işlemde yenilemeler zaman uyumludur. Zaman uyumsuz yenilemeler ( ASYNC anahtar sözcük) desteklenmez. Bkz . Sunucusuz genel işlem.

Deyimleri parametreleştirme

Python kodunuzdaki değerleri sabit olarak kodlamak yerine bir SQL ifadesine aktarmak için, SQL'de adlandırılmış parametre işaretçileri kullanın ve bu değerleri spark.sql() öğesinin args bağımsız değişkeni aracılığıyla sağlayın. Değişmez değerler için doğrudan :min_sales gibi bir işaretleyici kullanın. İşaretçiyi IDENTIFIER() yalnızca parametre tablo, görünüm veya şema gibi bir nesne adı olduğunda kaydırır, çünkü tanımlayıcılar düz dize değerleri olarak değiştirilemez.

Aşağıdaki örnek hem gerçekleştirilmiş görünüm adını hem de filtre değerini parametreleştirir:

mv_name = "main.sales.regional_sales"
min_sales = 1000

spark.sql("""
  CREATE OR REPLACE MATERIALIZED VIEW IDENTIFIER(:mv)
  AS SELECT
    region,
    sum(sales) AS sum_of_sales
  FROM base_table1
  WHERE sales > :min_sales
  GROUP BY region
""", args={
  "mv": mv_name,
  "min_sales": min_sales,
})

Daha fazla bilgi için bkz.: Parametre işaretçileri ve IDENTIFIER yan tümcesi.

Diğer ifadeleri çalıştırma

Python not defterinden, herhangi bir bağımsız somutlaştırılmış görünüm veya akış tablosu deyimini spark.sql()'a ileterek çalıştırabilirsiniz; buna yenilemeyi zamanlama, bir tabloyu değiştirme veya bir tabloyu silme deyimleri de dahildir. SQL söz dizimi dahil olmak üzere gerçekleştirilmiş görünümlerin ve akış tablolarının nasıl kullanılacağını anlamak için bkz. Tek başına gerçekleştirilmiş görünümleri kullanma ve Tek başına akış tablolarını kullanma.

Sınırlamalar

Sunucusuz genel işlemde oluşturulan tek başına gerçekleştirilmiş görünümler ve akış tabloları, zaman uyumsuz yenilemeler için destek olmaması ve tablo başına maliyet atfı olmaması gibi ek sınırlamalara sahiptir. Tam liste için bkz. Sunucusuz genel işlem.

Ek kaynaklar