你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
下面是 Azure 存储扩展提供的函数列表:
azure_storage.account_add
允许将存储帐户及其关联的访问密钥添加到扩展可以访问的 azure_storage 存储帐户列表的函数。
如果以前调用此函数已添加对此存储帐户的引用,则不会添加新条目,而是更新现有条目的访问密钥。
注释
此函数不会验证引用的帐户名称是否存在,或者是否可以使用提供的访问密钥进行访问。 但是,它根据对 Azure 存储帐户施加的命名验证规则来验证存储帐户的名称是否有效。
azure_storage.account_add(account_name_p text, account_key_p text);
此函数有一个重载版本,该函数接受一个 account_config 参数,该参数封装引用的 Azure 存储帐户的名称,以及身份验证类型、帐户类型或存储凭据等所有必需设置。
azure_storage.account_add(account_config jsonb);
权限
必须是 . 的 azure_storage_admin一个成员。
论据
account_name_p
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
account_key_p
text 存储帐户的访问密钥之一的值。 Azure Blob 存储访问密钥类似于存储帐户的根密码。 始终要小心保护访问密钥。 使用 Azure 密钥保管库安全地管理和轮换密钥。 帐户密钥存储在只能由超级用户访问的表中。 授予 azure_storage_admin 该角色的用户可以通过函数与此表进行交互。 若要查看添加的存储帐户,请使用 函数 azure_storage.account_list。
account_config
jsonb Azure 存储帐户的名称以及身份验证类型、帐户类型或存储凭据等所有必需设置。 建议使用实用工具函数 azure_storage.account_options_managed_identity、 azure_storage.account_options_credentials 或 azure_storage.account_options 来创建必须作为此参数传递的任何有效值。
返回类型
VOID
azure_storage.account_options_managed_identity
充当实用工具函数的函数,该函数可在 azure_storage.account_add 中作为参数调用,并且当使用系统分配的托管标识与 Azure 存储帐户交互时,可为参数生成有效值 account_config 。
azure_storage.account_options_managed_identity(name text, type azure_storage.storage_type);
权限
任何用户或角色都可以调用此函数。
论据
姓名
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
类型
azure_storage.storage_type 支持的存储类型之一的值。 仅支持的值为 blob.
返回类型
jsonb
azure_storage.account_options_credentials
充当实用工具函数的函数,该函数可在 azure_storage.account_add 中作为参数调用,并且当使用 Azure 存储访问密钥与 Azure 存储帐户交互时,可为参数生成有效值 account_config 。
azure_storage.account_options_credentials(name text, credentials text, type azure_storage.storage_type);
权限
任何用户或角色都可以调用此函数。
论据
姓名
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
凭据
text 存储帐户的访问密钥之一的值。 Azure Blob 存储访问密钥类似于存储帐户的根密码。 始终要小心保护访问密钥。 使用 Azure 密钥保管库安全地管理和轮换密钥。 帐户密钥存储在只能由超级用户访问的表中。 授予 azure_storage_admin 该角色的用户可以通过函数与此表进行交互。 若要查看添加的存储帐户,请使用 函数 azure_storage.account_list。
类型
azure_storage.storage_type 支持的存储类型之一的值。 仅支持的值为 blob.
返回类型
jsonb
azure_storage.account_options
充当实用工具函数的函数(可在 azure_storage.account_add 中调用为参数),并且当使用 Azure 存储访问密钥或系统分配的托管标识与 Azure 存储帐户交互时,该函数可用于生成参数的有效值 account_config 。
azure_storage.account_options(name text, auth_type azure_storage.auth_type, storage_type azure_storage.storage_type, credentials text DEFAULT NULL);
权限
任何用户或角色都可以调用此函数。
论据
姓名
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
auth_type
azure_storage.auth_type 支持的存储类型之一的值。 仅支持的值和 access-keymanaged-identity。
storage_type
azure_storage.storage_type 支持的存储类型之一的值。 仅支持的值为 blob.
凭据
text 存储帐户的访问密钥之一的值。 Azure Blob 存储访问密钥类似于存储帐户的根密码。 始终要小心保护访问密钥。 使用 Azure 密钥保管库安全地管理和轮换密钥。 帐户密钥存储在只能由超级用户访问的表中。 授予 azure_storage_admin 该角色的用户可以通过函数与此表进行交互。 若要查看添加的存储帐户,请使用 函数 azure_storage.account_list。
返回类型
jsonb
azure_storage.account_remove
允许从扩展可以访问的存储帐户列表中删除存储帐户及其关联的访问密钥的 azure_storage 函数。
azure_storage.account_remove(account_name_p text);
权限
必须是 . 的 azure_storage_admin一个成员。
论据
account_name_p
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
返回类型
VOID
azure_storage.account_user_add
允许通过扩展提供的函数授予 PostgreSQL 用户或角色对存储帐户的访问权限的 azure_storage 函数。
注释
仅当存储帐户(其名称作为第一个参数传递)已使用 azure_storage.account_add 创建,并且用户或角色(其名称作为第二个参数传递)已存在时,此函数的执行才会成功。
azure_storage.account_add(account_name_p text, user_p regrole);
权限
必须是 . 的 azure_storage_admin一个成员。
论据
account_name_p
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
user_p
regrole 服务器上可用的 PostgreSQL 用户或角色的名称。
返回类型
VOID
azure_storage.account_user_remove
允许通过扩展提供的函数撤消 PostgreSQL 用户或角色对存储帐户的访问权限的 azure_storage 函数。
注释
仅当名称作为第一个参数传递的存储帐户已使用 azure_storage.account_add 创建,并且名称作为第二个参数传递的用户或角色仍然存在时,此函数的执行才会成功。
从服务器中删除用户或角色时,通过执行 DROP USER | ROLE,也会自动消除对 Azure 存储帐户的任何引用授予的权限。
azure_storage.account_user_remove(account_name_p text, user_p regrole);
权限
必须是 . 的 azure_storage_admin一个成员。
论据
account_name_p
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
user_p
regrole 服务器上可用的 PostgreSQL 用户或角色的名称。
返回类型
VOID
azure_storage.account_list
该函数列出通过 azure_storage.account_add 函数配置的存储帐户的名称,以及授予通过扩展提供的 azure_storage 函数与该存储帐户交互的权限的 PostgreSQL 用户或角色。
azure_storage.account_list();
权限
必须是 . 的 azure_storage_admin一个成员。
论据
此函数不采用任何参数。
返回类型
TABLE(account_name text, auth_type azure_storage.auth_type, azure_storage_type azure_storage.storage_type, allowed_users regrole[]) 添加了 Azure 存储帐户列表的四列表、用于与每个帐户交互的身份验证类型、存储类型以及授予其访问权限的 PostgreSQL 用户或角色列表。
azure_storage.blob_list
列出存储在引用存储帐户的给定容器中的 blob 的名称和其他属性(size、lastModified、eTag、contentType、contentEncoding 和 contentHash)。
azure_storage.blob_list(account_name text, container_name text, prefix text DEFAULT ''::text);
权限
通过执行 account_name,必须将调用此函数的用户或角色添加到所引用的允许列表中。
azure_storage_admin自动允许其成员引用其引用已使用 azure_storage.account_add 添加的所有 Azure 存储帐户。
论据
account_name
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
容器名称(container_name)
text 容器的名称。 容器组织一组 Blob,类似于文件系统中的目录。 存储帐户可以包含无限数量的容器,容器可以存储无限数量的 Blob。
容器名称必须是有效的域名系统(DNS)名称,因为它构成了用于对容器或其 Blob 进行寻址的唯一 URI 的一部分。
命名容器时,请确保遵循 这些规则。
容器的 URI 类似于: https://myaccount.blob.core.windows.net/mycontainer
前缀
text 指定时,该函数返回名称以此参数中提供的值开头的 blob。 默认为空字符串。
返回类型
TABLE(path text, bytes bigint, last_modified timestamp with time zone, etag text, content_type text, content_encoding text, content_hash text) 每个 Blob 返回一条记录的表,包括 blob 的全名和其他一些属性。
路径
text blob 的全名。
字节
bigint blob 的大小(以字节为单位)。
last_modified
timestamp with time zone上次修改 Blob 的日期和时间。 任何修改 Blob 的操作(包括 Blob 元数据或属性更新)都会更改 Blob 的上次修改时间。
ETAG
text ETag 属性用于更新期间的乐观并发。 它不是时间戳,因为有另一个名为 Timestamp 的属性存储上次更新记录的时间。 例如,如果加载实体并想要更新它,ETag 必须与当前存储的内容匹配。 设置适当的 ETag 非常重要,因为如果你有多个用户编辑同一项,则不希望他们覆盖彼此的更改。
content_type
text 为 Blob 指定的内容类型。 默认内容类型为 application/octet-stream.
content_encoding
text Azure 存储允许定义的 Blob 的内容编码属性。 对于压缩内容,可以将属性设置为 Gzip。 当浏览器访问内容时,它会自动解压缩内容。
content_hash
text 用于在传输过程中验证 Blob 完整性的哈希。 指定此标头后,存储服务会检查提供的哈希,其中包含一个从内容中计算得出的哈希。 如果两个哈希不匹配,则作将失败,错误代码为 400 (Bad Request)。
azure_storage.blob_get
允许导入数据的函数。 它会从 Azure 存储帐户中的 Blob 容器下载文件。 然后,它将内容转换为行,可以使用 SQL 语言构造来使用和处理这些行。 此函数添加了对在导入 Blob 容器之前筛选和作从 Blob 容器提取的数据的支持。
注释
在尝试访问所引用存储帐户的容器之前,此函数会根据对 Azure 存储帐户施加的命名验证规则来检查作为参数传递的存储帐户的名称和容器是否有效。 如果其中任一项无效,则会引发错误。
azure_storage.blob_get(account_name text, container_name text, path text, decoder text DEFAULT 'auto'::text, compression text DEFAULT 'auto'::text, options jsonb DEFAULT NULL::jsonb);
此函数有一个重载版本,它接受一个 rec 参数,允许你方便地定义输出格式记录。
azure_storage.blob_get(account_name text, container_name text, path text, rec anyelement, decoder text DEFAULT 'auto'::text, compression text DEFAULT 'auto'::text, options jsonb DEFAULT NULL::jsonb);
权限
通过执行 account_name,必须将调用此函数的用户或角色添加到所引用的允许列表中。
azure_storage_admin自动允许其成员引用其引用已使用 azure_storage.account_add 添加的所有 Azure 存储帐户。
论据
account_name
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
容器名称(container_name)
text 容器的名称。 容器组织一组 Blob,类似于文件系统中的目录。 存储帐户可以包含无限数量的容器,容器可以存储无限数量的 Blob。
容器名称必须是有效的域名系统(DNS)名称,因为它构成了用于对容器或其 Blob 进行寻址的唯一 URI 的一部分。
命名容器时,请确保遵循 这些规则。
容器的 URI 类似于: https://myaccount.blob.core.windows.net/mycontainer
路径
text blob 的全名。
娱乐
anyelement 记录输出结构的定义。
解码器
text blob 格式的规范。 可设置为以下任一值:
| 格式 | 默认 | 说明 |
|---|---|---|
auto |
true |
根据分配给 Blob 名称的最后一系列字符推断值。 如果 blob 名称以.tsv 或结尾 .tsv.gz,则假定 tsv为 。 如果以 .json、、.json.gz、.xml.xml.gz、 .txt或.txt.gz结尾,则假定text它。 |
csv |
PostgreSQL COPY 使用的逗号分隔值格式。 | |
tsv |
制表符分隔的值,默认 PostgreSQL COPY 格式。 | |
binary |
二进制 PostgreSQL COPY 格式。 | |
text | xml | json |
包含单个文本值的文件。 |
压缩
text 压缩类型的规范。 可设置为以下任一值:
| 格式 | 默认 | 说明 |
|---|---|---|
auto |
true |
根据分配给 Blob 名称的最后一系列字符推断值。 如果 blob 名称以结尾 none为 . |
gzip |
强制使用 gzip 解码器解压缩 blob。 | |
none |
强制将 Blob 视为不需要解压缩的 Blob。 |
该扩展不支持任何其他压缩类型。
选项
jsonb 定义处理自定义标头、自定义分隔符、转义字符等的设置。 options 影响此函数的行为的方式类似于在 PostgreSQL 中传递给 COPY 命令的选项如何影响其行为。
返回类型
SETOF record
SETOF anyelement
azure_storage.blob_put
通过将数据上传到 Azure 存储帐户中的 Blob 容器,允许导出数据的函数。 文件的内容是从 PostgreSQL 中的行生成的。
注释
在尝试访问所引用存储帐户的容器之前,此函数会根据对 Azure 存储帐户施加的命名验证规则来检查作为参数传递的存储帐户的名称和容器是否有效。 如果其中任一项无效,则会引发错误。
azure_storage.blob_put(account_name text, container_name text, path text, tuple record)
RETURNS VOID;
有一个重载的函数版本,它包含 encoder 参数,可用于指定编码器在无法从参数扩展 path 推断时使用,或者想要重写推断的编码器时使用。
azure_storage.blob_put(account_name text, container_name text, path text, tuple record, encoder text)
RETURNS VOID;
函数的重载版本还包含一个 compression 参数,可用于指定在无法从参数扩展 path 推断压缩时要使用的压缩,或者想要重写推断的压缩。
azure_storage.blob_put(account_name text, container_name text, path text, tuple record, encoder text, compression text)
RETURNS VOID;
函数的重载版本还包含用于 options 处理自定义标头、自定义分隔符、转义字符等的参数, options 其工作方式与可在 PostgreSQL 中传递给 COPY 命令的选项类似。
azure_storage.blob_put(account_name text, container_name text, path text, tuple record, encoder text, compression text, options jsonb)
RETURNS VOID;
权限
通过执行 account_name,必须将调用此函数的用户或角色添加到所引用的允许列表中。
azure_storage_admin自动允许其成员引用其引用已使用 azure_storage.account_add 添加的所有 Azure 存储帐户。
论据
account_name
text 包含所有对象的 Azure Blob 存储帐户的名称:Blob、文件、队列和表。 存储帐户提供可通过 HTTPS 从世界上任何地方访问的唯一命名空间。
容器名称(container_name)
text 容器的名称。 容器组织一组 Blob,类似于文件系统中的目录。 存储帐户可以包含无限数量的容器,容器可以存储无限数量的 Blob。
容器名称必须是有效的域名系统(DNS)名称,因为它构成了用于对容器或其 Blob 进行寻址的唯一 URI 的一部分。
命名容器时,请确保遵循 这些规则。
容器的 URI 类似于: https://myaccount.blob.core.windows.net/mycontainer
路径
text blob 的全名。
元组
record 记录输出结构的定义。
编码器
text blob 格式的规范。 可设置为以下任一值:
| 格式 | 默认 | 说明 |
|---|---|---|
auto |
true |
根据分配给 Blob 名称的最后一系列字符推断值。 如果 blob 名称以.tsv 或结尾 .tsv.gz,则假定 tsv为 。 如果以 .json、、.json.gz、.xml.xml.gz、 .txt或.txt.gz结尾,则假定text它。 |
csv |
PostgreSQL COPY 使用的逗号分隔值格式。 | |
tsv |
制表符分隔的值,默认 PostgreSQL COPY 格式。 | |
binary |
二进制 PostgreSQL COPY 格式。 | |
text | xml | json |
包含单个文本值的文件。 |
压缩
text 压缩类型的规范。 可设置为以下任一值:
| 格式 | 默认 | 说明 |
|---|---|---|
auto |
true |
根据分配给 Blob 名称的最后一系列字符推断值。 如果 blob 名称以结尾 none为 . |
gzip |
强制使用 gzip 解码器解压缩 blob。 | |
none |
强制将 Blob 视为不需要解压缩的 Blob。 |
该扩展不支持任何其他压缩类型。
选项
jsonb 定义处理自定义标头、自定义分隔符、转义字符等的设置。 options 影响此函数的行为的方式类似于在 PostgreSQL 中传递给 COPY 命令的选项如何影响其行为。
返回类型
VOID
azure_storage.options_csv_get
充当实用工具函数的函数(可在其中 blob_get调用为参数),可用于解码 csv 文件的内容。
azure_storage.options_csv_get(delimiter text DEFAULT NULL::text, null_string text DEFAULT NULL::text, header boolean DEFAULT NULL::boolean, quote text DEFAULT NULL::text, escape text DEFAULT NULL::text, force_not_null text[] DEFAULT NULL::text[], force_null text[] DEFAULT NULL::text[], content_encoding text DEFAULT NULL::text);
权限
任何用户或角色都可以调用此函数。
论据
分隔符
text 分隔文件每行(行)中的列的字符。 它必须是单个 1 字节字符。 尽管此函数支持任意数量的字符的分隔符,但如果尝试使用多个 1 字节字符,PostgreSQL 会报告错误 COPY delimiter must be a single one-byte character 。
null_string
text 表示 null 值的字符串。 默认值为 \N(反斜杠-N),格式为 CSV 格式的无引号空字符串。 即使不想将 null 与空字符串区分开来,你也更倾向于采用文本格式的空字符串。
标头
boolean 指示文件是否包含标题行以及文件中每列的名称的标志。 输出时,初始行包含表中的列名。
Quote
text 引用数据值时要使用的引号字符。 默认值为双引号。 它必须是单个 1 字节字符。 尽管此函数支持任意数量的字符的分隔符,但如果尝试使用多个 1 字节字符,PostgreSQL 会报告错误 COPY quote must be a single one-byte character 。
逃
text 应出现在与 QUOTE 值匹配的数据字符之前显示的字符。 默认值与 QUOTE 值相同(以便在数据中出现引用字符时加倍)。 它必须是单个 1 字节字符。 尽管此函数支持任意数量的字符的分隔符,但如果尝试使用多个 1 字节字符,PostgreSQL 会报告错误 COPY escape must be a single one-byte character 。
force_not_null
text[] 与 null 字符串不匹配指定的列值。 在 null 字符串为空的默认情况下,这意味着空值将读取为零长度字符串而不是 null,即使它们未带引号也是如此。
force_null
text[] 将指定的列的值与 null 字符串匹配,即使带引号,如果找到匹配项,则将该值设置为 NULL。 在 null 字符串为空的默认情况下,它将带引号的空字符串转换为 NULL。
content_encoding
text 对文件进行编码的编码的名称。 如果省略该选项,则使用当前客户端编码。
返回类型
jsonb
azure_storage.options_copy
充当实用工具函数的函数,可在其中 blob_get调用为参数。 它充当 options_csv_get、 options_tsv和 options_binary的帮助程序函数。
azure_storage.options_copy(delimiter text DEFAULT NULL::text, null_string text DEFAULT NULL::text, header boolean DEFAULT NULL::boolean, quote text DEFAULT NULL::text, escape text DEFAULT NULL::text, force_quote text[] DEFAULT NULL::text[], force_not_null text[] DEFAULT NULL::text[], force_null text[] DEFAULT NULL::text[], content_encoding text DEFAULT NULL::text);
权限
任何用户或角色都可以调用此函数。
论据
分隔符
text 分隔文件每行(行)中的列的字符。 它必须是单个 1 字节字符。 尽管此函数支持任意数量的字符的分隔符,但如果尝试使用多个 1 字节字符,PostgreSQL 会报告错误 COPY delimiter must be a single one-byte character 。
null_string
text 表示 null 值的字符串。 默认值为 \N(反斜杠-N),格式为 CSV 格式的无引号空字符串。 即使不想将 null 与空字符串区分开来,你也更倾向于采用文本格式的空字符串。
标头
boolean 指示文件是否包含标题行以及文件中每列的名称的标志。 输出时,初始行包含表中的列名。
Quote
text 引用数据值时要使用的引号字符。 默认值为双引号。 它必须是单个 1 字节字符。 尽管此函数支持任意数量的字符的分隔符,但如果尝试使用多个 1 字节字符,PostgreSQL 会报告错误 COPY quote must be a single one-byte character 。
逃
text 应出现在与 QUOTE 值匹配的数据字符之前显示的字符。 默认值与 QUOTE 值相同(以便在数据中出现引用字符时加倍)。 它必须是单个 1 字节字符。 尽管此函数支持任意数量的字符的分隔符,但如果尝试使用多个 1 字节字符,PostgreSQL 会报告错误 COPY escape must be a single one-byte character 。
force_quote
text[] 强制引用用于每个指定列中所有非 NULL 值。 从不引用 NULL 输出。 如果指定 *,则所有列中都引用非 NULL 值。
force_not_null
text[] 与 null 字符串不匹配指定的列值。 在 null 字符串为空的默认情况下,这意味着空值将读取为零长度字符串而不是 null,即使它们未带引号也是如此。
force_null
text[] 将指定的列的值与 null 字符串匹配,即使带引号,如果找到匹配项,则将该值设置为 NULL。 在 null 字符串为空的默认情况下,它将带引号的空字符串转换为 NULL。
content_encoding
text 对文件进行编码的编码的名称。 如果省略该选项,则使用当前客户端编码。
返回类型
jsonb
azure_storage.options_tsv
充当实用工具函数的函数(可在其中 blob_get调用为参数),可用于解码 tsv 文件的内容。
azure_storage.options_tsv(delimiter text DEFAULT NULL::text, null_string text DEFAULT NULL::text, content_encoding text DEFAULT NULL::text);
权限
任何用户或角色都可以调用此函数。
论据
分隔符
text 分隔文件每行(行)中的列的字符。 它必须是单个 1 字节字符。 尽管此函数支持任意数量的字符的分隔符,但如果尝试使用多个 1 字节字符,PostgreSQL 会报告错误 COPY delimiter must be a single one-byte character 。
null_string
text 表示 null 值的字符串。 默认值为 \N(反斜杠-N),格式为 CSV 格式的无引号空字符串。 即使不想将 null 与空字符串区分开来,你也更倾向于采用文本格式的空字符串。
content_encoding
text 对文件进行编码的编码的名称。 如果省略该选项,则使用当前客户端编码。
返回类型
jsonb
azure_storage.options_binary
充当实用工具函数的函数(可在其中 blob_get调用为参数),可用于解码二进制文件的内容。
azure_storage.options_binary(content_encoding text DEFAULT NULL::text);
权限
任何用户或角色都可以调用此函数。
论据
content_encoding
text 对文件进行编码的编码的名称。 如果省略该选项,则使用当前客户端编码。
返回类型
jsonb