问题标签 [anchor-modeling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
frameworks - 有没有数据仓库框架?
我有很多需要从中生成报告的 mysql 数据。它主要是历史数据,因此不会发生太大变化,但它的重量很容易达到 20-30 GB,并且预计会增长。我目前有一组 php 脚本,它们将执行一些复杂的查询并输出 csv 和 excel 文件。我还将 phpMyAdmin 与书签查询一起使用。我手动编辑它们以更改参数。数据量在增长,需要访问它的人数也在增长,所以我正在抽出时间来改善这种情况。
前几天我开始阅读有关数据仓库的信息,这似乎与我需要做的事情有关。我读过一些 好 文章,甚至在等一本书。我想我已经掌握了这些系统的功能和可能性。
为我的数据创建报告系统一直在待办事项列表上,但直到最近我才认为这将是一个高度利基的编程冒险。由于我现在知道数据仓库是很常见的事情,我认为必须有某种报告/仓库框架可用于简化开发。我很乐意跳过编写界面和脚本来安排和通过电子邮件发送报告等,而是坚持编写查询和建立关系。
我大部分时间都是一个灯人,但我并没有超越切换语言或平台。我只需要一个更强大的解决方案,因为我的一次性脚本不能很好地扩展。
那么从哪里开始呢?
sql - 时间数据库设计,有一个转折(实时与草稿行)
我正在考虑实现对象版本控制,同时需要同时拥有实时对象和草稿对象,并且可以利用某人在这方面的经验,因为我开始怀疑它是否可能在没有潜在可怕的黑客攻击的情况下实现。
为了示例,我将把它分解为带有标签的帖子,但我的用例更笼统(涉及缓慢变化的维度 - http://en.wikipedia.org/wiki/Slowly_changeing_dimension)。
假设您有一个 posts 表、一个 tags 表和一个 post2tag 表:
我需要几件事:
- 能够准确显示帖子在任意日期时间的样子,包括已删除的行。
- 跟踪谁在编辑什么,以获得完整的审计跟踪。
- 需要一组物化视图(“实时”表)以保持引用完整性(即日志记录应该对开发人员透明)。
- 对于实时和最新的草稿行,需要适当的快速。
- 能够使草稿帖子与实时帖子共存。
我一直在研究各种选择。到目前为止,我想出的最好的(没有第 4 点/第 5 点)看起来有点像 SCD 类型 6 混合设置,但不是当前的布尔值,而是当前行的物化视图。出于所有意图和目的,它看起来像这样:
我正在使用 pg_temporal 来维护期间的索引(created_at,deleted_at)。我使用触发器使各种表保持同步。Yada yada yada...我创建了触发器,允许取消对帖子/标签的编辑,这样草稿就可以存储到 revs 中而不被发布。它工作得很好。
除非我需要担心 post2tag 上的草稿行相关关系。在那种情况下,所有的地狱都崩溃了,这向我暗示我在那里有某种设计问题。但我的想法已经用完了......
我考虑过引入数据重复(即为每个草案修订引入 n 个 post2tag 行)。这种工作,但往往比我想要的要慢得多。
我考虑过为“最后的草稿”引入草稿表,但这很快就会变得非常难看。
我考虑过各种各样的标志...
所以问题:在行版本控制的环境中,是否有一种普遍接受的方法来管理实时行和非实时行?如果没有,您尝试过什么并取得了相当大的成功?
sql - 锚定建模的优缺点是什么?
我目前正在尝试创建一个数据库,其中很大一部分数据是临时的。在阅读了许多这样做的技术(大多数涉及 6nf 标准化)后,我遇到了Anchor Modeling。
我正在开发的模式与锚建模模型非常相似,特别是因为用例(时间数据 + 已知未知数)非常相似,以至于我很想完全接受它。
我遇到的两个最大问题是,我找不到任何详细说明这种方法的负面影响的东西,而且我找不到任何关于在生产中使用它来制作我需要注意的战争故事和陷阱的组织的参考资料。
我想知道这里是否有人足够熟悉来简要阐述一些负面因素(因为积极因素在研究论文及其网站中得到了很好的宣传),以及在生产环境中使用它的任何经验。
database-design - Anchor Modeling 中的非破坏性模式演化是什么意思?
假设您有一个锚模型并将单个名称属性替换为三个属性:FirstName、MiddleName 和 LastName。原始名称属性会发生什么变化?我可以想象其他感觉具有破坏性的模式更改,那么 Anchor Modeling 声称以非破坏性方式发展模式意味着什么?
mongodb - 用于不断发展的内容管理应用程序的敏捷/演化数据库建模
需要明确的是,当我说敏捷时,我并不是指在敏捷开发过程中。我的意思是一个不断发展的数据模型,可以添加和管理新的对象属性。
我正在尝试解决一个 Web 应用程序挑战,它允许用户为数据输入创建新的内容表单,可以通过添加(或可能修改)其他字段来改进(可能版本化)。这本身就是一种直截了当。每个用户的内容表单都会有一个动态创建的视图和触发器来处理读/写,并且当对内容表单结构进行更改时,将动态创建基础表。数据输入将仅使用触发器进行写入,而视图将用于读取。
我正在寻找的建议是,是否存在有助于应对此类挑战的现有数据库建模技术或数据库类型。该应用程序将对更改跟踪、历史查看、完全不同的内容形式之间的迁移等有更多要求。可能还会在顶部添加一些基于授权的复杂 Web 应用程序查看。
我仔细研究了Anchor Modeling,虽然它具有双时态建模方面,并且它的 6NF 允许敏捷模式开发,但不清楚如何将它从开发良好的模型转换为 SQL 脚本,再到可以演变内容的 Web 应用程序数据。也许我看错了,但我不想修改 Anchor 模型中的任何触发器或视图,而且我认为我不能用它创建一个可以按需扩展的模型。将需要建模工具来安全地进行更改。
我仍然需要更多地研究一些可用的 NoSQL 数据库。MongoDB的面向文档的存储看起来非常有趣。
任何有关这些工具或所描述的数据建模挑战的建议或经验都将非常受欢迎!感谢您提前提供任何答案。
database-design - 锚建模 - 数据类型是模型的一部分吗?
关于锚模型数据库设计中数据类型的问题。该问题假设锚模型实现与锚模型本身分离。
在 Anchor Model xml 中,我们有以下与数据类型相关的种类信息:
dataRange="varchar(42)"
identity="int"
timeRange="datetime"
它们存储在锚模型实体(锚/属性)xml 节点中。
例子
据我了解,数据类型不会影响锚模型,它们会影响其对特定数据库供应商的实现。甚至历史属性的时间粒度也与模型无关。
所以问题是:
- 在元数据 xml 节点中存储数据类型信息不是更准确吗?因为它们不是模型的一部分
- 还是我遗漏了一些东西并且数据类型必须是锚模型的一部分?为什么?
database-design - 主播造型——领带:做第一个角色?
与官方主播建模师相关的简短问题。
虽然建模关系可以设置角色属性,但其中一个是“第一个角色”。
“制作第一个角色”选项有什么作用?
我在 xml/sql 文件中看到它在 Tie 中交换角色顺序。
它只是纯粹的技术设置还是有商业案例?
sql-server - 如何使用 ETL 过程将数据从 OLE DB 源发送到 Anchor 模型表?
我目前正在解决这个任务:一些数据应该从 AdventureWorks2012 发送到 MsSQL 中同一服务器上的 Anchor 模型表。这是我的锚模型
此时我在 Visual Studio 中有一个非常简单的集成服务项目,它看起来像这样。控制流:
例如 Load_territories 是:
主要要求是在MsSQL中填充Anchor模型表的所有表,但我一直面临一个问题:表中的属性数量不同,其中一些重复在第二张表中的这张图片基本上是TR_ID,TR_GRP_TR_ID,TR_TID_TR_ID , TR_TNM_TR_ID 包含与 dwh_key 相同的值,但不可能在属性之间创建一对多的关系。我的导师推荐我使用 Lookup,但我不知道如何在这个项目中实现它们
sql - 使用子查询在 Oracle 中加入消除不起作用
我能够让连接消除适用于简单的情况,例如一对一关系,但不适用于稍微复杂的场景。最终我想尝试锚建模,但首先我需要找到解决这个问题的方法。我正在使用 Oracle 12c Enterprise Edition Release 12.1.0.2.0。
我的测试用例的 DDL:
一些示例数据:
5NF 观点
第一个视图无法编译 - 它失败并出现 ORA-01799: a column may not be outer-joined to a subquery。不幸的是,当我查看锚建模的在线示例时,这就是大多数历史视图的定义方式......
下面是我修复它的尝试。当通过简单的选择来使用这个视图时product_id
,Oracle 设法消除了 product_color 而不是product_price。
我发现的唯一解决方案是使用标量子查询,如下所示:
现在 Oracle 成功地消除了 product_price 表。但是,标量子查询的实现方式与连接不同,它们的执行方式根本不允许我在现实世界的场景中获得任何可接受的性能。
TL;DR
我如何重写视图product_5nf
以使 Oracle 成功地消除这两个依赖表?
java - EMF (OCL) 将两个枚举合并为一个
我想知道 EMF 是否有可能将两个枚举连接成一个?我正在构建代表纸牌游戏的模型,并且我在卡片类中有两个等级和套装的枚举。我想在类 Deck 中创建组合枚举。有没有办法解决这个问题?
非常感谢您!