Snowflake'ten veri okuma ve yazma
Azure Databricks, Snowflake'ten veri okumayı ve yazmayı desteklemek için Databricks Runtime'da bir Snowflake bağlayıcısı sağlar.
Önemli
Bu makalede açıklanan yapılandırmalar Deneysel'tir. Deneysel özellikler olduğu gibi sağlanır ve Databricks tarafından müşteri teknik desteği aracılığıyla desteklenmez. Tam sorgu federasyon desteği almak için bunun yerine, Azure Databricks kullanıcılarınızın Unity Kataloğu söz dizimi ve veri idaresi araçlarından yararlanmasını sağlayan Lakehouse Federation kullanmalısınız.
Azure Databricks'te Snowflake tablosunu sorgulama
Snowflake ile bağlantı yapılandırabilir ve ardından verileri sorgulayabilirsiniz. Başlamadan önce, kümenizin hangi Databricks Runtime sürümünde çalıştığını denetleyin. Aşağıdaki kod Python, SQL ve Scala'da örnek söz dizimi sağlar.
Python
# The following example applies to Databricks Runtime 11.3 LTS and above.
snowflake_table = (spark.read
.format("snowflake")
.option("host", "hostname")
.option("port", "port") # Optional - will use default port 443 if not specified.
.option("user", "username")
.option("password", "password")
.option("sfWarehouse", "warehouse_name")
.option("database", "database_name")
.option("schema", "schema_name") # Optional - will use default schema "public" if not specified.
.option("dbtable", "table_name")
.load()
)
# The following example applies to Databricks Runtime 10.4 and below.
snowflake_table = (spark.read
.format("snowflake")
.option("dbtable", table_name)
.option("sfUrl", database_host_url)
.option("sfUser", username)
.option("sfPassword", password)
.option("sfDatabase", database_name)
.option("sfSchema", schema_name)
.option("sfWarehouse", warehouse_name)
.load()
)
SQL
/* The following example applies to Databricks Runtime 11.3 LTS and above. */
DROP TABLE IF EXISTS snowflake_table;
CREATE TABLE snowflake_table
USING snowflake
OPTIONS (
host '<hostname>',
port '<port>', /* Optional - will use default port 443 if not specified. */
user '<username>',
password '<password>',
sfWarehouse '<warehouse_name>',
database '<database-name>',
schema '<schema-name>', /* Optional - will use default schema "public" if not specified. */
dbtable '<table-name>'
);
SELECT * FROM snowflake_table;
/* The following example applies to Databricks Runtime 10.4 LTS and below. */
DROP TABLE IF EXISTS snowflake_table;
CREATE TABLE snowflake_table
USING snowflake
OPTIONS (
dbtable '<table-name>',
sfUrl '<database-host-url>',
sfUser '<username>',
sfPassword '<password>',
sfDatabase '<database-name>',
sfSchema '<schema-name>',
sfWarehouse '<warehouse-name>'
);
SELECT * FROM snowflake_table;
Scala
# The following example applies to Databricks Runtime 11.3 LTS and above.
val snowflake_table = spark.read
.format("snowflake")
.option("host", "hostname")
.option("port", "port") /* Optional - will use default port 443 if not specified. */
.option("user", "username")
.option("password", "password")
.option("sfWarehouse", "warehouse_name")
.option("database", "database_name")
.option("schema", "schema_name") /* Optional - will use default schema "public" if not specified. */
.option("dbtable", "table_name")
.load()
# The following example applies to Databricks Runtime 10.4 and below.
val snowflake_table = spark.read
.format("snowflake")
.option("dbtable", table_name)
.option("sfUrl", database_host_url)
.option("sfUser", username)
.option("sfPassword", password)
.option("sfDatabase", database_name)
.option("sfSchema", schema_name)
.option("sfWarehouse", warehouse_name)
.load()
Not defteri örneği: Spark için Snowflake Bağlayıcısı
Aşağıdaki not defterleri, Snowflake'e veri yazma ve veri okuma hakkında basit örnekler sağlar. Diğer ayrıntılar için bkz . Spark Bağlayıcısı'nı kullanma. Özellikle, bkz . Tüm yapılandırma seçenekleri için Bağlayıcı için Yapılandırma Seçeneklerini Ayarlama.
İpucu
Not defterlerinde gösterilen Gizli Diziler'i kullanarak Snowflake kullanıcı adınızı ve parolanızı not defterlerinde göstermekten kaçının.
Snowflake Python not defteri
Not defteri örneği: Model eğitim sonuçlarını Snowflake'e kaydetme
Aşağıdaki not defteri, Spark için Snowflake Bağlayıcısı'nı kullanmaya yönelik en iyi yöntemleri gösterir. Snowflake'e veri yazar, bazı temel veri işleme işlemleri için Snowflake kullanır, Azure Databricks'te bir makine öğrenmesi modeli eğitir ve sonuçları Snowflake'e geri yazar.
ML eğitim sonuçlarını Snowflake not defterinde depolama
Sık sorulan sorular (SSS)
Spark DataFrame sütunlarım snowflake'de neden aynı sırada görünmüyor?
Spark için Snowflake Bağlayıcısı, yazılmakta olan tablodaki sütunların sırasını dikkate almaz; DataFrame ve Snowflake sütunları arasındaki eşlemeyi açıkça belirtmeniz gerekir. Bu eşlemeyi belirtmek için columnmap parametresini kullanın.
INTEGER
Snowflake'e yazılan veriler neden olarak DECIMAL
okunur?
Snowflake, tüm INTEGER
türleri olarak NUMBER
temsil eder. Bu, Snowflake'e veri yazdığınızda ve snowflake'ten veri okuduğunuzda veri türünde değişikliğe neden olabilir. Örneğin, INTEGER
Snowflake'e yazarken veriler snowflake'e DECIMAL
dönüştürülebilir, çünkü INTEGER
ve DECIMAL
Snowflake'de eş değerdir (bkz . Snowflake Sayısal Veri Türleri).
Snowflake tablo şemamdaki alanlar neden her zaman büyük?
Snowflake varsayılan olarak büyük harf alanlarını kullanır ve bu da tablo şemasının büyük harfe dönüştürüldüğü anlamına gelir.
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