CREATE SCHEMA

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Belirtilen ada sahip bir veritabanı şeması oluşturur. Aynı ada sahip bir şema zaten varsa, bir istisna fırlatılır.

Permissions

Unity Kataloğu'nda şema oluşturmak için, şemayı oluşturduğunuz katalogda ve USE CATALOG ayrıcalıklarına sahip CREATE SCHEMA olmanız gerekir.

Yönetilen bir konum belirtirseniz, yönetilen yolu destekleyen dış konumda da CREATE MANAGED STORAGE ayrıca ayrıcalığınız olmalıdır. Bu ayrıcalığı yalnızca yönetilen bir konum belirttiğinizde yapmanız gerekir.

Sözdizimi

CREATE SCHEMA [ IF NOT EXISTS ] schema_name
    [ COMMENT schema_comment |
      DEFAULT COLLATION default_collation_name |
      { LOCATION schema_directory | MANAGED LOCATION location_path } |
      RETAIN DROPPED FOR number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
      WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ] [...]

Parametreler

  • schema_name

    Oluşturulacak şemanın adı.

    hive_metastore kataloğunda oluşturulan şemalar yalnızca alfasayısal ASCII karakterlerini ve alt çizgilerini (INVALID_SCHEMA_OR_RELATION_NAME) içerebilir.

  • VAR OLMADIĞINDA

    Mevcut değilse verilen isimle bir şema oluşturur. Aynı ada sahip bir şema zaten mevcutsa, herhangi bir işlem gerçekleşmez.

  • YER schema_directory

    LOCATION Unity Kataloğu'nda desteklenmez. Unity Kataloğu'nda bir şema için depolama konumu belirtmek istiyorsanız MANAGED LOCATIONkullanın.

    schema_directory bir sabittir STRING. Belirtilen şemanın oluşturulacağı dosya sisteminin yolu. Belirtilen yol temel alınan dosya sisteminde yoksa, yolu olan bir dizin oluşturur. Eğer konum belirtilmemişse, yolu statik yapılandırma spark.sql.warehouse.dirtarafından belirlenmiş olan varsayılan ambar dizininde şema oluşturulur.

    Uyarı

    Çalışma alanı düzeyinde Hive meta veri deponuzda bir şema (veritabanı) kayıtlıysa, CASCADE seçeneğini kullanarak bu şemayı bırakmak, tablo türüne (yönetilen veya dış) bakılmaksızın bu şema konumundaki tüm dosyaların özyinelemeli olarak silinmesine neden olur.

    Şema bir Unity Kataloğu meta veri deposuna kayıtlıysa, Unity Kataloğu yönetilen tablolar dosyaları yinelemeli olarak silinir. Ancak, dış tablo dosyaları silinmez. Bu dosyaları doğrudan bulut depolama sağlayıcısını kullanarak yönetmeniz gerekir.

    Bu nedenle, yanlışlıkla veri kaybını önlemek için hive meta veri deposundaki bir şemayı hiçbir zaman mevcut verileri içeren bir konuma kaydetmemelisiniz. Yeni dış tabloları, Hive meta veri deposu şemaları tarafından yönetilen veya Unity Kataloğu ile yönetilen tabloları içeren bir konumda oluşturmamalısınız.

  • YORUM schema_comment

    Değişmez STRING değer. Şemanın açıklaması.

  • VARSAYıLAN HARMANLAMA default_collation_name

    Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL denetimi evet olarak işaretlendi Databricks Runtime 17.1 ve üzeri

    İsteğe bağlı olarak şema içinde tanımlanan nesneler için varsayılan harmanlamayı tanımlar. Belirtilmezse, varsayılan harmanlama katalogdan devralınır.

  • YÖNETILEN KONUM location_path

    MANAGED LOCATION isteğe bağlıdır ve Unity Kataloğu gerektirir. Çalışma alanı düzeyinde Hive veya üçüncü taraf meta veri deponuzda kayıtlı bir şema için depolama konumu belirtmek istiyorsanız bunun yerine LOCATION kullanın.

    location_path sabit STRING olmalıdır. Kataloğun veya meta veri deposunun depolama kök konumundan farklı olan şemanın depolama kök konumunun yolunu belirtir. Bu yol bir dış konum yapılandırmasında tanımlanmalıdır ve dış konum yapılandırmasında ayrıcalığınız olmalıdır CREATE MANAGED STORAGE . Dış konum yapılandırmasında veya bir alt yolda (başka bir deyişle 'abfss://container@storageaccount.dfs.core.windows.net/finance' veya 'abfss://container@storageaccount.dfs.core.windows.net/finance/product') tanımlanan yolu kullanabilirsiniz. Databricks SQL'de veya Databricks Runtime 11.3 LTS ve üzerini çalıştıran kümelerde desteklenir.

    Ayrıca bkz . Delta Lake ve Apache Iceberg için Unity Kataloğu yönetilen tabloları ve Unity Kataloğu meta veri deposu oluşturma.

  • { HOUR SAYıSı IÇIN BıRAKıLANı KORU | SAAT | GÜN | GÜN | HAFTA | HAFTALAR }

    Şunun için geçerlidir:evet olarak işaretlendi Databricks Runtime 17.3 ve üzeri onay onay işareti evet yalnızca Unity Kataloğu

    Important

    Bu özellik Genel Önizleme aşamasındadır.

    İsteğe bağlı olarak, şemada bırakılan yönetilen tablolar için kurtarma süresini ayarlar; bırakılan tabloların kurtarılma süresi komutu kullanılarak UNDROP TABLE kurtarılabilir. Belirtilmezse, şema kurtarma süresini üst kataloğundan devralır (varsayılan 7 gün). Değer 0 saat (kurtarmayı devre dışı bırakmak için) veya 7-30 gün (dahil) arasında olmalıdır.

    Kurtarma süresini 0 olarak ayarlamak, bırakılan tabloların kullanılarak UNDROP kurtarılmaması ve veri dosyalarının 48 saat içinde bulut depolama alanından silinmesi anlamına gelir.

    Şema düzeyinde kurtarma süresi, şemadaki tablolar için herhangi bir katalog düzeyi ayarından önceliklidir. Bu ayar yalnızca kurtarma dönemi yapılandırıldıktan sonra bırakılan tablolar için geçerlidir. Kurtarma süresi sona erdikten sonra, yönetilen tablolara ait veri dosyaları 48 saat içinde bulut depolama alanınızdan silinir.

    Ayrıca bkz . Yönetilen tabloyu bırakma.

  • WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] )

    Anahtar-değer çiftlerindeki şemanın özellikleri.

  • SEÇENEKLER

    Bağlantıdaki kataloğu tanımlamak için gereken bağlantı türüne özgü parametreleri ayarlar.

    • option

      Seçenek tuşu. Anahtar, bir veya daha fazla belirleyici nokta ile ayrılmış ya da bir STRING değişmez değer içerebilir.

      Seçenek anahtarları benzersiz ve büyük/küçük harfe duyarlı olmalıdır.

    • value

      Seçeneğin değeri. Değer bir BOOLEAN, STRING, INTEGERveya DECIMALsabit ifadesi olmalıdır. Değer, SQL işlevine SECRET yapılan bir çağrı da olabilir. Örneğin, value için password, doğrudan parolanın girilmesi yerine secret('secrets.r.us', 'postgresPassword') içerebilir.

