网站确定关键词 如何做wordpress 视频解析

张小明 2026/3/13 3:48:28
网站确定关键词 如何做,wordpress 视频解析,中国计算机公司排名,制作网页免费原文#xff1a;towardsdatascience.com/handling-hierarchies-in-dimensional-modeling-176156f20f61 对于层级#xff0c;存在各种建模技术。它们在数据仓库的维度建模中哪一个表现最佳#xff1f;以及如何使用它们来处理各种类型的层级#xff1f;让我们来探究一下。 层…原文towardsdatascience.com/handling-hierarchies-in-dimensional-modeling-176156f20f61对于层级存在各种建模技术。它们在数据仓库的维度建模中哪一个表现最佳以及如何使用它们来处理各种类型的层级让我们来探究一下。层级在数据仓库的维度建模中起着至关重要的作用影响着数据分析的结构和效率。借鉴我在为各种公司实施数据解决方案时的经验本文探讨了处理维度建模中各种类型层级的最佳实践和技术。通过详细的例子和实际指南我将引导处理不同类型层级的复杂性以确保稳健且可扩展的数据仓库设计。在处理层级时识别它们的特性和所有相关细微差别非常重要。因此在深入研究建模技术之前让我们看看在现实生活中的层级场景中我们可以找到哪些怪癖。本文中的例子是虚构的但灵感来源于我为一家全球制药公司实施的一个项目中遇到的实际案例。尽管它们被显著简化但它们仍然展示了数据建模的有趣方面。样层层级的概述让我们考虑以下样本层级全球公司的内部组织结构、地理和产品药品层级。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/158c20e6f74bb507a14902f2290907ff.pngPharma 领域样本层级的逻辑分解 | 图片由作者提供组织层级一家全球制药公司有几个业务单元。每个业务单元由部门组成。一些较大的部门有子部门但并非所有都有。在最低层有绩效单位。如果一个部门有子部门那么它下面没有直接的绩效单位。地理层级该公司在全球范围内销售其产品。它跟踪区域和国家层面的表现。在每个国家都有一个或多个绩效单位。每个绩效单位在一个单一的国家内运营。一些较大的国家被划分为次国家地区根据国家不同这些可能是“州”、“省”、“府”等。产品层级公司生产的药品在最低级别被标识为 SKU。SKU 是本地的即特定于国家的。每个 SKU 都有自己的本地名称和其他属性如包装类型、尺寸、标签语言等。SKU 被分组为本地产品然后进入本地治疗领域。所有本地项目都是特定于国家的。同时本地产品映射到全球国际品牌。一些全球品牌被认为是关键品牌。所有全球品牌都被分组到全球治疗领域。[SKU 本地产品 本地治疗领域]层次结构被认为是本地产品层次结构。[全球产品 全球品牌 全球治疗领域]被认为是全球产品层次结构。样本事实层次结构的另一个重要方面是理解要跟踪的事实以及它们如何与层次结构相联系。为了本文的目的让我们假设我们有以下类型的事实销售实际– 在 SKU 和绩效单位层面报告销售活动– 在绩效单位、国家或次国家地区取决于国家和本地产品层面报告销售目标– 在部门和全球产品层面定义竞争销售– 在全球品牌和国家层面收集从数据供应商如 IQVIA 收集允许追踪自身市场份额。下面的图示显示了四种样本事实类型及其与层次结构的关系。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6ef12208a48d301d8d117dee142788e2.png事实与样本层次结构逻辑模型 | 作者图片在设置好阶段之后让我们看看如何物理建模层次结构的数据结构。在这篇文章中我专注于维度建模技术因此我们将层次结构建模为维度。最后一点为了专注于层次结构表示的数据结构建模而不是在本文的上下文中用无关的细节杂乱无章我假设所有维度都是 SCD1尽管在现实生活中它们都应该是 SCD2。命名维度表在开始建模维度表之前让我们建立一个命名约定。这不仅增强了清晰度和组织性还确保了表易于识别和维护。维度表前缀首先我们将为所有维度表使用特定的前缀来区分它们与事实表和其他数据库对象。常用的做法是在这些表前加上d_或dim_前缀。我将采用d_前缀以简化。层次级别通用前缀接下来对于同一层级内的所有表格使用一个共同的表前缀是有益的。这种做法通过将相关的表格分组进一步增强了清晰度。例如如果我们正在模拟一个组织层级我们可以使用d_org_作为前缀。这个层级内的表格可能被命名为d_org_business_unit、d_org_division等。同样地对于产品层级我们可能会使用d_prd_从而产生如d_prd_sku、d_prd_local_product等表格。对于地理数据可以使用d_geo_导致如d_geo_region、d_geo_country等表格。当表格在数据库客户端应用程序中显示时它们通常按字母顺序排序因此这个约定将保持相关表格在一起。此外当使用具有自动完成功能的客户端应用程序时输入共同的前缀将显示与给定层级相关的所有表格。列命名约定当涉及到这些表格中的列命名时采用一致且描述性的约定同样重要。一种有效的方法是使用 Classwords 约定。如果你不熟悉它我建议阅读我的另一篇文章我在其中解释了它Classwords – 我最喜欢的数据库列命名约定此外我使用_sk作为 PK 列的名称。想知道为什么吗我在这篇文章中解释了它数据库设计中技术列的最佳实践建模物理维度确定外键引用层级的识别为层级建模物理维度时的第一步是确定需要通过外键FKs引用的层级。这些层级通常是对于业务分析和报告至关重要的主要实体。对于这些实体中的每一个都应该创建一个相应的维度表并分配一个代理键SK。这个代理键将作为维度表中每条记录的唯一标识符并在事实表中用于建立维度与事实之间的关系。例如在组织层级中只有绩效单位级别从事实表中引用。另一方面在产品层级中我们有四个通过 FK 引用的级别SKU、本地产品、全球产品和全球品牌。在下面的图中所有需要 SKs以便它们可以作为 FK 约束的目标的维度层级都被标记为金色钥匙符号。这些层级构成了相应的维度表的基础。它们决定了它们的粒度而层级的高层可以通过它们的属性进行建模。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3996e4f54992e87c1e1e95e2b817dfa6.png识别作为外键引用目标的层次结构级别 | 图片由作者提供建模剩余的级别在某些情况下层次结构中的某些级别可能仅用于报告中的动态聚合目的而不是作为主要实体。这些级别可以被视为现有维度表中的属性而不是为它们创建单独的维度表。当然层次结构中的所有逻辑级别都可以建模为单独的维度表。然而在由数十个级别组成的复杂现实场景中这可能会使数据库模式变得杂乱充斥着过多的表。将它们作为属性保留的方法与起源于编程的开放-封闭原则相一致该原则指出软件实体应该对扩展开放但对修改封闭。它同样适用于数据建模领域。如果这些剩余的级别中的任何一个需要成为外键引用的目标可以临时创建一个单独的维度表。需要将指向这个新维度表的外键添加为前一个维度的新列其中该级别作为属性。这将创建冗余该级别将在传统维度和新维度中同时作为属性。但这是为了最初简化的好处而付出的微小代价。那么让我们看看下面的图表看看产品层次结构的物理模型是什么样的。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/297792fc86c2b93821a3c4a75f7909ed.png产品层次结构的逻辑到物理模型映射 | 图片由作者提供产品层次结构的六个级别本地和全球映射到四个物理维度表它们之间通过外键关系一对多相互关联。每个作为外键关系目标级别的都有其自己的物理维度表。处理零散层次结构零散层次结构是一种层次结构类型其中级别的深度可以变化。这意味着层次结构的每个分支并不都下降到相同的级别。深度的变化可能会使建模和查询过程复杂化。上述定义的组织层次结构提供了一个清晰的例子。公司被划分为几个业务单元每个业务单元包含多个部门。其中一些部门有额外的子部门层但这在所有部门中并不统一。在层次结构的最低级别我们找到绩效单元它们直接向部门或子部门报告具体取决于分支。零散层次结构作为自引用维度这种结构的变化需要灵活的建模方法以确保所有层次关系都能被准确捕捉并有效分析。管理此类不规则层次结构通常涉及使用父子关系表其中每个实体指向其直接父实体允许无论层次深度如何都能遍历层次结构。这种建模技术也被称为邻接表模型。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e555c225808b0001de5d4287ee355ade.png不规则组织层次结构自引用维度表的样本物理结构 | 作者图片上图展示了此类自引用维度表的组织层次结构的样本结构。它包含以下对于层次结构建模重要的列_sk是项目层次结构元素的主键org_hierarchy_parent_sk是一个指向父节点的外键对于顶级单位除外即业务单元其值为NULLlevel_number是一个表示项目所代表层次级别的整数例如顶级业务单元为1二级项目部门为2等我建议使用连续编号因此绩效单位将在3级和4级取决于它们所属的部门是否有子部门level_code是层次级别的技术缩写例如绩效单位为PU子部门为SD等unit_name是组织特定单位的实际名称。使用此类列可以轻松获取所有绩效单位及其父单位的列表无论这些是子部门还是部门SELECT pu._sk AS performance_unit_sk,pu.unit_name AS performance_unit_name,parent._sk AS parent_unit_sk,parent.unit_name AS parent_unit_name,parent.level_code AS parent_level_code FROM d_org_hierarchy pu LEFT JOIN d_org_hierarchy parent ON pu.org_hierarchy_parent_skparent._sk WHERE pu.level_codePU还可以从任何级别上的任何单位开始迭代遍历层次结构WITH RECURSIVE org_hierarchy_cte AS(--Anchor member:startfromthe given unit SELECT _sk,hierarchy_parent_sk,level_code,unit_name FROM d_org_hierarchy WHERE skstarting_unit_sk--Replace starting_unit_skwiththe actual starting unit SK UNION ALL--Recursive member:traverse up the hierarchy SELECT parent.sk,parent.org_hierarchy_parent_sk,parent.level_code,parent.unit_name FROM d_org_hierarchy parent INNER JOIN org_hierarchy_cte cte ON cte.org_hierarchy_parent_skparent.sk)SELECT sk,level_number,level_code,unit_name FROM org_hierarchy_cte这种建模不规则层次结构的方法存在重大限制无法从事实创建到层次结构特定级别的外键关系例如从销售目标到绩效单位。无法有效管理层次级别的属性因为每个级别可能具有不同的属性并且有一个通用的表包含所有这些属性。如何解决这些限制作为级别特定维度的不规则层次结构模型不规则层次结构的另一种选择是使用特定级别或逻辑组特定级别的维度。在组织层次结构的例子中将有两个维度表第一个用于绩效单位和子部门第二个用于部门和业务单元。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/828b156e1983582567fee12746aaba54.png不规则组织层次结构专用维度表的样本物理结构 | 作者图片使用这种方法可以轻松解决自引用维度表的两个限制。但是对于可选的子部门级别怎么办呢对于没有子部门级别的情况填充subdivision_name列有三种方法。最简单且最明显的方法是将它们设置为NULL。然而在报告方面可能会有些挑战因为在聚合/钻取/钻透场景中这样的可选级别通常没有得到很好的支持。其他两种选择是相应地从层次结构的较低或较高级别上上移或下移值。两者都确保了层次结构级别的连续性。上移涉及从较低级别重新使用值来填补缺失的级别。下移假设从较高级别重新使用值。下表比较了这三种方法。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f802b70c962020162c1b23fed189c2dc.png填充缺失层次结构级别的三种方法 | 图片由作者提供虽然 up-/down-shifting 方法可能会掩盖真实的层次结构但它们将参差不齐的层次结构转换为具有固定级别的正规层次结构。例如如果你想报告子部门级别的指标值而对于没有子部门的部门使用部门级别你应该选择 down-shifting 方法。然后以下这样一个简单的查询就能解决问题SELECT pu.subdivision_name,SUM(sa.sales_amount_eur)AS total_sales_amount_eur FROM f_sales_actual sa LEFT JOIN d_org_performance_unit pu ON pu._sksa.performance_unit_sk GROUP BY pu.subdivision_name请记住对于具有多个可选级别的更复杂参差不齐的层次结构对于不同级别混合使用上移和下移是完全可以的。我还建议为每个具有可选子级别的父级别添加一个指示器以识别子级别名称是其实际名称还是已经上移或下移。这就是为什么在上述组织层次结构的物理结构图中我为d_org_division维度表添加了has_subdivisions_indicator列。统一层次结构视图我还发现了一个相当有用的技巧那就是为每个由多个维度表组成的层次结构创建一个统一且非规范化的视图。这对于大型多表层次结构特别有用。这个视图是整个层次结构中所有维度之间所有连接的简单物化。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/246d9c9ff5014b482dabc3372bd5e0b8.png产品层次结构的统一非规范化视图 | 图片由作者提供使用它的好处是什么首先当你不需要手动重写所有连接时它可以节省任何分析或故障排除操作的时间。你可以轻松地使用视图来查看从任何叶节点到根节点的完整路径包括所有级别的所有属性。例如对于产品层次结构和某些叶级别的 SKU 的 SQL 查询SELECT*FROM d_prd_hierarchy WHERE sku_numberABC-XYZ-123此外对于任何与质量保证相关的任务来说这也是有用的。为此我建议在视图中使用所有全外连接以确保不会丢失任何信息即使层次结构级别的父子关系被破坏。除了容易发现任何断开的链接外你还可以使用这样的视图例如对于组织层次结构查找从部门到子部门在两个物理维度表之间的错误下移逻辑--Selectallinvalid application of down-shifting logicforSub-Divisions SELECT DISTINCT subdivision_name,division_name FROM d_org_hierarchy WHERE division_has_subdivisions_indicator0AND subdivision_namedivision_name去规范化基础层维度 收缩汇总一致维度上述统一层次视图的另一种方法是创建一个去规范化基础层维度统一层次视图的等价物但以常规表的形式然后从中派生出所有以视图形式存在的一致维度。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/137b011c7383b995ac2298c7dd82a797.png以去规范化基础层维度和派生收缩汇总一致维度表示的产品层次结构 | 图片由作者提供这种方法基于 Ralph Kimball 的收缩汇总维度技术。其想法是有一个去规范化基础层维度表包含层次结构的所有可能级别及其属性。一个重要方面Kimball 的技术没有涵盖的是包括所有作为外键目标的高层 SK 的列。并且有两个重要原因层次结构较高层的收缩汇总维度可以作为简单的视图见下面的代码示例从去规范化基础层维度生成因此当基础维度更新时你不需要实现任何自定义逻辑来更新它们。计算整个层次结构的完整逻辑被保留为一个单独的代码单元该单元负责生成去规范化基础层维度。这种方法与在设计技巧 #137 创建和管理收缩维度 – Kimball Group中描述的方法非常相似。从d_prd_sku生成d_prd_global_brand的示例代码非常简单CREATE VIEW d_prd_global_brand AS SELECT DISTINCT global_brand_sk AS _sk,global_brand_name AS brand_name,global_brand_is_key_brand_indicator AS is_key_brand_indicator,global_therapeutic_area_name,...--a placeholderforadditional dimension levels/attributes FROM d_prd_sku在实践中出于性能考虑你应该将收缩汇总维度创建为物化视图或等效对象取决于所使用的数据库引擎的功能。指南摘要在本文中我根据我的实际经验展示了处理维度建模中层次结构的实用指南。下次当你正在处理包含一些层次结构的数据模型时请考虑以下建议在为维度表建立命名约定时考虑使用一个公共前缀为作为公共层次结构级别的维度服务。识别层次结构中的关键级别用于外键引用并确定何时将级别建模为单独的维度表而不是属性。当处理错落有致的层次结构时考虑使用特定级别的维度将它们建模为常规层次结构并通过上移和/或下移值来对可选的层次结构级别进行上移和/或下移。创建非规范化视图通过提供整个层次结构的综合视角来简化分析和故障排除任务。或者将整个层次结构作为非规范化基础级别维度建模并从中派生出维度的更高级别只有那些将作为外键目标的服务级别作为收缩的汇总符合维度。 有趣的事实尽管本文讨论的技术为处理维度建模中的层次结构提供了一个快速概述但还有许多针对各种特定应用设计的专门用于层次结构建模的方法。例如嵌套集模型、物化路径模型、路径枚举模型、闭包表模型等。嵌套集模型特别有趣因为它能够非常高效地执行复杂的层次结构查询。通过为树中的每个节点分配预先计算的“左”和“右”值它允许快速检索层次结构中的整个子树。它可以作为邻接集模型即自引用表的扩展应用。https://en.wikipedia.org/wiki/File:Clothing-hierarchy-traversal-2.svg和这里)](…/Images/0a0c28e792780e8de4bbcb1d876b4b23.png)嵌套集模型技术中“左”和“右”值计算的可视化 | 来源维基百科公共([这里](https://en.wikipedia.org/wiki/File:NestedSetModel.svg)和这里))如果你想了解更多关于嵌套集模型的信息请参阅 嵌套集模型 – 维基百科。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

