Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfada, taşıyıcı belirteçleri ile OpenSharing açık paylaşım protokolü kullanılarak sizinle paylaşılan verilerin nasıl okunduğu açıklanmaktadır. Aşağıdaki araçları kullanarak paylaşılan verileri okumaya yönelik yönergeler içerir:
Bu paylaşım modelinde, paylaşılan verilere güvenli okuma erişimi elde etmek için veri sağlayıcısı tarafından ekibinizin bir üyesiyle paylaşılan bir kimlik bilgisi dosyası kullanırsınız. Kimlik bilgisi geçerli olduğu ve sağlayıcının verileri paylaşmaya devam etmesi sürece Erişim devam eder. Sağlayıcılar kimlik bilgisi süre sonunu ve yenilemeyi yönetir. Verilerde yapılan güncelleştirmeler neredeyse gerçek zamanlı olarak kullanılabilir. Paylaşılan verileri okuyabilir ve kopyalayabilirsiniz, ancak kaynak verileri değiştiremezsiniz.
Note
Databricks-Databricks OpenSharing kullanılarak veriler sizinle paylaşıldıysa, verilere erişmek için bir kimlik bilgisi dosyasına ihtiyacınız yoktur ve bu sayfa sizin için geçerli değildir. Bunun yerine bkz. Databricks-to-Databricks OpenSharing (alıcılar için) kullanılarak paylaşılan verileri okuma.
Aşağıdaki bölümlerde, kimlik bilgisi dosyasını kullanarak paylaşılan verilere erişmek ve bunları okumak için Apache Spark, pandas, Power BI ve Iceberg istemcilerinin nasıl kullanılacağı açıklanmaktadır. OpenSharing bağlayıcılarının tam listesi ve bunların nasıl kullanılacağı hakkında bilgi için OpenSharing açık kaynak belgelerine bakın. Paylaşılan verilere erişirken sorunla karşılaşırsanız veri sağlayıcısına başvurun.
başlamadan önce
Ekibinizin bir üyesi, veri sağlayıcısı tarafından paylaşılan kimlik bilgileri dosyasını indirmeli ve bu dosyayı veya dosya konumunu sizinle paylaşmak için güvenli bir kanal kullanmalıdır. Bkz. Databricks-To-Open paylaşım modelinde erişim alma.
Bağlayıcıya özgü belgeler için indirme kimlik bilgileri sayfasına bakın.
Iceberg istemcileri: Paylaşılan verileri okuma
Apache Iceberg REST Katalog API'sini kullanarak sıfır kopya erişimine sahip paylaşılan veri varlıklarını okumak için Snowflake, Trino, Flink ve Spark gibi dış Iceberg istemcilerini kullanın.
Bağlantı kimlik bilgilerini alma
Dış Iceberg istemcileriyle paylaşılan veri varlıklarına erişmeden önce aşağıdaki kimlik bilgilerini toplayın:
- Iceberg REST Kataloğu uç noktası
- Geçerli bir Bearer jetonu
- Paylaşım adı
- (İsteğe bağlı) Ad alanı veya şema adı
- (İsteğe bağlı) Tablo adı
Iceberg REST Kataloğu uç noktası (icebergEndpoint) ve Taşıyıcı belirteci, veri sağlayıcınız tarafından sizinle paylaşılan kimlik bilgileri dosyasında bulunur. Daha fazla bilgi için Başlamadan önce bölümüne bakın. Paylaşım adı, ad alanı ve tablo adı OpenSharing API'leri kullanılarak program aracılığıyla bulunabilir.
Important
icebergEndpoint, kimlik bilgisi dosyasında bulunur ve biçimindedir<workspace-url>/api/2.0/delta-sharing/metastores/<metastore-id>/iceberg.
Aşağıdaki örneklerde ek kimlik bilgilerinin nasıl alın aldığı gösterilmektedir. Gerektiğinde kimlik bilgisi dosyasından uç noktayı, Iceberg uç noktasını ve Bearer Token'ı girin.
// List shares
curl -X GET "<endpoint>/shares" \
-H "Authorization: Bearer <bearerToken>"
// List namespaces
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces" \
-H "Authorization: Bearer <bearerToken>"
// List tables
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces/<namespace>/tables" \
-H "Authorization: Bearer <bearerToken>"
Note
Bu yöntem her zaman varlıkların en güncel listesini alır. Ancak, İnternet erişimi gerektirir ve kod içermeyen ortamlarda tümleştirmek daha zor olabilir.
Iceberg kataloğunu yapılandırma
Gerekli bağlantı kimlik bilgilerini aldıktan sonra, istemcinizi tablo oluşturmak ve sorgulamak için Iceberg REST Kataloğu uç noktalarını kullanacak şekilde yapılandırın.
Her paylaşım için bir katalog tümleştirmesi oluşturun.
USE ROLE ACCOUNTADMIN; CREATE OR REPLACE CATALOG INTEGRATION <CATALOG_PLACEHOLDER> CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG REST_CONFIG = ( CATALOG_URI = '<icebergEndpoint>', WAREHOUSE = '<share_name>', ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS ) REST_AUTHENTICATION = ( TYPE = BEARER, BEARER_TOKEN = '<bearerToken>' ) ENABLED = TRUE;İsteğe bağlı olarak meta verileri güncel tutmak için ekleyin
REFRESH_INTERVAL_SECONDS. Değeri katalog güncelleştirme sıklığınıza göre ayarlayın.REFRESH_INTERVAL_SECONDS = 30Katalog yapılandırıldıktan sonra katalogdan bir veritabanı oluşturun. Bu, söz konusu katalogdaki tüm şemaları ve tabloları otomatik olarak oluşturur.
CREATE DATABASE <DATABASE_PLACEHOLDER> LINKED_CATALOG = ( CATALOG = <CATALOG_PLACEHOLDER> );Paylaşımın başarılı olduğunu onaylamak için veritabanındaki bir tablodan sorgu yapın. Paylaşılan verileri Azure Databricks'te görmelisiniz.
Sonuç boşsa veya bir hata oluşursa şu yaygın sorun giderme adımlarını izleyin:
- Ayrıcalıkları, anlık görüntü oluşturma durumunu ve REST kimlik bilgilerini iki kez denetleyin.
- Veri sağlayıcınıza başvurun.
- Iceberg istemcinize özgü belgelere bakın.
Örnek: Farklı Iceberg istemcilerini kullanarak paylaşılan tablolara erişme
Aşağıdaki örneklerde, bağlantı kimlik bilgilerinizi aldıktan sonra Snowflake, Apache Spark, PyIceberg ve REST API gibi dış Iceberg istemcilerini kullanarak openshared tablolarına nasıl erişildiği gösterilmektedir. Bağlantı kimlik bilgilerini alma hakkında daha fazla bilgi için bkz. Başlamadan önce.
Snowflake
Snowflake'teki paylaşılan veri varlıklarını okumak için indirdiğiniz kimlik bilgisi dosyasını karşıya yükleyin ve gerekli SQL komutunu oluşturun:
OpenSharing etkinleştirme bağlantınızda Kar Tanesi simgesine tıklayın.
Snowflake tümleştirme sayfasında, veri sağlayıcısından aldığınız kimlik bilgileri dosyasını karşıya yükleyin.
Kimlik bilgilerini yükledikten sonra Snowflake'te erişmek istediğiniz paylaşımı seçin.
İstenen varlıkları seçtikten sonra SQL Oluştur'a tıklayın.
Oluşturulan SQL'i kopyalayıp Snowflake çalışma sayfanıza yapıştırın.
CATALOG_PLACEHOLDERile kullanmak istediğiniz kataloğun adını veDATABASE_PLACEHOLDERile kullanmak istediğiniz veritabanının adını değiştirin.
Sınırlamalar
Snowflake'te Iceberg REST Kataloğu'na bağlanmak için aşağıdaki sınırlamalar vardır:
- Meta veri dosyası en son anlık görüntüyle otomatik olarak güncelleştirilmez. Otomatik yenilemeye veya el ile yenilemelere güvenmeniz gerekir.
- R2 desteklenmez.
- Tüm Iceberg istemci sınırlamaları geçerlidir.
Apache Spark
Apache Spark kullanarak paylaşılan tablolara erişmek için Iceberg REST Katalog API'sini aşağıdaki ayarlarla yapılandırın. Kataloğunuz için bir ad ile <spark-catalog-name> öğesini değiştirin ve bağlantı kimlik bilgilerinizi sağlayın.
"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
# Configuration for accessing tables shared using Delta Sharing
"spark.sql.catalog.<spark-catalog-name>":"org.apache.iceberg.spark.SparkCatalog",
"spark.sql.catalog.<spark-catalog-name>.type": "rest",
"spark.sql.catalog.<spark-catalog-name>.uri": "<icebergEndpoint>",
"spark.sql.catalog.<spark-catalog-name>.token": "<bearerToken>",
"spark.sql.catalog.<spark-catalog-name>.warehouse":"<share_name>",
"spark.sql.catalog.<spark-catalog-name>.scope":"all-apis"
PyIceberg
PyIceberg , JVM kullanmadan Iceberg tablolarına erişmeye yönelik bir Python uygulamasıdır. PyIceberg, verileri okuma ve tablo meta verilerini inceleme gibi tablo işlemleri gerektirir pyarrow . PyIceberg'i şu ek özellikleriyle pyarrow yükleyin:
pip install "pyiceberg[pyarrow]"
Paylaşılan tablolara erişmek için PyIceberg yapılandırma dosyanıza aşağıdaki katalog yapılandırmasını ekleyin:
catalog:
delta_sharing:
type: rest
uri: <icebergEndpoint>
warehouse: <share_name>
token: <bearerToken>
REST API
Bir tabloyu yüklemek ve veri dosyalarına erişmek için geçici kimlik bilgileriyle birlikte meta verilerini almak için aşağıdaki curl örnekte olduğu gibi bir REST API çağrısı kullanın:
curl -X GET -H "Authorization: Bearer <bearerToken>" -H "Accept: application/json" \
<icebergEndpoint>/v1/shares/<share_name>/namespaces/<schema_name>/tables/<table_name>
Yanıt iceberg tablosu meta verilerini, S3 konumunu ve istemcinizin veri dosyalarını okumasına olanak sağlayan geçici AWS kimlik bilgilerini içerir:
{
"metadata-location": "s3://bucket/path/to/iceberg/table/metadata/file",
"metadata": <iceberg-table-metadata-json>,
"config": {
"expires-at-ms": "<epoch-ts-in-millis>",
"s3.access-key-id": "<temporary-s3-access-key-id>",
"s3.session-token": "<temporary-s3-session-token>",
"s3.secret-access-key": "<temporary-secret-access-key>",
"client.region": "<aws-bucket-region-for-metadata-location>"
}
}
Iceberg istemci sınırlamaları
Iceberg istemcilerinden OpenSharing verileri sorgulandığında aşağıdaki sınırlamalar geçerlidir:
- Bir ad alanında tabloları listelerken, ad alanı 100'den fazla paylaşılan görünüm içeriyorsa, yanıt ilk 100 görünümle sınırlıdır.
Apache Spark: Paylaşılan verileri okuma
Spark 3.x veya üzerini kullanarak paylaşılan verilere erişmek için bu adımları izleyin.
Bu yönergelerde, veri sağlayıcısı tarafından paylaşılan kimlik bilgileri dosyasına erişiminiz olduğu varsayılır. Bkz. Databricks-To-Open paylaşım modelinde erişim alma.
Important
Mutlak bir yol kullanarak kimlik bilgileri dosyanıza Apache Spark tarafından erişilebilir olduğundan emin olun. Yol bir bulut nesnesine veya Unity Kataloğu hacmine atıfta bulunabilir.
Note
Spark'ı Unity Kataloğu için etkinleştirilmiş bir Azure Databricks çalışma alanında kullanıyorsanız ve sağlayıcıyı içeri aktarmak ve paylaşmak için içeri aktarma sağlayıcı kullanıcı arabirimini kullandıysanız, bu bölümdeki yönergeler sizin için geçerli değildir. Paylaşılan tablolara, Unity Kataloğu'nda kayıtlı diğer tüm tablolarda olduğu gibi erişebilirsiniz.
delta-sharing Python bağlayıcısını yüklemeniz veya kimlik bilgisi dosyasının yolunu sağlamanız gerekmez. Bkz. Azure Databricks'da sağlayıcıyı içeri aktarma ve paylaşılan verileri okuma.
OpenSharing Python ve Spark bağlayıcılarını yükleme
Sizinle paylaşılan tabloların listesi gibi paylaşılan verilerle ilgili meta verilere erişmek için aşağıdakileri yapın. Bu örnekte Python kullanılır.
delta-sharing Python bağlayıcısını yükleyin. Python bağlayıcı sınırlamaları hakkında bilgi için bkz . OpenSharing Python bağlayıcı sınırlamaları.
pip install delta-sharing
Spark kullanarak paylaşılan tabloları listeleme
Paylaşımdaki tabloları listeleyin. Aşağıdaki örnekte, <profile-path> yerine kimlik bilgisi dosyasının konumunu değiştirin.
import delta_sharing
client = delta_sharing.SharingClient(f"<profile-path>/config.share")
client.list_all_tables()
Sonuç, her tablo için meta verilerin yanı sıra bir tablo dizisidir. Aşağıdaki çıkışta iki tablo gösterilmektedir:
Out[10]: [Table(name='example_table', share='example_share_0', schema='default'), Table(name='other_example_table', share='example_share_0', schema='default')]
Çıkış boşsa veya beklediğiniz tabloları içermiyorsa veri sağlayıcısına başvurun.
Spark kullanarak paylaşılan verilere erişme
Aşağıdaki değişkenleri değiştirerek aşağıdakileri çalıştırın:
-
<profile-path>: kimlik bilgisi dosyasının konumu. -
<share-name>: tablo içinshare=değeri. -
<schema-name>: tablo içinschema=değeri. -
<table-name>: tablo içinname=değeri. -
<version-as-of>:opsiyonel. Verileri yüklemek için tablonun sürümü. Yalnızca veri sağlayıcısı tablonun geçmişini paylaşıyorsa çalışır.delta-sharing-spark0.5.0 veya üzerini gerektirir. -
<timestamp-as-of>:opsiyonel. Verileri, belirtilen zaman damgasından önceki sürümde veya belirtilen zaman damgasında yükleyin. Yalnızca veri sağlayıcısı tablonun geçmişini paylaşıyorsa çalışır.delta-sharing-spark0.6.0 veya üzerini gerektirir.
Python
delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", version=<version-as-of>)
spark.read.format("deltaSharing")\
.option("versionAsOf", <version-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)
delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", timestamp=<timestamp-as-of>)
spark.read.format("deltaSharing")\
.option("timestampAsOf", <timestamp-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)
Scala
spark.read.format("deltaSharing")
.option("versionAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)
spark.read.format("deltaSharing")
.option("timestampAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)
Spark kullanarak paylaşılan değişiklik veri akışına erişme
Tablo geçmişi sizinle paylaşıldıysa ve kaynak tabloda değişiklik veri akışı (CDF) etkinleştirildiyse, aşağıdaki değişkenleri değiştirerek değişiklik veri akışına erişin.
delta-sharing-spark 0.5.0 veya üzerini gerektirir.
Bir başlangıç parametresi sağlanmalıdır.
-
<profile-path>: kimlik bilgisi dosyasının konumu. -
<share-name>: tablo içinshare=değeri. -
<schema-name>: tablo içinschema=değeri. -
<table-name>: tablo içinname=değeri. -
<starting-version>:opsiyonel. Sorgunun başlangıç sürümü (dahil). Uzun olarak belirtin. -
<ending-version>:opsiyonel. Sorgunun bitiş sürümü (dahil). Bitiş sürümü sağlanmazsa, API en son tablo sürümünü kullanır. -
<starting-timestamp>:opsiyonel. Sorgunun başlangıç zaman damgası, bu zaman damgasına eşit veya daha büyük bir versiyon oluşturacak şekilde dönüştürülür. Bir dizeyiyyyy-mm-dd hh:mm:ss[.fffffffff]biçiminde belirtin. -
<ending-timestamp>:opsiyonel. Sorgunun bitiş zaman damgası olan bu, bu zaman damgasının daha önce veya buna eşit şekilde oluşturulmuş bir sürümüne dönüştürülür. Biçimyyyy-mm-dd hh:mm:ss[.fffffffff]örneğinde bir dize olarak belirtin.
Python
delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_version=<starting-version>,
ending_version=<ending-version>)
delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_timestamp=<starting-timestamp>,
ending_timestamp=<ending-timestamp>)
spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingVersion", <starting-version>)\
.option("endingVersion", <ending-version>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingTimestamp", <starting-timestamp>)\
.option("endingTimestamp", <ending-timestamp>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Scala
spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingVersion", <starting-version>)
.option("endingVersion", <ending-version>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingTimestamp", <starting-timestamp>)
.option("endingTimestamp", <ending-timestamp>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Çıkış boşsa veya beklediğiniz verileri içermiyorsa veri sağlayıcısına başvurun.
Spark Yapılandırılmış Akış kullanarak paylaşılan tabloya erişmeyi
Tablo geçmişi sizinle paylaşılıyorsa, paylaşılan verileri okuma akışını yapabilirsiniz.
delta-sharing-spark 0.6.0 veya üzerini gerektirir.
Desteklenen seçenekler:
-
ignoreDeletes: Verileri silen işlemleri yoksayın. -
ignoreChanges:UPDATE,MERGE INTO,DELETE(bölümler içinde) veyaOVERWRITEgibi bir veri değiştirme işlemi nedeniyle kaynak tabloda dosyalar yeniden yazıldıysa güncelleştirmeleri yeniden işleyin. Değişmemiş satırlar yine de yayılabilir. Bu nedenle, alt tüketicilerinizin tekrarları işleyebilmesi gerekir. Silme işlemleri alt akışa iletilmez.ignoreChanges,ignoreDeletes'i içerir. Bu nedenle, kullanırsanızignoreChanges, akışınız silmeler veya kaynak tablodaki güncelleştirmeler tarafından kesintiye uğramaz. -
startingVersion: Başlangıç olarak paylaşılan tablo sürümü. Bu sürümden (dahil) başlayarak tüm tablo değişiklikleri akış kaynağı tarafından okunur. -
startingTimestamp: Başlangıç için zaman damgası. Zaman damgası (dahil) sırasında veya sonrasında işlenen tüm tablo değişiklikleri akış kaynağı tarafından okunur. Örnek:"2023-01-01 00:00:00.0". -
maxFilesPerTrigger: Her mikro toplu işlemde dikkate alınması gereken yeni dosyaların sayısı. -
maxBytesPerTrigger: Her mikro toplu işlemde işlenen veri miktarı. Bu seçenek bir "soft max" ayarlar; başka bir deyişle bir toplu işlem yaklaşık olarak bu miktarda veriyi işler ve en küçük giriş biriminin bu sınırdan büyük olduğu durumlarda akış sorgusunun ileriye doğru ilerlemesini sağlamak için sınırdan daha fazlasını işleyebilecektir. -
readChangeFeed: Akış, paylaşılan tablonun değişiklik veri akışını okur.
Desteklenen tetikleyiciler:
-
Trigger.ProcessingTime: Açık tetikleyici belirtilmediğinde kullanılan varsayılan tetikleyici. Veriler, sürekli mikro partiler hâlinde işlenir. -
Trigger.AvailableNow: Sorgu, başlangıçta paylaşılan tablonun sunucu tarafındaki sürümünü yakalar, birikmiş işlerimaxFilesPerTriggervemaxVersionsPerRpcdeğerlerini gözeten birden çok mikro toplu iş halinde işler ve yakalanan sürüm tükendiğinde sona erer.delta-sharing-spark1.4.0 veya üzerini gerektirir. Eski sürümler,maxVersionsPerRpcöğesine saygı duymayan birTrigger.AvailableNowsarmalayıcıya geri döner. -
Trigger.Once: Kullanım dışı; yerine kullanınTrigger.AvailableNow.delta-sharing-spark1.4.0'ın altındaki sürümlerle,Trigger.AvailableNow,maxVersionsPerRpc'ye uymayan bir sarmalayıcıya geri döner.
Örnek Yapılandırılmış Akış sorguları
Python
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Scala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Ayrıca bkz . Yapılandırılmış Akış kavramları.
Silme vektörlerinin veya sütun eşlemenin etkinleştirildiği tabloları okuma
Important
Bu özellik Genel Önizleme aşamasındadır.
Silme vektörleri, sağlayıcınızın paylaşılan Delta tablolarında etkinleştirebileceği bir depolama iyileştirme özelliğidir. Bkz . Databricks'te silme vektörleri.
Azure Databricks Delta tabloları için sütun eşlemeyi de destekler. Delta Lake sütun eşlemesi ile sütunları yeniden adlandırma ve bırakma konusuna bakın.
Sağlayıcınız, silme vektörleri veya sütun eşlemesi etkinleştirilmiş bir tablo paylaştıysa, delta-sharing-spark 3.1 veya üzeri çalışan hesaplamayı kullanarak tabloyu okuyabilirsiniz. Databricks kümeleri kullanıyorsanız, Databricks Runtime 14.1 veya üzerini çalıştıran bir kümeyi kullanarak toplu okuma gerçekleştirebilirsiniz. CDF ve akış sorguları Databricks Runtime 14.2 veya üzerini gerektirir.
Tablo özelliklerine göre responseFormat otomatik olarak çözümleyebildiği için toplu sorguları olduğu gibi gerçekleştirebilirsiniz.
Bir değişiklik veri akışını (CDF) okumak veya silme vektörleri veya sütun eşlemesi etkin olan paylaşılan tablolarda akış sorguları gerçekleştirmek için ek seçeneğini responseFormat=deltaayarlamanız gerekir.
Aşağıdaki örneklerde batch, CDF ve akış sorguları gösterilmektedir:
import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder()
.appName("...")
.master("...")
.config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
.config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
.getOrCreate()
val tablePath = "<profile-file-path>#<share-name>.<schema-name>.<table-name>"
// Batch query
spark.read.format("deltaSharing").load(tablePath)
// CDF query
spark.read.format("deltaSharing")
.option("readChangeFeed", "true")
.option("responseFormat", "delta")
.option("startingVersion", 1)
.load(tablePath)
// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").load(tablePath)
Paylaşılan tablolarda satır izleme sütunlarını okuma
Veri sağlayıcısı paylaşılan bir tabloda satır izlemeyi etkinleştirdiyse Scala Spark kullanarak satır izleme meta veri sütunlarını sorgulayabilirsiniz. Kullanılabilir sütunların listesi için Azure Databricks'te satır izleme bölümüne bakın.
seçeneğini olarak responseFormatayarlamanız delta gerekir.
spark.read.format("deltaSharing")
.option("responseFormat", "delta")
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.select("_metadata.row_id")
.show()
Note
Spark istemcisinde satır izleme sütunlarını sorgulamak için yalnızca delta yanıt biçimi desteklenir. Boşaltma bağlayıcıları desteklenmez.
Pandas: Paylaşılan verileri okuma
0.25.3 veya üzerinde paylaşılan verilere pandas erişmek için bu adımları izleyin.
Bu yönergelerde, veri sağlayıcısı tarafından paylaşılan kimlik bilgileri dosyasına erişiminiz olduğu varsayılır. Bkz. Databricks-To-Open paylaşım modelinde erişim alma.
Note
Unity Kataloğu için etkinleştirilmiş bir Azure Databricks çalışma alanında pandas kullanıyorsanız ve sağlayıcıyı içeri aktarmak ve paylaşmak için içeri aktarma sağlayıcı kullanıcı arabirimini kullandıysanız, bu bölümdeki yönergeler sizin için geçerli değildir. Paylaşılan tablolara, Unity Kataloğu'nda kayıtlı diğer tüm tablolarda olduğu gibi erişebilirsiniz.
delta-sharing Python bağlayıcısını yüklemeniz veya kimlik bilgisi dosyasının yolunu sağlamanız gerekmez. Bkz. Azure Databricks'da sağlayıcıyı içeri aktarma ve paylaşılan verileri okuma.
OpenSharing Python bağlayıcısını yükleme
Sizinle paylaşılan tabloların listesi gibi paylaşılan verilerle ilgili meta verilere erişmek için delta-sharing Python bağlayıcısını yüklemeniz gerekir. Python bağlayıcı sınırlamaları hakkında bilgi için bkz . OpenSharing Python bağlayıcı sınırlamaları.
pip install delta-sharing
Paylaşılan tabloları pandas kullanarak listele
Paylaşımdaki tabloları listelemek için, aşağıdakileri çalıştırın ve <profile-path>/config.share yerine kimlik bilgisi dosyasının konumunu koyun.
import delta_sharing
client = delta_sharing.SharingClient(f"<profile-path>/config.share")
client.list_all_tables()
Çıkış boşsa veya beklediğiniz tabloları içermiyorsa veri sağlayıcısına başvurun.
Paylaşılan verilere pandas kullanarak erişme
Python kullanarak pandas'da paylaşılan verilere erişmek için aşağıdaki komutu çalıştırın ve değişkenleri aşağıdaki gibi değiştirin:
-
<profile-path>: kimlik bilgisi dosyasının konumu. -
<share-name>: tablo içinshare=değeri. -
<schema-name>: tablo içinschema=değeri. -
<table-name>: tablo içinname=değeri.
import delta_sharing
delta_sharing.load_as_pandas(f"<profile-path>#<share-name>.<schema-name>.<table-name>")
pandas kullanarak paylaşılan değişiklik veri akışına erişme
Python kullanarak pandas'da paylaşılan bir tablonun değişiklik veri akışına erişmek için aşağıdakini çalıştırın ve değişkenleri aşağıdaki gibi değiştirin. Veri sağlayıcısının tablo için değişiklik veri akışını paylaşıp paylaşmadığına bağlı olarak değişiklik veri akışı mevcut olmayabilir.
-
<starting-version>:opsiyonel. Sorgunun başlangıç sürümü (dahil). -
<ending-version>:opsiyonel. Sorgunun bitiş sürümü (dahil). -
<starting-timestamp>:opsiyonel. Sorgunun başlangıç zaman damgası. Bu, bu zaman damgasına eşit veya daha büyük bir sürüm olarak dönüştürülür. -
<ending-timestamp>:opsiyonel. Sorgunun bitiş zaman damgası. Bu, daha önce oluşturulmuş veya bu zaman damgasına eşit bir sürüme dönüştürülür.
import delta_sharing
delta_sharing.load_table_changes_as_pandas(
f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_version=<starting-version>,
ending_version=<ending-version>)
delta_sharing.load_table_changes_as_pandas(
f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_timestamp=<starting-timestamp>,
ending_timestamp=<ending-timestamp>)
Çıkış boşsa veya beklediğiniz verileri içermiyorsa veri sağlayıcısına başvurun.
Power BI: Paylaşılan verileri okuma
Power BI OpenSharing bağlayıcısı, OpenSharing açık protokolü aracılığıyla sizinle paylaşılan veri kümelerini bulmanızı, analiz etmenizi ve görselleştirmenizi sağlar.
Requirements
- Power BI Desktop 2.99.621.0 veya üzeri.
- Veri sağlayıcısı tarafından paylaşılan kimlik bilgileri dosyasına erişim. Bkz. Databricks-To-Open paylaşım modelinde erişim alma.
Databricks'e bağlanma
OpenSharing bağlayıcısını kullanarak Azure Databricks bağlanmak için aşağıdakileri yapın:
- Uç nokta URL'sini ve belirteci almak için paylaşılan kimlik bilgisi dosyasını bir metin düzenleyicisiyle açın.
- Power BI Desktop'i açın.
- Veri Al menüsünde OpenSharing araması yapın.
- Bağlayıcıyı seçin ve Bağlanöğesine tıklayın.
- Kimlik bilgileri dosyasından kopyaladığınız uç nokta URL'sini OpenSharing Sunucusu URL'si alanına girin.
- İsteğe bağlı olarak, Gelişmiş Seçenekler sekmesinde, indirebileceğiniz en fazla satır sayısı için Satır Sınırı ayarlayın. Bu, varsayılan olarak 1 milyon satıra ayarlanır.
- Tamam'a tıklayın.
- Kimlik Doğrulamasıiçin, kimlik bilgileri dosyasından kopyaladığınız belirteci Bearer Tokenalanına yapıştırın.
- Bağlan'a tıklayın.
Power BI OpenSharing bağlayıcısının sınırlamaları
Power BI OpenSharing Bağlayıcısı aşağıdaki sınırlamalara sahiptir:
- Bağlayıcının yüklediği verilerin, makinenizin belleğine sığması gerekir. Bu gereksinimi yönetmek için bağlayıcı, içeri aktarılan satır sayısını, Power BI Desktop'taki Gelişmiş Seçenekler sekmesi altında ayarladığınız Row Limit ile sınırlar.
Tableau: Paylaşılan verileri okuma
Tableau OpenSharing bağlayıcısı, OpenSharing açık protokolü aracılığıyla sizinle paylaşılan veri kümelerini bulmanızı, analiz etmenizi ve görselleştirmenizi sağlar.
Requirements
- Tableau Desktop ve Tableau Server 2024.1 veya üzeri
- Veri sağlayıcısı tarafından paylaşılan kimlik bilgileri dosyasına erişim. Bkz. Databricks-To-Open paylaşım modelinde erişim alma.
Azure DataBricks’e bağlanma
OpenSharing bağlayıcısını kullanarak Azure Databricks bağlanmak için aşağıdakileri yapın:
- Tableau Exchange gidin, OpenSharing Bağlayıcısı'nı indirmek için yönergeleri izleyin ve uygun bir masaüstü klasörüne yerleştirin.
- Tableau Desktop'i açın.
- Bağlayıcılar sayfasında "OpenSharing by Databricks" araması yapın.
- Karşıya Yükle Paylaş dosyasınıseçin ve sağlayıcı tarafından paylaşılan kimlik bilgisi dosyasını seçin.
- Veri Alöğesine tıklayın.
- Veri Gezgini'nde tabloyu seçin.
- İsteğe bağlı olarak SQL filtreleri veya satır sınırları ekleyin.
- Tablo Verilerini Al tıklayın.
Sınırlama
Tableau OpenSharing Bağlayıcısı aşağıdaki sınırlamalara sahiptir:
- Bağlayıcının yüklediği verilerin, makinenizin belleğine sığması gerekir. Bu gereksinimi yönetmek için bağlayıcı içeri aktarılan satır sayısını Tableau'da ayarladığınız satır sınırıyla sınırlar.
- Tüm sütunlar
Stringtürü olarak döndürülür. - SQL Filtresi yalnızca OpenSharing sunucunuz predicateHint'i destekliyorsa çalışır.
- Silme vektörleri desteklenmez.
- Sütun eşleme işlemi desteklenmiyor.
OpenSharing Python bağlayıcı sınırlamaları
Bu sınırlamalar OpenSharing Python bağlayıcısına özgü:
- OpenSharing Python bağlayıcısı 1.1.0+ sütun eşlemesi olan tablolarda anlık görüntü sorgularını destekler, ancak sütun eşlemesi olan tablolardaki CDF sorguları desteklenmez.
- OpenSharing Python bağlayıcısı, sorgulanan sürüm aralığı sırasında şema değişirse CDF sorgularında
use_delta_format=Truebaşarısız olur.
Akış tablosu sınırlamaları
Paylaşılan akış tablosunun yalnızca geçerli anlık görüntüsünü okuyabilirsiniz. Databricks-Open paylaşımında akış tabloları için aşağıdaki özellikler desteklenmez:
- Tablonun geçmiş verilerini sorgulama
- Tablonun değişiklik veri akışını (CDF) sorgulama
- Spark Yapılandırılmış Akış için kaynak olarak tabloyu kullanma
Materyalize edilmiş görünüm sınırlamaları
Yalnızca paylaşılan bir gerçekleştirilmiş görünümün geçerli anlık görüntüsünü okuyabilirsiniz. Databricks’ten Open Sharing’e paylaşımda, Spark Structured Streaming için kaynak olarak somutlaştırılmış bir görünümün kullanılması desteklenmez.
Yeni kimlik bilgisi isteme
Kimlik bilgisi etkinleştirme URL'niz veya indirilen kimlik bilgileriniz kaybolur, bozulur veya gizliliği ihlal edilirse veya sağlayıcınız size yeni bir kimlik bilgisi göndermeden kimlik bilgilerinizin süresi dolarsa, yeni bir kimlik bilgisi istemek için sağlayıcınıza başvurun.
Unity Catalog'da kimlik bilgilerini sağlayıcı nesnesi olarak içeri aktaran bir Azure Databricks kullanıcısıysanız, Databricks REST API'sini kullanarak yeni kimlik bilgilerini kullanın. Bkz. Açık alıcılar için kimlik bilgilerini döndürme.