Örnekler

  -- Create schema `customer_sc`. This throws exception if schema with name customer_sc
-- already exists.
> CREATE SCHEMA customer_sc;

-- Create schema `customer_sc` only if schema with same name doesn't exist.
> CREATE SCHEMA IF NOT EXISTS customer_sc;

-- Create schema `experimental` with a case insensitive unicode default collation
> CREATE SCHEMA experimental DEFAULT COLLATION UNICODE_CI;

-- Create schema `customer_sc` only if schema with same name doesn't exist with
-- `Comments`,`Specific Location` and `Database properties`. LOCATION is not supported in Unity Catalog.
> CREATE SCHEMA IF NOT EXISTS customer_sc COMMENT 'This is customer schema' LOCATION '/samplepath'
    WITH DBPROPERTIES (ID=001, Name='John');

-- Create schema with a different managed storage location than the metastore's. MANAGED LOCATION is supported only in Unity Catalog.
> CREATE SCHEMA customer_sc MANAGED LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/finance';

-- Create a schema with a 14-day recovery period for dropped managed tables.
> CREATE SCHEMA customer_sc RETAIN DROPPED FOR 14 DAYS;

-- Verify that properties are set.
> DESCRIBE SCHEMA EXTENDED customer_sc;
database_description_item database_description_value
------------------------- --------------------------
            Database Name                customer_sc
              Description  This is customer schema
                  Location      hdfs://hacluster/samplepath
                Properties    ((ID,001), (Name,John))