创建模式

适用于:勾选“是”砖的SQL勾选“是”Databricks Runtime 9.1及以上版本

使用指定的名称创建模式(数据库)。如果已经存在具有相同名称的模式,则抛出异常。

语法

创建模式如果存在schema_name评论schema_comment位置schema_directory管理位置“location_path”DBPROPERTIESproperty_nameproperty_value...

参数

  • schema_name

    要创建的模式的名称。

  • 如果不存在

    如果给定名称不存在,则创建具有该名称的模式。如果已经存在具有相同名称的模式,则不会发生任何事情。

  • schema_directory

    要创建模式的文件系统路径。如果指定的路径在底层文件系统中不存在,则创建具有该路径的目录。如果没有指定位置,则在默认仓库目录中创建模式,该目录的路径由静态配置配置spark.sql.warehouse.dir

    警告

    如果一个模式(数据库)注册在你的工作空间级Hive metastore中,使用级联选项会导致递归地删除该模式位置中的所有文件,而不管表类型(托管或外部)如何。

    如果模式被注册到一个Unity Catalog metastore,则Unity Catalog的文件管理表递归删除。然而,文件外部表不会被删除。您必须直接使用云存储提供商管理这些文件。

    因此,为了避免意外的数据丢失,永远不要将Hive metastore中的模式注册到具有现有数据的位置。也不应该在由Hive metastore模式管理的位置或包含Unity Catalog管理的表中创建新的外部表。

  • schema_comment

    模式的描述。

  • 管理位置“location_path”

    (Unity Catalog)可选地为模式指定存储根位置的路径,该路径与目录或metastore的存储根位置不同。类型中必须定义此路径外部位置配置,你必须有创建管理存储外部位置配置上的特权。您可以使用外部位置配置中定义的路径或子路径(换句话说,“s3: / /部门/金融”s3: / /部门/金融/产品的).要求Databricks运行时11.3及以上。另请参阅在AWS中配置存储桶和IAM角色

  • 使用DBPROPERTIES (property_name = property_value[,…])

    键-值对中的模式属性。

例子

创建“customer_sc”模式。如果schema的名称为customer_sc,则会抛出异常——已经存在。>创建模式customer_sc—只在同名模式不存在时创建模式' customer_sc '。>创建模式如果存在customer_sc—只在不存在同名模式时创建模式' customer_sc '-“评论”,“特定位置”和“数据库属性”。>创建模式如果存在customer_sc评论“这是客户模式”位置' / samplepath 'DBPROPERTIESID001的名字“约翰。”);—确认属性已设置。>描述模式扩展customer_scdatabase_description_itemdatabase_description_value------------------------- --------------------------数据库的名字customer_sc描述客户模式位置hdfs//使hacluster/samplepath属性((ID001),的名字约翰))—创建与metastore不同的存储根位置的schema。>创建模式customer_sc管理位置“s3: / / us-east-1 /金融”