在 Databricks SQL 中上传数据和创建表

使用 Databricks SQL 创建表 UI,可以快速上传 CSV 文件并创建 Delta 表。

注意

若要从云存储(如 Azure Data Lake Storage Gen2、AWS S3 或 Google Cloud Storage)加载文件,请查看有关 COPY INTO 的教程

目标表的类型

通过 Databricks SQL 中的创建表,可以在 Unity 目录或 Hive 元存储中创建托管的 Delta 表。

重要

Unity Catalog 目前为公共预览版。 要使用该预览版,请联系 Azure Databricks 代表。

要求

  • 若要将“在 Databricks SQL 中创建表”与 Unity Catalog 结合使用,需要元存储目录架构
    • 对于 Unity 目录,还必须对所选架构的父目录具有 USAGE 权限。
    • 如果工作区被分配给 Unity Catalog 元存储,仍可在 Hive 元存储中的架构下创建表。
  • 你需要对要在其中创建表的架构拥有 USAGECREATE 权限。
  • 必须具有正在运行的 SQL 仓库。

使用 CSV 上传创建表

可以通过将小型 CSV 文件从本地计算机导入到 Databricks SQL,来使用该 UI 创建 Delta 表。

  • 该上传 UI 支持一次上传一个低于 100 兆字节的文件。
  • 该文件必须是 CSV 文件,并且其扩展名必须为“.csv”。
  • 不支持压缩的文件,例如 ziptar 文件。

上传文件

  1. 使用角色切换器导航到 SQL 角色。
    • 若要更改角色,请单击 Databricks 徽标下方的图标 Databricks 徽标,并选择一个角色。
  2. 单击边栏中的 创建按钮“创建”,然后从菜单中选择“表”。
  3. 随即将显示 Databricks SQL 页中的“创建表”。

在 DBSQL 中创建表

  1. 若要开始上传,请单击文件浏览器按钮或直接在放置区域中拖放文件。

上传文件

注意

导入的文件将上传到帐户中的安全内部位置,这里每天都会进行垃圾回收。

表名称选择

上传完成后,可以选择数据的目标。

表名称选择

  1. 对于分配给 Unity Catalog 元存储的工作区,可以选择目录。 如果工作区未被分配给 Unity Catalog 元存储,则目标目录将被隐藏,并且架构将从 Hive 元存储加载。
    • 若要在分配给 Unity Catalog 元存储的工作区中使用 Hive 元存储,请在目录选择器中选择 hive_metastore
  2. 选择架构。
  3. 默认情况下,UI 会将文件名转换为有效的表名。 你可以编辑表名。

数据预览

文件上传完成后,可以预览数据(限制为 50 行)。

  • 上传后,UI 会尝试启动右上角选择的终结点。 你可以随时切换终结点,但预览和表创建需要活动的终结点。 如果终结点尚未处于活动状态,则它会自动启动。 这可能需要一些时间。 当终结点运行时,将启动预览。

数据预览

  • 有两种数据预览方法:垂直或水平。 若要切换预览选项,请单击表上方的切换按钮 视图切换

格式选项

根据上传的文件格式,可以使用不同的选项。 常用格式选项显示在标题栏中,而不太常用的选项在“高级属性”模式下提供。

  • 对于 CSV,可以使用以下选项。
    • 第一行包含标题(默认情况下启用):该选项指定 CSV 文件是否包含标题。
    • 列分隔符:列之间的分隔符。 仅允许单个字符,且不支持反斜杠。 对于 CSV 文件,默认为英文逗号。
    • 自动检测列类型(默认情况下启用):自动检测文件内容中的列类型。 可以在预览表中编辑类型。 如果此选项设置为 false,则所有列类型均推断为 STRING
    • 行跨越多个行(默认情况下启用):一个列的值是否可以跨越文件中的多行。

编辑格式选项时,数据预览会自动更新。

列标题和类型

可以编辑列标题名称和类型。 列标题

  • 若要编辑类型,请单击该类型的图标。
  • 若要编辑列名,请单击列顶部的输入框。
    • 列名不支持逗号、反斜杠或 Unicode 字符(例如表情符号)。

对于 CSV 文件,默认将推断列数据类型。 可以通过禁用“高级属性”>“自动检测列类型”,将所有列解释为 STRING 类型。

注意

  • 架构推理可以尽力检测列类型。 如果某些值无法正确地强制转换为目标数据类型,则更改列类型可能会导致这些值强制转换为 NULL。 不支持将 BIGINT 强制转换为 DATETIMESTAMP 列。 Databricks 建议先创建一个表,然后使用 SQL 函数转换这些列。
  • 为了支持具有特殊字符的表列名,Databricks SQL 中的“通过上传创建表 UI”利用列映射
  • 若要向列添加批注,请创建表并导航到数据资源管理器,在其中添加批注。

支持的数据类型

“使用 CSV 上传创建表”支持以下数据类型。 有关各种数据类型的详细信息,请参阅 SQL 数据类型

数据类型 说明
BIGINT 8 字节带符号整数。
BOOLEAN 布尔(truefalse)值。
DATE 由字段 year、month 和 day 的值构成的值,不包含时区。
DOUBLE 8 字节双精度浮点数
STRING 字符串值。
TIMESTAMP 由字段 year、month、day、hour、minute 和 second 的值构成的值,包含会话本地时区。

创建表

若要创建表,请单击页面底部的“创建”。 创建表

使用“在 Databricks SQL 中创建表”功能创建表后,指定的目录和架构下的 Delta 表的数据资源管理器页将会显示。

已知问题

  • BIGINT 强制转换为 DATE(例如以“yyyy”格式表示的日期)等不可强制转换的类型可能会引发错误。