Questions tagged «architecture»

3
归档当前年份以外的所有数据并同时对表进行分区的最佳方法是什么
任务 从一组大型表中存档,除了滚动13个月以外的所有时间。存档的数据必须存储在另一个数据库中。 数据库处于简单恢复模式 这些表是5000万行到数十亿行,在某些情况下,每行占用数百GB。 这些表当前未分区 每个表在不断增加的日期列上都有一个聚集索引 每个表还具有一个非聚集索引 对表的所有数据更改都是插入 目标是最大程度地减少主数据库的停机时间。 服务器是2008 R2 Enterprise “存档”表将包含约11亿行,“活动”表将包含约4亿行。显然,存档表会随着时间的推移而增加,但是我希望实时表也会迅速增加。至少在接下来的几年中说50%。 我曾考虑过Azure拉伸数据库,但不幸的是,我们现在使用的是2008 R2,并且可能会在其中停留一段时间。 当前计划 创建一个新的数据库 在新数据库中创建按月分区的新表(使用修改的日期)。 将最近的12-13个月的数据移到分区表中。 对两个数据库进行重命名交换 从现在的“归档”数据库中删除移动的数据。 对“归档”数据库中的每个表进行分区。 将来使用分区交换来存档数据。 我的确意识到,我将不得不交换要存档的数据,将该表复制到存档数据库,然后将其交换到存档表中。这是可以接受的。 问题: 我正在尝试将数据移到初始分区表中(实际上,我仍在对其进行概念验证)。我正在尝试使用TF 610(根据《数据加载性能指南》)和一条INSERT...SELECT语句来移动数据,最初认为该数据将被最少地记录。不幸的是,每次我尝试将其完全记录下来。 在这一点上,我认为我最好的选择可能是使用SSIS包移动数据。我试图避免这种情况,因为我正在使用200个表,而我可以通过脚本轻松地生成和运行的任何事情。 我的总体计划中是否缺少任何内容?SSIS是否是我最好的选择,它可以快速移动数据并以最少的日志使用量(空间问题)? 没有数据的演示代码 -- Existing structure USE [Audit] GO CREATE TABLE [dbo].[AuditTable]( [Col1] [bigint] NULL, [Col2] [int] NULL, [Col3] [int] NULL, [Col4] [int] …

2
如何存储时间序列数据
我有一个时间序列数据集(如果我错了,请纠正我),该数据集具有许多关联值。 一个示例是对汽车进行建模并在旅途中跟踪其各种属性。例如: 时间戳| 速度 行驶距离| 温度| 等等 什么是存储此数据的最佳方法,以便Web应用程序可以有效地查询字段以查找最大值,最小值并绘制随时间变化的每个数据集? 我开始分析数据转储并缓存结果,这样就永远不必存储它们了。但是,经过一番尝试之后,由于内存限制,此解决方案似乎无法长期扩展,如果要清除缓存,则需要重新解析并重新缓存所有数据。 另外,假设每秒跟踪数据的可能性极低,可能超过10小时,那么通常建议通过每N秒采样一次来截断数据集吗?

4
如何处理可变列的表设计
我有一个表设计方案,作为非DBA类型,我想就哪种方案更具可扩展性提出意见。 假设您被要求在都市圈的房屋上记录信息,从一个小社区(200座房屋)开始,但最终增长到5000000多个房屋。 您需要存储以下基本信息:ID#(可以用作唯一索引的唯一批号),Addr,City,State,Zip。很好,简单的表可以处理它。 但是每年,都将要求您记录有关所有房屋的额外信息-信息将每年更改。因此,例如,在第一年,要求您记录所有者的姓氏和平方英尺。第二年,要求您保留姓氏,但丢弃平方英尺,而是开始收集所有者的名字。 最后-每年,额外列的数量都会改变。可能从2个额外的列开始,然后在明年移至6,然后回落至2。 因此,一种表方法是尝试将自定义信息添加为房屋表中的列,因此只有一个表。 但是我有一种情况,有人为此安排了桌子: “房屋表”列:ID,地址,城市,州,邮政编码-每个房屋只有一行 ID Addr City State Zip ------------------------------------------- 1 10 Maple Street Boston MA 11203 2 144 South Street Chelmsford MA 11304 3 1 Main Avenue Lowell MA 11280 “自定义信息表”列:ID,名称,值-表如下所示: ID Name Value 1 Last Name Smith 2 Last Name Harrison 3 Last Name …

5
使用多个数据库与使用单个数据库的利弊
我正在一个新项目中工作,该项目要求使用7个数据库,并认为更容易实现性能,稳定性和优化。 虽然我不同意,但我在收集好的参数以使用单个数据库时遇到了麻烦(将表拆分为逻辑域)。 到目前为止,我有一个论点是数据完整性(我不能在数据库之间使用外键)。 使用单个或多个数据库有哪些优点/缺点? [到目前为止的总结] 针对多个数据库的参数: 丢失数据完整性(不能在数据库上使用外键) 失去还原完整性 获得复杂性(数据库用户/角色) 小赔率服务器/数据库将关闭 解决方案: 使用架构来分隔域。 POC:使用伪数据证明7/1 db执行计划中的重点

2
数据库引擎到底是什么?
我已经仔细阅读了http://en.wikipedia.org/wiki/Database_engine上的定义: 数据库引擎(或“存储引擎”)是数据库管理系统(DBMS)用于从数据库创建,读取,更新和删除(CRUD)数据的基础软件组件。 我不明白的是剩下要做的事情,难道不是CRUD数据库所能做的全部吗? 如果数据库引擎执行这些功能,那么数据库的其余部分会做什么?


4
驱动器与安装点?
以前的高级DBA在整个公司的每个SQL Server中为我们所有驱动器设置了安装点。新的高级DBA 感到震惊,因为他们想更改我们的标准(主要是我认为,因为他没有使用这些标准的经验)。 基于大量Internet搜索的结果,我找不到任何不使用装载点的原因(SQL Server 2000之后)。 有人知道Windows OS与此主题有关的限制吗? 我最近听到很多关于“操作系统无法识别挂载点”的说法。(不正确,基于我对我们使用的Windows Server版本的研究)。 是否有任何基于证据或经验的原因不将装载点用于SQL Server? 假设用完驱动器号对我们来说不是问题。 据我了解,挂载点对于隔离工作负载非常有用。 任何人都可以确认或驳斥我的理解,即挂载点实际上比每个数据文件,日志文件和tempdb一个驱动器更有效地隔离/隔离不同类型的数据和日志文件(系统数据库文件,用户数据库文件,tempDB)的工作负载?

1
高并发存储系统
想象一下您的需求是,您有3个巨大的表(结构化数据),每个表有300亿行(总大小为4TB),并且许多并发用户(远程LAN机器上的并行os线程)将需要读取一部分通过他们的SELELCT WHERE GROUPBY查询和高度并发的数据,例如,同时进行10,000次并发读取,并且用户也需要将这些数据高度并发地插入(不更新)数据到这些表中,例如2000个并发写入器(遍及数据中心LAN网络) 。用户可能希望尽快从该存储中读取和插入数据,每次读取和写入将发生在毫秒到1秒范围内。 您推荐什么技术来满足这种要求?是否有任何数据存储或键值存储可以做到这一点?不能选择云。 一些说明: 用户不必立即查看数据,最终的一致性是可以接受的。数据可以通过存储可以提供的任何驱动程序进行访问,而用户又仅仅是在数据中心的远程计算机上运行的线程。查询大多类似于SELECT WHERE GROUPBY。 数据采用表格格式,每行约60个字节。 我无法使用DynamoDB或类似解决方案的无云选项。我必须能够在数据中心内部托管它。 可以一直读取表中的所有数据,并且使用模式是不可预测的。没有联接或超长查询。不需要DR,但是需要合理的HA,但是不必花哨。每个读者都基于其where子句获得了一批行,而这些子句与行并不是真正相关。我们可能每行的长度可以固定,但是我希望存储层对此有所担心。 另外,我最大的担心是与并发读取一起发生的所有那些并发写入。 非常感谢您对此的见解。 更重要的是,我有三个表,每个表有300亿行包含不同的对象类型

1
在Postgres中优化2000万行的“最新”查询
我的表如下所示: Column | Type | -----------------------+-------------------+ id | integer | source_id | integer | timestamp | integer | observation_timestamp | integer | value | double precision | 索引存在于source_id,timestamp以及timestamp和id(CREATE INDEX timeseries_id_timestamp_combo_idx ON timeseries (id, timeseries DESC NULLS LAST))的组合上 其中有2000万行(好的,有120M,但是有source_id = 1的20M)。它有许多相同的条目,timestamp且有所不同observation_timestamp,描述了一个value发生在timestamp报告或观察到的事件observation_timestamp。例如,明天下午2点预测的温度与今天上午12点预测的温度相同。 理想情况下,此表可以很好地完成一些工作: 批量插入新条目,有时一次插入10万 选择观察到的时间范围内的数据(“一月到三月的温度预测是多少”) 选择从某个点观察到的时间范围内观察到的数据(“如我们在11月1日所想到的,从1月到3月的温度预测如何看待”) 第二个是这个问题的核心。 表中的数据如下所示 id source_id timestamp observation_timestamp …

2
具有pgpool架构的Postgres
下面是一个示例pgpool架构: 这意味着您只需要在单个服务器上安装pgpool。这是真的?当我查看配置时,我还看到您在其中配置了后端pgpool.conf。因此它进一步暗示了这一点。但是,这并不能解释为什么我也在后端服务器上看到pgpool。 查看文档时,我还会看到: 如果您使用的是PostgreSQL 8.0或更高版本,则强烈建议在所有可由pgpool-II访问的PostgreSQL上安装pgpool_regclass函数,因为它在pgpool-II内部使用。 所以我不确定该怎么想;最好的做法是在所有后端上或仅在专用服务器上都使用pgpool?

1
MySQL具有延迟的高可用性,故障转移和复制
我们正在实施在MySQL上运行的新CMS(Drupal 6.x)。我们有两个数据中心-主数据中心和辅助数据中心,它们之间的延迟已知。我们不确定我们将运行哪个MySQL版本...社区还是企业,但这是一个待定。看来我们将运行InnoDB引擎,操作系统将为RedHat EL 5.5。主服务器将处于活动状态,而辅助服务器将处于被动或热备用状态。 我想在两个数据中心的MySQL中实现复制,高可用性和自动故障转移。 故障转移到辅助服务器后,当我们故障回复到主服务器时,我们希望将数据从辅助数据库快速而完整地同步到主数据库,以便我们可以继续从主服务器提供内容。 我很想知道可以使用哪些技术/工具/最佳实践来解决/解决这些问题。同样,任何陷阱或啊哈时刻也将不胜感激。我已经阅读了有关MySQL复制,群集和Tungsten和Dolphinics等某些第三方工具的资料,但是我不确定什么是最佳方法。 感谢您的时间! KM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.