使用 Unity Catalog 外部位置加载数据
重要
此功能目前以公共预览版提供。
本文介绍如何使用添加数据 UI 通过 Unity Catalog 外部位置基于 Azure Data Lake Storage Gen2 中的数据创建托管表。 外部位置是将云存储路径与授权访问云存储路径的存储凭据相结合的对象。
开始之前
在开始之前,必须满足以下条件:
- 一个启用了 Unity Catalog 的工作区。 有关详细信息,请参阅设置和管理 Unity Catalog。
- 对外部位置的
READ FILES
权限。 有关详细信息,请参阅创建外部位置以将云存储连接到 Azure Databricks。 - 对要在其中创建托管表的架构拥有
CREATE TABLE
权限、对该架构拥有USE SCHEMA
权限,并对父目录拥有USE CATALOG
权限。 有关详细信息,请参阅 Unity Catalog 权限和安全对象。
文件类型
支持以下文件类型:
- CSV
- TSV
- JSON
- XML
- AVRO
- Parquet
步骤 1:确认对外部位置的访问权限
若要确认对外部位置的访问权限,请执行以下操作:
- 在 Azure Databricks 工作区的边栏中,单击“目录”。
- 在目录资源管理器中,单击“外部数据”>“外部位置”。
步骤 2:创建托管表
若要创建托管表,请执行以下操作:
在工作区的边栏中,单击“+ 新建”>“添加数据”。
在添加数据 UI 中,单击“Azure Data Lake Storage”。
从下拉列表中选择一个外部位置。
选择要加载到 Azure Databricks 中的文件夹和文件,然后单击“预览表”。
从下拉列表中选择一个目录和架构。
(可选)编辑表名。
(可选)若要按文件类型设置高级格式选项,请单击“高级属性”,关闭“自动检测文件类型”,然后选择文件类型。
有关格式选项的列表,请参阅以下部分。
(可选)若要编辑列名,请单击列顶部的输入框。
列名不支持逗号、反斜杠或 Unicode 字符(例如表情符号)。
(可选)若要编辑列类型,请单击类型对应的图标。
单击“创建表”。
文件类型格式选项
根据文件类型,可以使用以下格式选项:
格式选项 | 说明 | 支持的文件类型 |
---|---|---|
Column delimiter |
列之间的分隔符。 仅允许单个字符,且不支持反斜杠。 默认值为逗号。 |
CSV |
Escape character |
分析数据时要使用的转义字符。 默认值为引号。 |
CSV |
First row contains the header |
该选项指定文件是否包含标题。 默认情况下启用。 |
CSV |
Automatically detect file type |
自动检测文件类型。 默认值为 true 。 |
XML |
Automatically detect column types |
自动从文件内容中检测列类型。 可以在预览表中编辑类型。 如果设置为 false,则推断所有列类型均为 STRING。 默认情况下启用。 |
- CSV - JSON - XML |
Rows span multiple lines |
列的值是否可以在文件中跨越多行。 默认已禁用。 |
- CSV - JSON |
Merge the schema across multiple files |
是否跨多个文件推理架构并合并每个文件的架构。 默认情况下启用。 |
CSV |
Allow comments |
文件中是否允许注释。 默认情况下启用。 |
JSON |
Allow single quotes |
文件中是否允许单引号。 默认情况下启用。 |
JSON |
Infer timestamp |
是否尝试将时间戳字符串推理为 TimestampType 。默认情况下启用。 |
JSON |
Rescued data column |
是否保存与架构不匹配的列。 有关详细信息,请参阅什么是补救数据列?。 默认情况下启用。 |
- CSV - JSON - Avro - Parquet |
Exclude attribute |
是否排除元素中的属性。 默认值为 false 。 |
XML |
Attribute prefix |
属性的前缀,用于区分属性和元素。 默认值为 _ 。 |
XML |
列数据类型
支持以下列数据类型。 有关各种数据类型的详细信息,请参阅 SQL 数据类型。
数据类型 | 说明 |
---|---|
BIGINT |
8 字节带符号整数。 |
BOOLEAN |
布尔(true 、false )值。 |
DATE |
不带时区的日期。 |
DECIMAL (P,S) |
具有最大精度 P 和固定位数 S 的数字。 |
DOUBLE |
8 字节双精度浮点数 |
STRING |
字符串值。 |
TIMESTAMP |
由字段 year、month、day、hour、minute 和 second 的值构成的值,包含会话本地时区。 |
已知问题
- 在复杂数据类型中,你可能会遇到特殊字符的问题,例如 JSON 对象中的键包含反撇号或冒号。
- 某些 JSON 文件可能要求手动选择 JSON 作为文件类型。 若要在选择文件后手动选择文件类型,请单击“高级属性”,关闭“自动检测文件类型”,然后选择“JSON”。
- 复杂类型中的嵌套时间戳和小数可能会出现问题。