Bir SQL dağıtımında kullanmak için bir UDF kaydetmeniz gerekir. Bu konuda UDF'lerin nasıl kaydedileceği, güncelleneceği ve silineceği açıklanmaktadır.
Başlamadan önce
Bir RAM kullanıcısının veya RAM rolünün UDF'leri yönetmesi gerekiyorsa, hedef ad alanına erişim iznine sahip olduğundan emin olun. Daha fazla bilgi için bkz. geliştirme konsolu yetkilendirmesi.
-
UDF geliştirirken JAR dosyalarındaki bağımlılık çakışmalarını önlemek için aşağıdaki yönergeleri uygulayın:
Geliştirme sayfasında seçtiğiniz Flink sürümünün POM bağımlılığınızdaki Flink sürümüyle eşleştiğinden emin olun.
Flink ile ilgili bağımlılıklar için,
<scope>provided</scope>ekleyerek kapsamını provided olarak ayarlayın.Diğer üçüncü taraf bağımlılıkları paketlemek için Apache Maven Shade Plugin'i kullanın. Daha fazla bilgi için bkz. Apache Maven Shade Plugin.
NotFlink bağımlılık çakışmaları hakkında daha fazla bilgi için bkz. Flink bağımlılık çakışmalarını nasıl giderebilirim?.
Bir UDF Kaydetme
Katalog UDF'leri
-
UDF kayıt sayfasına gidin.
Realtime Compute for Apache Flink konsolunda oturum açın.
Hedef çalışma alanının Actions sütununda Console öğesini tıklayın.
Sol gezinme bölmesinde öğelerini seçin.
Functions sekmesini tıklayın.
Register UDF öğesini tıklayın.
-
UDF JAR dosyasını yükleyin.
Bir UDF JAR dosyasını aşağıdaki yöntemlerden biriyle yükleyebilirsiniz:
-
Upload a file: UDF yapınızı seçmek için Select a file alanının yanındaki Select a file öğesini tıklayın. UDF'nin bağımlılıkları varsa, gerekli dosyaları yüklemek için Dependency File alanının yanındaki Select a file öğesini tıklayın.
NotUDF dosyanız, seçtiğiniz OSS paketindeki sql-artifacts dizinine yüklenir.
Java UDF için bağımlılıklar UDF JAR dosyasına paketlenmiş veya ayrı olarak yüklenebilir. Python UDF için bağımlılıkları ayrı olarak yüklemenizi öneririz.
-
External URL: Başka bir hizmetten bir UDF dosyası kullanmak için harici URL'sini belirtin.
Notİki tür harici URL desteklenir:
Flink çalışma alanınızla ilişkili OSS paketi. Paket ayrıntılarını Yönetim Portalındaki Workspace Details sayfasında görüntüleyin.
Realtime Compute for Apache Flink'in erişimine sahip olduğu (genel okuma veya izin verilmiş) harici bir depolama sistemi için URL.
-
OK öğesini tıklayın.
-
Available Functions sayfasında kaydetmek istediğiniz UDF'leri seçin ve Create Function öğesini tıklayın.
Geliştirme konsolu, yapı dosyasını ayrıştırır, Flink UDF, UDAF ve UDTF arayüzlerini kullanan sınıfları belirler ve İşlev Adı alanını sınıf adlarıyla otomatik olarak doldurur. Bir UDF kaydedildikten sonra bunu Functions listesinde görüntüleyebilirsiniz. Kayıtlı her UDF'nin solunda sarı bir "fx" simgesi görünür.
NotBir katalog UDF'si kaydederken, varsayılan olarak ayrıştırma için en son Flink sürümü kullanılır. SQL dağıtımınız daha eski bir altyapı sürümü kullanıyorsa bu durum uyumsuzluk sorunlarına neden olabilir. Bunu çözmek için UDF kodunu gereken altyapı sürümüne göre uygulayabilir ve dağıtım düzeyinde bir UDF olarak kaydedebilirsiniz. Daha fazla bilgi için bkz. Dağıtım Düzeyinde UDF'ler.
Dağıtım Düzeyinde UDF'ler
Dağıtım düzeyinde Python UDF'leri yalnızca VVR 8.0.3 ve sonraki sürümlerde desteklenir.
Dağıtım düzeyinde bir Python UDF kullanırken, dağıtım parametrelerinde
python.filesveyapython.archivesgibi parametreleri kullanarak bağımlılık dosyalarını yapılandırabilirsiniz.Dağıtım düzeyinde bir Python UDF kullanırken sözdizimi denetimi desteklenmez. Dağıtımı başlatırken sözdizimi denetimini atlamalısınız.
Dağıtım düzeyinde bir UDF kaydetmek için şu adımları izleyin:
-
UDF JAR dosyasını veya Python dosyasını yükleyin.
Sol gezinme bölmesinde Artifacts bölümüne gidin ve UDF JAR veya Python dosyasını yükleyin.
-
Dağıtımda dağıtım düzeyinde UDF'yi belirtin.
Dağıtım için Additional Dependencies bölümünde UDF JAR veya Python dosyasını belirtin.
-
Dağıtım düzeyinde UDF'yi kaydedin.
-
Java UDF
CREATE TEMPORARY FUNCTION yourfunctionname; -
Python UDF
CREATE TEMPORARY FUNCTION yourfunctionname LANGUAGE Python;
-
Bir UDF'yi Güncelleme
Yeni bir UDF ekledikten veya mevcut olanı değiştirdikten sonra bir UDF JAR dosyasını güncellemek için şu adımları izleyin.
-
UDF kayıt sayfasına gidin.
Realtime Compute for Apache Flink konsolunda oturum açın.
Hedef çalışma alanının Actions sütununda Console öğesini tıklayın.
Sol gezinme bölmesinde öğelerini seçin.
Functions sekmesini tıklayın.
Functions listesinde hedef UDF adının üzerine gelin ve
simgesini tıklayın.-
UDF JAR dosyasını yükleyin. Update UDF JAR iletişim kutusunda Upload a file veya External URL yöntemini seçin, Select a file ve Dependency File alanlarını yapılandırın ve Modify öğesini tıklayın.
ÖnemliYeni UDF JAR dosyası, şu anda kayıtlı olan tüm UDF'lerin sınıflarını içermelidir.
Yeni UDF JAR dosyasındaki değişiklikler yalnızca yeni veya yeniden başlatılan dağıtımlar için geçerli olur. Çalışan dağıtımlar, yeniden başlatılana kadar eski dosyayı kullanmaya devam eder.
Modify öğesini tıklayın.
Bir UDF'yi Silme
Bir UDF JAR dosyasını silmeden önce, ondan kaydedilen UDF'lere başvuran herhangi bir dağıtım veya SQL dosyası olmadığından emin olun.
Bir UDF JAR dosyasını silmek için şu adımları izleyin:
-
UDF kayıt sayfasına gidin.
Realtime Compute for Apache Flink konsolunda oturum açın.
Hedef çalışma alanının Actions sütununda Console öğesini tıklayın.
Sol gezinme bölmesinde öğelerini seçin.
Functions sekmesini tıklayın.
Functions listesinde hedef UDF adının üzerine gelin ve
simgesini tıklayın.-
Delete all functions and the associated file onay kutusunu seçin.
UDF JAR dosyasını silmek için veri tutarsızlıklarını önlemek amacıyla ondan kaydedilen tüm UDF'leri de silmelisiniz.
OK öğesini tıklayın.
İlgili konular
JAR tabanlı UDF'lerin türleri, parametre aktarımı, kullanımı ve demoları hakkında bilgi için bkz. Java UDF'leri ve UDAF'lar.
Python UDF'lerin türleri, bağımlılık yönetimi, hata ayıklama, performans ayarlama, kullanımı ve demoları hakkında bilgi için bkz. Python UDF'leri ve UDAF'lar.