gpt4 book ai didi

azure - Azure中有没有可以引用的表来获取分区名称?

转载 作者:行者123 更新时间:2023-12-03 04:01:52 26 4
gpt4 key购买 nike

我想知道在 Azure 上专门分区的表的分区名称(类似于 Hive 中的 PART_NAME),我一直在系统表(如 sys.partitions)中查找此信息,但无法为了弄清楚,因此想问是否有其他系统表可以引用以获取有关分区名称的详细信息。

为了使问题更清楚,我添加了屏幕截图。在照片中,我突出显示了正在执行分区的列名称,我想检索该列名称,那么有什么方法可以从任何系统表中检索该列名称吗? Sample Table Structure

最佳答案

您必须将一堆表连接在一起才能获得有值(value)的分区信息。这是一个示例:

SELECT s.[name] AS [schema]
,t.[name] AS [table]
, i.[name] AS [index_name]
, p.[partition_id]
, p.[partition_number]
, p.[rows] AS [partition_rows]
, rng.[value] AS [partition_value]
, ds.[data_space_id]
, ps.[function_id]
from sys.tables t
join sys.schemas s
on s.[schema_id] = t.[schema_id]
join sys.indexes i
on t.[object_id] = i.[object_id]
join sys.partitions p
on p.[object_id] = t.[object_id]
join sys.data_spaces ds
on i.[data_space_id] = ds.[data_space_id]
join sys.partition_schemes ps
on ps.[data_space_id] = i.[data_space_id]
join sys.partition_functions pf
on ps.[function_id] = pf.[function_id]
join sys.partition_range_values rng
on pf.[function_id] = rng.[function_id] AND rng.[boundary_id] = p.[partition_number]
where s.[name] = @schema_name
and t.[name] = @table_name

返回如下内容:

enter image description here

关于azure - Azure中有没有可以引用的表来获取分区名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62012363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com