ŞEMA OLUŞTURMA

Ş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 şema (veritabanı) oluşturur. Aynı ada sahip bir şema zaten varsa, bir özel durum oluşturulur.

Sözdizimi

CREATE SCHEMA [ IF NOT EXISTS ] schema_name
    [ COMMENT schema_comment ]
    [ LOCATION schema_directory | MANAGED LOCATION location_path ]
    [ WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ]

Parametreler

  • Schema_name

    Oluşturulacak şemanın adı.

    Katalogda hive_metastore oluşturulan şemalar yalnızca alfasayısal ASCII karakterleri ve alt çizgi (INVALID_SCHEMA_OR_RELATION_NAME) içerebilir.

  • YOKSA

    Mevcut değilse verilen ada sahip bir şema oluşturur. Aynı ada sahip bir şema zaten varsa hiçbir şey olmaz.

  • KONUM schema_directory

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

    schema_directory değişmez değerdir STRING . Belirtilen şemanın oluşturulacağı dosya sisteminin yolu. Belirtilen yol temel alınan dosya sisteminde yoksa, yolu olan bir dizin oluşturur. Konum belirtilmezse, yolu statik yapılandırma spark.sql.warehouse.dirtarafından yapılandırılan varsayılan ambar dizininde şema oluşturulur.

    Uyarı

    Çalışma alanı düzeyinde Hive meta veri deponuzda bir şema (veritabanı) kayıtlıysa, bu şemayı CASCADE seçeneğini kullanarak 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 deposuna kayıtlıysa, Unity Kataloğu yönetilen tablolarının dosyaları yinelemeli olarak silinir. Ancak, dış tabloların 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. Hive meta veri deposu şemaları tarafından yönetilen veya Unity Kataloğu yönetilen tabloları içeren bir konumda da yeni dış tablolar oluşturmanız da gerekir.

  • schema_comment

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

  • 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 kullanın LOCATION .

    location_path değişmez değer 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. Yönetilen tablolar ve Unity Kataloğu meta veri deposu oluşturma.

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

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

  • OPTIONS

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

    • option

      Seçenek tuşu. Anahtar, nokta veya değişmez değerle ayrılmış bir veya STRING daha fazla tanımlayıcıdan oluşabilir.

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

    • value

      Seçeneğin değeri. Değer bir BOOLEAN, STRING, INTEGERveya DECIMAL sabit ifadesi olmalıdır. Değer, SQL işlevine SECRET yapılan bir çağrı da olabilir. Örneğin, value için password değişmez parolanın girilmesinden farklı olarak oluşabilir secret('secrets.r.us', 'postgresPassword') .

Ö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 `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';

-- 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))