1. 各位大神,数据仓库分层 DWD DWB DWS 分别是什么缩写啊
DW :data warehouse 翻译成数据仓库
DW数据分层,由下到上为 DWD,DWB,DWS
DWD:data warehouse detail 细节数据层,有的也称为 ODS层,是业务层与数据仓库的隔离层。
DWB:data warehouse base 基础数据层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。
DWS:data warehouse service 服务数据层,基于DWB上的基础数据,整合汇总成分析某一个主题域的服务数据,一般是宽表。
数据仓库分层的原因
1、通过数据预处理提高效率,因为预处理,所以会存在冗余数据
2、如果不分层而业务系统的业务规则发生变化,就会影响整个数据清洗过程,工作量巨大
3、通过分层管理来实现分步完成工作,这样每一层的处理逻辑就简单了
标准的数据仓库分层:ods(临时存储层),pdw(数据仓库层),mid(数据集市层),app(应用层)
4、空间换时间。通过建设多层次的数据模型供用户使用,避免用户直接使用操作型数据,可以更高效的访问数据。
5、把复杂问题简单化。讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
6、便于处理业务的变化。随着业务的变化,只需要调整底层的数据,对应用层对业务的调整零感知
2. 数据库附加上是只读的,想删了它该怎么删
先用Windws登陆一边,然后把数据库的文件夹的只读属性的勾选框给删掉,然后在用SQL登陆,再次附加就好了,呵呵……
3. 数据仓库的并发能力和OLTP类数据库的区别
在数据仓库场景下,对并发能力的要求:
1.用户的多任务能连接进来,这就是连接池的管理。
2.高效完成多任务并发执行,实际上是多任务并发进来后,如何充分利用集群资源,向用户返回执行结果。对于OLTP类数据库来说,用户的任务(SQL)以短事务居多,所以并发能力会比较高。但是在数仓场景下,批处理、复杂查询非常耗费系统资源,对并发能力的要求是几十,例如POC测试中大部分是用5并发、20并发来测试。
由于DWS/LibrA(注1)的集群的Coordinator Node是多活的、对等的,所以整个系统的并发数随着CN的增加可以不断增长。具体的并发能力受限于实际场景:
•短事务:在平安城市某项目中,在混合负载场景下,测试过5000+并发,可以稳定运行。
•长事务:在某银行复杂批处理场景下,20并发可以稳定运行。后续版本会进一步优化。
独创技术:提供一种基于流水线执行模式的查询内存自适应解决方法,解决多并发场景下系统资源抢占问题,实现无论多大并发,系统稳定运行。
4. mysql是T-SQL规范,还是PL/SQL规范
都不是,MySQL不支持anonymous code block,用oracle的话说,没有pl/sql只有sql。
如果一定要比较,MySQL写stored procere中可以发现,语法规范更接近t-sql
5. 数据工程师是做什么工作内容
数据工程师都做什么?
数据工程师负责创建和维护分析基础架构,该基础架构几乎可以支持数据世界中的所有其他功能。他们负责大数据架构的开发、构建、维护和测试,例如数据库和大数据处理系统。大数据工程师还负责创建用于建模,挖掘,获取和验证数据集合等流程。
数据工程师的关键技能
下面介绍数据工程师所需的几项关键技能。
1.大数据架构的工具与组件
数据工程师更关注分析基础架构,因此所需的大部分技能都是以架构为中心的。
2.深入了解SQL和其它数据库解决方案
数据工程师需要熟悉数据库管理系统,深入了解SQL至关重要。同样其它数据库解决方案,例如Cassandra或BigTable也须熟悉,因为不是每个数据库都是由可识别的标准来构建。
3.数据仓库和ETL工具
数据仓库和ETL经验对于数据工程师至关重要。像Redshift或Panoply这样的数据仓库解决方案,以及ETL工具,比如StitchData或Segment都非常有用。此外,数据存储和数据检索经验同样重要,因为处理的数据量是个天文数字。
4.基于Hadoop的分析(HBase,Hive,MapRece等)
对基于Apache Hadoop的分析有深刻理解是这个领域的一个非常必要的需求,一般情况下HBase,Hive和MapRece的知识存储是必需的。
5.编码
说到解决方案,编码与开发能力是一个重要的优点(这也是许多职位的要求),你要熟悉Python,C/C++,Java,Perl,Golang或其它语言,这会非常有价值。
6.机器学习
虽然数据工程师主要关注的是数据科学,但对数据处理技术的理解会加分,比如一些统计分析知识和基础数据建模。
机器学习已经成为标准数据科学,该领域的知识可以帮我们构建同类产品的解决方案。这种知识还有一个好处,就是让你在这个领域极具市场价值,因为在这种情况下能够“戴上两顶帽子”会让你成为一个更强大的工具。
7.多种操作系统
最后,需要我们对Unix,Linux和Solaris系统有深入了解,许多数学工具基于这些操作系统,因为它们有Windows和Mac系统功能没有的访问权限和特殊硬件需求。
6. sql查询语句格式是什么
sql查询语句格式是:
7. 求助!系统dsn为空,无法连接数据库。
两种可能:
1、你安装SQL的时候,选择了“Windows验证”,而你建立DSN的时候选择了“使用网络登录ID的Windws NT 验证”
2、你建立DSN的时候选择了“使用用户输入登录ID和密码的SQL Server验证”,但没有输入有效的用户名和密码。一般有效的默认用户是sa,为了安全起见你也可以建立别的用户。
如果你安装SQL的时候选择“混合模式”和“空密码”,建立DSN时候选择“使用网络登录ID的Windws NT 验证”是不可能出现这个问题的。
SQL中设定系统帐号,表示使用登陆系统的帐号自动启动SQL,不需要知道用户名和密码,而设定“本帐号”则以你指定的帐号来启动SQL,两者没有太大的区别。
你在DSN里设定的登陆ID,就是你的SQL服务器“管理”中设定的用户,这个用户必须对你指定的数据库有操作权限,一般使用SA,你也可以自己建一个,没什么太大的意义,用网络ID验证和NT验证就可以了。
8. dws数据库日期减去一天
在update或者insert的数据库里,在那里-1就好了。
DWS是数据库生态,使用标准SQL,所以要减少一天的话,就需要在SQL里面,SQL语句使用DATEADD得到一个时间加上或减去指定天数之后的时间。也适用于小时、分钟、秒钟等等。DATEADD()函数功能:在日期中添加或减去指定的时间间,date参数是合法的日期表达式。number是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。往前一天,就是减少一天,-1就行。
一个DWS集群实际上是一个支持联机分析处理方式的数据库平台,属于分析性的关系型数据库。
9. SQL Server 标识规范 问题
UserID改成标识规范 为 是 的时候,在你添加、删除和修改用户的时候都不能对Userid操作,而且它是自动添加的,不可以修改。这样数据库表你不设置主键也可以。
如果UserID改成标识规范 为 否 的时候,那么在增加、修改的时候你就得操作。
我用的ASP连接SQL Server 之后,先是登陆进去,然后里面有个功能是 管理登陆账户。
我admin 表里面一共有 UserID, username,password, purview 四个栏目,其中UserID是主键, 当我把UserID改成标识规范 为 是 的时候, 登陆的时候总是显示账户密码错误,登陆不进去,改成否的时候到时可以登陆进去了,但是后面的添加账户,显示UserID不能为空。
在你下边的代码中
set rs=server.CreateObject("Adodb.recordset")
sql="insert into Admin(username,password,purview) values ------在添加数据时,userid你没有添加,这就说明userid是标识规范,否则就回出现错误。
10. SQL数据库设计规范及如何设置外键
20个数据库设计最佳实践: 使用明确、统一的标明和列名,例如 School, SchoolCourse, CourceID。 数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourses。 数据表名不要使用空格。 数据表名不要使用不必要的前缀或者后缀,例如使用School,而不是TblSchool,或者SchoolTable等等。 数据库中的密码要加密,到应用中再解密。 使用整数作为ID字段,也许现在没有这个必要,但是将来需要,例如关联表,索引等等。 使用整数字段做索引,否则会带来很大的性能问题 。 使用bit 作为布尔字段,使用整数或者varcha是浪费。同时,这类字段应该以“Is”开头。 要经过认证才能访问数据库,不要给每一个用户管理员权限。 尽量避免使用“select *”,而使用“select [required_column_list]”以获得更好的性能。 假如程序代码比较复杂,使用ORM框架,例如hibernate,iBatis。ORM框架的性能问题可以通过详细的配置去解决。 分割不常使用的数据表到不同的物理存储以获得更好的性能。 对于关键数据库,使用安全备份系统,例如集群,同步等等。 使用外键,非空等限制来保证数据的完整性,不要把所有的东西都扔给程序。 缺乏数据库文档是致命的。你应该为你的数据库设计写文档,包括触发器、存储过程和其他脚本。 对于经常使用的查询和大型数据表,要使用索引。数据分析工具可以帮助你决定如何建立索引。 数据库服务器和网页服务器应该放在不同的机器上。这回提高安全性,并减轻CPU压力。 Image和blob字段不应该定义在常用的数据表中,否则会影响性能。 范式(Normalization)要按照要求使用以提高性能。Normalization做的不够会导致数据冗余,而过度Normalization 会导致太多的join和数据表,这两种情况都会影响性能。 多花点时间在数据库设计上,否则你将来会付出加倍的时间来偿还。设置外键:方法一:SQL语句alter table 表名 add constraint 外键名 foreign key(字段名) references 主表名(字段名) on delete cascade方法二:不想写sql 语句也可以直接用图形化操作 选择你要创建外键的表,反键选择修改表,点击