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.
Not
Snowflake verileriyle ilgili sorguları yönetmek için Lakehouse Federasyonu'nı tercih edebilirsiniz. Bkz . Lakehouse Federasyonu nedir?
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: Snowflake Bağlan veya Spark için
Aşağıdaki not defterleri, Snowflake'e veri yazma ve veri okuma hakkında basit örnekler sağlar. Daha fazla ayrıntı için bkz. Spark Bağlan or kullanma. Özellikle, tüm yapılandırma seçenekleri için Bağlan veya Yapılandırma Seçeneklerini Ayarlama bölümüne bakın.
İ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ğlan veya kullanımına 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ğlan or, yazılmakta olan tablodaki sütunların sırasını dikkate almaz; DataFrame ile 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.