儿童主题网站的内容建设wordpress 个人资料

3步搞定!DeepSeek-V3推理性能翻倍指南:从P99延迟到吞吐量的实战优化方法 【免费下载链接】DeepSeek-V3 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-V3 你还在为DeepSeek-V3推理性能的"延迟-吞吐量"矛盾而烦恼吗&…

张小明 2026/3/10 17:30:40 网站建设

可以做设计私单的网站页面设计英文

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 使用3w3cc免费资源,创建一个基于AI的代码生成工具。输入项目需求描述(如创建一个电商网站,包含用户注册、商品展示和购物车功能)&…

张小明 2026/3/12 15:08:24 网站建设

网站线框图用什么做龙岩做网站改版找哪家公司

《网络安全自学教程》 「计算机病毒」的定义是:编制或者在计算机程序中插入的 破坏计算机功能或者损坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。 病毒是「恶意代码」的一部分,凡是能够引起计算机故障&…

张小明 2026/3/5 5:37:03 网站建设

php网站开发实例代码可以自己买服务器做网站吗

绝区零智能游戏辅助:三步实现全自动游戏配置方案 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 还在为重复的日…

张小明 2026/3/5 5:37:04 网站建设

株洲seo网站推广创意网络

走进广州白云电器的实训课堂,一群来自广东机电职业技术学院的学生正在电脑前专注操作——他们使用的正是利驰软件的SuperWORKS电气设计平台。这不是一次简单的企业参观,而是“白云电器&广东机电联合培养计划”第二期的日常教学现场,而Sup…

张小明 2026/3/5 5:37:05 网站建设

中山移动网站建设怎么做做视频网站需要什么证书

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个Python脚本,实现在Ubuntu服务器上使用Chrome无头模式进行网页自动化操作。功能包括:1) 自动安装Chrome和chromedriver 2) 配置无头模式参数 3) 实现…

张小明 2026/3/5 5:37:06 网站建设