Gerçek zamanlı özellik sunma için çevrimiçi tabloları kullanma
Önemli
Çevrimiçi Tablolar genel önizleme aşamasındadır. Önizleme sırasında Verileri Çevrimiçi Tablolar'a almak SQL Sunucusuz DBU'ları kullanır. Çevrimiçi Tablolar için son fiyatlandırma gelecekteki bir tarihte kullanıma sunulacaktır.
Çevrimiçi Tablolar Önizlemesi şu bölgelerde kullanılabilir: westus
, eastus
, eastus2
, northeurope
, . westeurope
Çevrimiçi tablo, çevrimiçi erişim için iyileştirilmiş satır odaklı biçimde depolanan delta tablosunun salt okunur bir kopyasıdır. Çevrimiçi tablolar, istek yüküyle aktarım hızı kapasitesini otomatik olarak ölçeklendirin ve herhangi bir ölçekteki verilere düşük gecikme süresi ve yüksek aktarım hızı erişimi sağlayan tam sunucusuz tablolardır. Çevrimiçi tablolar Databricks Model Sunma, Özellik Sunma ve hızlı veri aramaları için kullanılan alma artırılmış nesil (RAG) uygulamalarıyla çalışacak şekilde tasarlanmıştır.
Lakehouse Federation kullanarak sorgularda çevrimiçi tabloları da kullanabilirsiniz. Lakehouse Federation kullanırken, çevrimiçi tablolara erişmek için Sunucusuz SQL ambarı kullanmanız gerekir. Yalnızca okuma işlemleri (SELECT
) desteklenir. Bu özellik yalnızca etkileşimli veya hata ayıklama amacıyla tasarlanmıştır ve üretim veya görev açısından kritik iş yükleri için kullanılmamalıdır.
Databricks kullanıcı arabirimini kullanarak çevrimiçi tablo oluşturmak tek adımlı bir işlemdir. Katalog Gezgini'nde Delta tablosunu seçin ve Çevrimiçi tablo oluştur'u seçin. Çevrimiçi tablolar oluşturmak ve yönetmek için REST API veya Databricks SDK'sını da kullanabilirsiniz. Bkz . API'leri kullanarak çevrimiçi tablolarla çalışma.
Gereksinimler
- Unity Kataloğu için çalışma alanının etkinleştirilmesi gerekir. Unity Kataloğu Meta Veri Deposu oluşturmak, çalışma alanında etkinleştirmek ve katalog oluşturmak için belgeleri izleyin.
- Çevrimiçi tablolara erişmek için bir modelin Unity Kataloğu'na kaydedilmesi gerekir.
Kullanıcı arabirimini kullanarak çevrimiçi tablolarla çalışma
Bu bölümde, çevrimiçi tabloların nasıl oluşturulacağı ve silineceği ve çevrimiçi tabloların durumunun nasıl denetleneceği ve güncelleştirmelerin nasıl tetikleyeceği açıklanır.
Kullanıcı arabirimini kullanarak çevrimiçi tablo oluşturma
Katalog Gezgini'nin kullanıldığı bir çevrimiçi tablo oluşturursunuz. Gerekli izinler hakkında bilgi için bkz . Kullanıcı izinleri.
Çevrimiçi tablo oluşturmak için kaynak Delta tablosunun birincil anahtarı olmalıdır. Kullanmak istediğiniz Delta tablosunun birincil anahtarı yoksa, şu yönergeleri izleyerek bir tane oluşturun: Unity Kataloğu'nda var olan bir Delta tablosunu özellik tablosu olarak kullanma.
Katalog Gezgini'nde, çevrimiçi bir tabloyla eşitlemek istediğiniz kaynak tabloya gidin. Oluştur menüsünde Çevrimiçi tablo'ya tıklayın.
Çevrimiçi tabloyu yapılandırmak için iletişim kutusundaki seçicileri kullanın.
Ad: Unity Kataloğu'ndaki çevrimiçi tablo için kullanılacak ad.
Birincil Anahtar: Çevrimiçi tabloda birincil anahtar olarak kullanılacak kaynak tablodaki sütun(lar).
Timeseries Anahtarı: (İsteğe bağlı). Kaynak tablodaki zaman çizelgeleri anahtarı olarak kullanılacak sütun. Belirtildiğinde, çevrimiçi tablo yalnızca her birincil anahtar için en son zaman çizelgeleri anahtar değerine sahip satırı içerir.
Eşitleme modu: Eşitleme işlem hattının çevrimiçi tabloyu nasıl güncelleştiren olduğunu belirtir. Anlık Görüntü, Tetiklenen veya Sürekli'yi seçin.
İlke Açıklama Snapshot İşlem hattı bir kez çalıştırılarak kaynak tablonun anlık görüntüsünü alır ve çevrimiçi tabloya kopyalar. Kaynak tabloda yapılan sonraki değişiklikler, kaynağın yeni bir anlık görüntüsü alınarak ve yeni bir kopya oluşturularak otomatik olarak çevrimiçi tabloya yansıtılır. Çevrimiçi tablonun içeriği atomik olarak güncelleştirilir. Tetiklenmiş İşlem hattı, çevrimiçi tabloda kaynak tablonun ilk anlık görüntü kopyasını oluşturmak için bir kez çalışır. Anlık görüntü eşitleme modundan farklı olarak, çevrimiçi tablo yenilendiğinde yalnızca son işlem hattı yürütmesi alındığından ve çevrimiçi tabloya uygulandığından bu yana değişir. Artımlı yenileme, bir zamanlamaya göre el ile tetiklenebilir veya otomatik olarak tetiklenebilir. Sürekli İşlem hattı sürekli çalışır. Kaynak tabloda yapılan sonraki değişiklikler, çevrimiçi tabloya gerçek zamanlı akış modunda artımlı olarak uygulanır. El ile yenileme gerekmez.
Not
Tetiklenen veya Sürekli eşitleme modunu desteklemek için kaynak tabloda Değişiklik veri akışı etkinleştirilmiş olmalıdır.
- İşiniz bittiğinde Onayla'ya tıklayın. Çevrimiçi tablo sayfası görüntülenir.
- Yeni çevrimiçi tablo, oluşturma iletişim kutusunda belirtilen katalog, şema ve ad altında oluşturulur. Katalog Gezgini'nde, çevrimiçi tablo ile gösterilir.
Kullanıcı arabirimini kullanarak durum alma ve güncelleştirmeleri tetikleme
Çevrimiçi tablonun durumunu denetlemek için Katalog'da tablonun adına tıklayarak açın. Genel Bakış sekmesi açık olarak çevrimiçi tablo sayfası görüntülenir. Veri Alma bölümü en son güncelleştirmenin durumunu gösterir. Bir güncelleştirmeyi tetikleme için Şimdi eşitle'ye tıklayın. Veri Alma bölümü, tabloyu güncelleştiren Delta Live Tables işlem hattına bir bağlantı da içerir.
Kullanıcı arabirimini kullanarak çevrimiçi tablo silme
Çevrimiçi tablo sayfasından kebap menüsünde Sil'i seçin.
API'leri kullanarak çevrimiçi tablolarla çalışma
Çevrimiçi tablolar oluşturmak ve yönetmek için Databricks SDK'sını veya REST API'yi de kullanabilirsiniz.
Başvuru bilgileri için Python için Databricks SDK'sının veya REST API'sinin başvuru belgelerine bakın.
Gereksinimler
Databricks SDK sürüm 0.20 veya üzeri.
API'leri kullanarak çevrimiçi tablo oluşturma
Databricks sdk - python
from pprint import pprint
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.catalog import *
w = WorkspaceClient(host='https://xxx.databricks.com', token='xxx')
# Create an online table
spec = OnlineTableSpec(
primary_key_columns=["pk_col"],
source_table_full_name="main.default.source_table",
run_triggered=OnlineTableSpecTriggeredSchedulingPolicy.from_dict({'triggered': 'true'})
)
w.online_tables.create(name='main.default.my_online_table', spec=spec)
Rest API
curl --request POST "https://xxx.databricks.com/api/2.0/online-tables" \
--header "Authorization: Bearer xxx" \
--data '{
"name": "main.default.my_online_table",
"spec": {
"run_triggered": {},
"source_table_full_name": "main.default.source_table",
"primary_key_columns": ["a"]
}
}'
Çevrimiçi tablo oluşturulduktan sonra otomatik olarak eşitlenir.
API'leri kullanarak durum alma ve yenilemeyi tetikleme
Aşağıdaki örneği izleyerek çevrimiçi tablonun durumunu ve belirtimini görüntüleyebilirsiniz. Çevrimiçi tablonuz sürekli değilse ve verilerinin el ile yenilenmesini tetiklemek istiyorsanız, bunu yapmak için işlem hattı API'sini kullanabilirsiniz.
Çevrimiçi tablo belirtimindeki çevrimiçi tabloyla ilişkilendirilmiş işlem hattı kimliğini kullanın ve yenilemeyi tetiklemek için işlem hattında yeni bir güncelleştirme başlatın. Bu, Katalog Gezgini'ndeki çevrimiçi tablo kullanıcı arabiriminde Şimdi eşitle'ye tıklamaya eşdeğerdir.
Databricks sdk - python
pprint(w.online_tables.get('main.default.my_online_table'))
# Sample response
OnlineTable(name='main.default.my_online_table',
spec=OnlineTableSpec(perform_full_copy=None,
pipeline_id='some-pipeline-id',
primary_key_columns=['pk_col'],
run_continuously=None,
run_triggered={},
source_table_full_name='main.default.source_table',
timeseries_key=None),
status=OnlineTableStatus(continuous_update_status=None,
detailed_state=OnlineTableState.PROVISIONING,
failed_status=None,
message='Online Table creation is '
'pending. Check latest status in '
'Delta Live Tables: '
'https://xxx.databricks.com/pipelines/some-pipeline-id',
provisioning_status=None,
triggered_update_status=None))
# Trigger an online table refresh by calling the pipeline API. To discard all existing data
# in the online table before refreshing, set "full_refresh" to "True". This is useful if your
# online table sync is stuck due to, for example, the source table being deleted and recreated
# with the same name while the sync was running.
w.pipelines.start_update(pipeline_id='some-pipeline-id', full_refresh=True)
Rest API
curl --request GET \
"https://xxx.databricks.com/api/2.0/online-tables/main.default.my_online_table" \
--header "Authorization: Bearer xxx"
# Sample response
{
"name": "main.default.my_online_table",
"spec": {
"run_triggered": {},
"source_table_full_name": "main.default.source_table",
"primary_key_columns": ["pk_col"],
"pipeline_id": "some-pipeline-id"
},
"status": {
"detailed_state": "PROVISIONING",
"message": "Online Table creation is pending. Check latest status in Delta Live Tables: https://xxx.databricks.com#joblist/pipelines/some-pipeline-id"
}
}
# Trigger an online table refresh by calling the pipeline API. To discard all existing data
# in the online table before refreshing, set "full_refresh" to "True". This is useful if your
# online table sync is stuck due to, for example, the source table being deleted and recreated
# with the same name while the sync was running.
curl --request POST "https://xxx.databricks.com/api/2.0/pipelines/some-pipeline-id/updates" \
--header "Authorization: Bearer xxx" \
--data '{
"full_refresh": true
}'
API'leri kullanarak çevrimiçi tablo silme
Databricks sdk - python
w.online_tables.delete('main.default.my_online_table')
Rest API
curl --request DELETE \
"https://xxx.databricks.com/api/2.0/online-tables/main.default.my_online_table" \
--header "Authorization: Bearer xxx"
Çevrimiçi tablonun silinmesi, devam eden veri eşitlemelerini durdurur ve tüm kaynaklarını serbest bırakır.
Uç nokta sunan bir özellik kullanarak çevrimiçi tablo verilerini sunma
Databricks dışında barındırılan modeller ve uygulamalar için, çevrimiçi tablolardan özellikler sunmak için uç noktaya hizmet veren bir özellik oluşturabilirsiniz. Uç nokta, rest API kullanarak özellikleri düşük gecikme süresiyle kullanılabilir hale getirir.
Özellik belirtimi oluşturun.
Özellik belirtimi oluşturduğunuzda kaynak Delta tablosunu belirtirsiniz. Bu özellik belirtiminin hem çevrimdışı hem de çevrimiçi senaryolarda kullanılmasını sağlar. Çevrimiçi aramalarda, sunum uç noktası düşük gecikme süreli özellik aramaları gerçekleştirmek için otomatik olarak çevrimiçi tabloyu kullanır.
Kaynak Delta tablosu ve çevrimiçi tablo aynı birincil anahtarı kullanmalıdır.
Özellik belirtimi, Katalog Gezgini'ndeki İşlev sekmesinde görüntülenebilir.
from databricks.feature_engineering import FeatureEngineeringClient, FeatureLookup fe = FeatureEngineeringClient() fe.create_feature_spec( name="catalog.default.user_preferences_spec", features=[ FeatureLookup( table_name="user_preferences", lookup_key="user_id" ) ] )
Uç noktaya hizmet veren bir özellik oluşturun.
Bu adımda, Delta tablosundan verileri eşitleyen adlı
user_preferences_online_table
bir çevrimiçi tablouser_preferences
oluşturduğunuz varsayılır. Özellik sunma uç noktası oluşturmak için özellik belirtimini kullanın. Uç nokta, ilişkili çevrimiçi tabloyu kullanarak verileri REST API aracılığıyla kullanılabilir hale getirir.Not
Bu işlemi gerçekleştiren kullanıcının hem çevrimdışı tablonun hem de çevrimiçi tablonun sahibi olması gerekir.
Databricks sdk - python
from databricks.sdk import WorkspaceClient from databricks.sdk.service.serving import EndpointCoreConfigInput, ServedEntityInput workspace = WorkspaceClient() # Create endpoint endpoint_name = "fse-location" workspace.serving_endpoints.create_and_wait( name=endpoint_name, config=EndpointCoreConfigInput( served_entities=[ ServedEntityInput( entity_name=feature_spec_name, scale_to_zero_enabled=True, workload_size="Small" ) ] ) )
Python api'si
fe.create_feature_serving_endpoint( name="user-preferences", config=EndpointCoreConfig( served_entities=ServedEntity( feature_spec_name="catalog.default.user_preferences_spec", workload_size="Small", scale_to_zero_enabled=True ) ) )
Özellik sunma uç noktasından veri alın.
API uç noktasına erişmek için uç nokta URL'sine bir HTTP GET isteği gönderin. Örnekte Python API'lerini kullanarak bunu nasıl yapacağınız gösterilmektedir. Diğer diller ve araçlar için bkz . Özellik Sunma.
# Set up credentials export DATABRICKS_TOKEN=...
url = "https://{workspace_url}/serving-endpoints/user-preferences/invocations" headers = {'Authorization': f'Bearer {DATABRICKS_TOKEN}', 'Content-Type': 'application/json'} data = { "dataframe_records": [{"user_id": user_id}] } data_json = json.dumps(data, allow_nan=True) response = requests.request(method='POST', headers=headers, url=url, data=data_json) if response.status_code != 200: raise Exception(f'Request failed with status {response.status_code}, {response.text}') print(response.json()['outputs'][0]['hotel_preference'])
RAG uygulamalarıyla çevrimiçi tablolar kullanma
RAG uygulamaları, çevrimiçi tablolar için yaygın bir kullanım örneğidir. RAG uygulamasının ihtiyaç duyduğu yapılandırılmış veriler için çevrimiçi bir tablo oluşturur ve bunu uç noktaya hizmet veren bir özellikte barındırırsınız. RAG uygulaması, çevrimiçi tablodan ilgili verileri aramak için uç noktayı sunan özelliği kullanır.
Tipik adımlar şunlardır:
- Uç noktaya hizmet veren bir özellik oluşturun.
- İlgili verileri aramak için uç noktayı kullanan bir LangChainTool oluşturun.
- İlgili verileri almak için LangChain aracısında aracını kullanın.
- LangChain uygulamasını barındırmak için uç noktaya hizmet veren bir model oluşturun.
Adım adım yönergeler için aşağıdaki örnek not defterine bakın.
Not defteri örnekleri
Aşağıdaki not defterinde, gerçek zamanlı sunum ve otomatik özellik araması için çevrimiçi tablolarda özelliklerin nasıl yayımlanması gösterilmektedir.
Çevrimiçi tablolar tanıtım not defteri
Aşağıdaki not defterinde Databricks çevrimiçi tablolarının nasıl kullanılacağı ve artırılmış nesil (RAG) uygulamaları için uç noktalar sunan özelliklerin nasıl kullanılacağı gösterilmektedir.
RAG uygulamaları demo not defteri ile çevrimiçi tablolar
Databricks Model Sunma ile çevrimiçi tabloları kullanma
Databricks Model Sunma özelliklerini aramak için çevrimiçi tabloları kullanabilirsiniz. Bir özellik tablosunu çevrimiçi bir tabloyla eşitlediğinizde, bu özellik tablosundaki özellikler kullanılarak eğitilen modeller çıkarım sırasında otomatik olarak çevrimiçi tablodan özellik değerlerini arar. Ek yapılandırma gerekmez.
Modeli eğitmek için bir
FeatureLookup
kullanın.Model eğitimi için, aşağıdaki örnekte gösterildiği gibi model eğitim kümesindeki çevrimdışı özellik tablosundaki özellikleri kullanın:
training_set = fe.create_training_set( df=id_rt_feature_labels, label='quality', feature_lookups=[ FeatureLookup( table_name="user_preferences", lookup_key="user_id" ) ], exclude_columns=['user_id'], )
Databricks Model Sunma ile modeli sunma. Model, çevrimiçi tablodan özellikleri otomatik olarak arar. Ayrıntılar için bkz . Databricks'te MLflow modelleriyle otomatik özellik arama.
Kullanıcı izinleri
Çevrimiçi tablo oluşturmak için aşağıdaki izinlere sahip olmanız gerekir:
SELECT
ayrıcalığını gösterir.USE_CATALOG
ayrıcalığı.USE_SCHEMA
veCREATE_TABLE
hedef şemada ayrıcalık.
Çevrimiçi bir tablonun veri eşitleme işlem hattını yönetmek için, çevrimiçi tablonun sahibi olmanız veya çevrimiçi tabloda YENİLEME ayrıcalığına sahip olmanız gerekir. Katalogda USE_CATALOG ve USE_SCHEMA ayrıcalıkları olmayan kullanıcılar Katalog Gezgini'nde çevrimiçi tabloyu görmez.
Unity Kataloğu meta veri deposu Ayrıcalık Modeli Sürüm 1.0'a sahip olmalıdır.
Uç nokta izin modeli
Verileri sorgulamak ve işlevleri yürütmek için gereken sınırlı izinlere sahip uç noktaya hizmet sunan veya model sunan bir özellik için otomatik olarak benzersiz bir sistem hizmet sorumlusu oluşturulur. Bu hizmet sorumlusu, uç noktaların verilerine ve işlev kaynaklarına kaynağı oluşturan kullanıcıdan bağımsız olarak erişmesini sağlar ve oluşturucu çalışma alanından ayrılırsa uç noktanın çalışmaya devam etmesini sağlar.
Bu sistem hizmet sorumlusunun ömrü uç noktanın ömrüdür. Denetim günlükleri, Unity Kataloğu kataloğunun sahibi için sistem tarafından oluşturulan ve bu sistem hizmet sorumlusuna gerekli ayrıcalıkları veren kayıtları gösterebilir.
Sınırlamalar
- Kaynak tablo başına yalnızca bir çevrimiçi tablo desteklenir.
- Çevrimiçi bir tablo ve kaynak tablosunun en fazla 1000 sütunu olabilir.
- ARRAY, MAP veya STRUCT veri türlerinin sütunları çevrimiçi tabloda birincil anahtar olarak kullanılamaz.
- Bir sütun çevrimiçi tabloda birincil anahtar olarak kullanılıyorsa, kaynak tablodaki sütunun null değerler içerdiği tüm satırlar yoksayılır.
- Yabancı, sistem ve iç tablolar kaynak tablo olarak desteklenmez.
- Delta değişiklik veri akışı etkin olmayan kaynak tablolar yalnızca Anlık görüntü eşitleme modunu destekler.
- Delta Sharing tabloları yalnızca Anlık görüntü eşitleme modunda desteklenir.
- Çevrimiçi tablonun katalog, şema ve tablo adları yalnızca alfasayısal karakterler ve alt çizgi içerebilir ve sayılarla başlamamalıdır. Tirelere (
-
) izin verilmez. - Dize türü sütunları 64 KB uzunlukla sınırlıdır.
- Sütun adlarının uzunluğu 64 karakterle sınırlıdır.
- Satırın en büyük boyutu 2 MB'tır.
- Geçitli genel önizleme sırasında çevrimiçi tablonun boyutu üst sınırı 200 GB sıkıştırılmamış kullanıcı verileridir.
- Geçitli genel önizleme sırasında Unity Kataloğu meta veri deposundaki tüm çevrimiçi tabloların birleşik boyutu 1 TB sıkıştırılmamış kullanıcı verileridir.
- Saniye başına en fazla sorgu sayısı (QPS) 200'dür. Bu sınır 25.000 veya daha fazla olabilir. Sınırı artırmak için Databricks hesap ekibinize ulaşın.
Sorun giderme
Çevrimiçi tablo oluştur seçeneğini görmüyorum
Bunun nedeni genellikle eşitlemeye çalıştığınız tablonun (kaynak tablo) desteklenen bir tür olmamasıdır. Kaynak tablonun Güvenli Hale Getirilebilir Türü(Katalog Gezgini Ayrıntıları sekmesinde gösterilir) aşağıdaki desteklenen seçeneklerden biri olduğundan emin olun:
TABLE_EXTERNAL
TABLE_DELTA
TABLE_DELTA_EXTERNAL
TABLE_DELTASHARING
TABLE_DELTASHARING_MUTABLE
TABLE_STREAMING_LIVE_TABLE
TABLE_STANDARD
TABLE_FEATURE_STORE
TABLE_FEATURE_STORE_EXTERNAL
TABLE_VIEW
TABLE_VIEW_DELTASHARING
TABLE_MATERIALIZED_VIEW
Çevrimiçi tablo oluştururken Tetiklenen veya Sürekli eşitleme modlarını seçemiyorum
Bu durum, kaynak tabloda Delta değişiklik veri akışının etkinleştirilmemesi veya Görünüm veya Gerçekleştirilmiş Görünüm olması durumunda ortaya çıkar. Artımlı eşitleme modunu kullanmak için kaynak tabloda değişiklik veri akışını etkinleştirin veya görüntüleme olmayan bir tablo kullanın.
Çevrimiçi tablo güncelleştirmesi başarısız oluyor veya durum çevrimdışı görünüyor
Bu hatayla ilgili sorunları gidermeye başlamak için, Katalog Gezgini'ndeki çevrimiçi tablonun Genel Bakış sekmesinde görüntülenen işlem hattı kimliğine tıklayın.
Görüntülenen işlem hattı kullanıcı arabirimi sayfasında "'__online_table' akışı çözümlenemedi" yazan girişe tıklayın.
Hata ayrıntıları bölümünde ayrıntıları içeren bir açılır pencere görüntülenir.
Hataların yaygın nedenleri şunlardır:
Çevrimiçi tablo eşitlenirken kaynak tablo silindi veya silindi ve aynı adla yeniden oluşturuldu. Bunlar sürekli eşitlendiğinden, bu özellikle sürekli çevrimiçi tablolarda yaygındır.
Güvenlik duvarı ayarları nedeniyle kaynak tabloya Sunucusuz İşlem aracılığıyla erişilemiyor. Bu durumda, Hata ayrıntıları bölümünde "xxx...kümesinde DLT hizmeti başlatılamadı" hata iletisi gösterebilirsiniz.
Çevrimiçi tabloların toplam boyutu, meta veri deposu genelindeki 1 TiB (sıkıştırılmamış boyut) sınırını aşıyor. 1 TiB sınırı, Delta tablosunu satır odaklı biçimde genişletildikten sonra sıkıştırılmamış boyutu ifade eder. Tablonun satır biçimindeki boyutu, Katalog Gezgini'nde gösterilen Delta tablosunun boyutundan önemli ölçüde büyük olabilir. Bu, tablonun sütun odaklı biçimdeki sıkıştırılmış boyutuna başvurur. Tablo içeriğine bağlı olarak fark 100x kadar büyük olabilir.
Delta tablosunun sıkıştırılmamış, satır genişletilmiş boyutunu tahmin etmek için Sunucusuz SQL Ambarı'ndan aşağıdaki sorguyu kullanın. Sorgu, tahmini genişletilmiş tablo boyutunu bayt cinsinden döndürür. Bu sorgunun başarıyla yürütülmesi, Sunucusuz İşlem'in kaynak tabloya erişebildiğini de onaylar.
SELECT sum(length(to_csv(struct(*)))) FROM `source_table`;
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin