데이터 베이스 MySQL 튜토리얼 SAPHANA:列式内存数据库评测

SAPHANA:列式内存数据库评测

Jun 07, 2016 pm 03:28 PM
sap 메모리 데이터 베이스 검토

我一直怀疑SAP宣称的主存数据库HANA能够实现OLTP。因为内存是会挥发的,一旦断电,便什么都没了。这也许对OLAP来说没什么,毕竟数据可以重新从源系统中抽取,而且OLAP的业务紧迫性似乎也从来没有来得比OLTP重要。所以我也一直相信内存计算只会充单BI 加速器

我一直怀疑SAP宣称的主存数据库HANA能够实现OLTP。因为内存是会“挥发”的,一旦断电,便什么都没了。这也许对OLAP来说没什么,毕竟数据可以重新从源系统中抽取,而且OLAP的业务紧迫性似乎也从来没有来得比OLTP重要。所以我也一直相信内存计算只会充单BI 加速器的功能,因此也就对之“意兴阑珊”了——一个做报表的的系统又能挑起什么样的惊涛骇浪呢?

有段时间我把更多的注意力放在C-STORE上,一种基于网格(多节点,异地部署)的列式数据库方案。在处理扩展性和可用性方面,它通过Projection Overlapping(射影重叠冗余)技术实现K-Saftey(即能容忍K个节点同时挂掉);在处理更新操作方面(列式数据库的难点便是更新),它通过一个巧妙的混合架构合并了一个写优化库(WS)和一个读优化库(RS)。WS通常保持很小的数据量,以便获得更高的更新性能;RS则是专门为查询优化过的数据结构。需要值得注意的是WS 也是列式的,而非行式,这样做的主要目的为了避免写两个不同的查询优化器,同时更加方便的将WS自动的转换城RS(Tuple Mover)。C-STORE是一种应付大数据很好的方案,很明显该方案似乎更适合主存架构,因此后来发展成H-STORE(商用VoltDB)也就顺理成章。所有的这些让我更加坚定主存数据库只有架构在网格上(或者说“云”)才能更好的实现其商业应用价值。

而HANA从一开始让我更相信它会秉承SAP的传统,以INSTALL-BASE的模式交付,然后靠License获得收入。这种on-premises模式相较于on-demand模式让我觉得它老气横秋。就像那种令人讨厌又根深蒂固的老传统那样值得被唾弃。这种主观的偏见也一直蒙蔽了我,让我没有真正花时间去了解它。这次借和SAP合作培训的机会,我深入的了解这个代表SAP未来,也许是整个企业应用行业未来的主存数据库技术——HANA。

我这里不想累述HANA的具体架构,这些信息大家都可以从SAP发布的官方文档上去了解。SAP也在最近正式发布了 HANA的学术报告。了解后会发现跟我上面所述的C-STORE有许多异曲同工之处。我在这里想给大家一个参照,以帮助大家了解主存数据库到底有多快,以及我们以后该如何抉择?

既然要参照,不能只参考SAP给的数据或者SAP BW等应用跑出的结果。HANA被公布成一种崭新的数据库,那么就让我们用数据库的公开基准测试标准TPC-H来测试它,并将结果与传统的行式数据库(ORACLE)进行对比。我这次用到的是TPC-H 2.8的数据结构和22个SQL查询。性能测试主要包含以下4个内容1)数据加载,作为暂时主打数据集市的数据库,数据加载能力是我们关注的重要指标;2)数据压缩,一则经常作为列式数据库的卖点,二则HANA是按内存大小来收费的,可是直接关乎成本的;3)查询性能,内存数据库的主要卖点,是这次基准测试的重头戏;4)增量更新,是数据仓库非常重要的指标,也能从侧面让我们看到HANA的OLTP能力,否则就只能成为Larry所说的“wacko”,而不够“transformative”了。

TPC-H是一个业界公认的数据库性能测试基准,比较公正和中立,它定义了8个标准数据库表:customer, lineitem, nation, orders, partsupp, part, region, supplier,各表之间的关系可见tpc.org官方文档。从tpch.org官网上下载源代码,编译后得到一个数据生成工具(dbgen)和一个查询生成工具(qgen)。TPC-H定义了不同的数据库容量(size),用命令dbgen –s 10就可以生成10GB的数据,其中最大的表Lineitem行数达到59986052行。Qgen可以随机产生相同条件的不同取值的22个SQL查询。

本次测试HANA的运行环境如下:

硬件HP DL980, 内存512G, CPU Xeon X7560 2.27GHZ 32核

操作系统SUSE Linux Enterprise Server 11.1

HANA版本1.00.25.358341

1) 数据加载

用dbgen –s 10命令生成外部的*.tpl文件(CSV格式), 其中lineitem.tpl文件大小为7.3GB。手工创建对应的*.ctl文件,该文件为HANA所特有的导入参数文件,具体格式如下:

INTO TABLE VINCEN.LINEITEM

From lineitem.tbl FIELDS DELIMITED BY ‘|’

ERRO LOG LINEITEM.tbl.txt

将lineitem.tpl和lineitem.ctl文件上传到HANA服务器上(/media/tpc-h/),然后在SAP HANA Studio里面打开一个SQL Editor窗口,输入如下命令:

IMPORT FROM '/media/tpc-h/lineitem.ctl' WITH THREADS 10 BATCH 50000

WITH TABLE LOCK WITHOUT TYPE CHECK;

update VINCENT.LINEITEM MERGE DELTA INDEX;

WITH THREADS 10 BATCH 50000是指以10个线程并行导入,每50000条提交一次。这个是SAP所推荐的基于列式数据库导入的一个组合,我也尝试过其他组合,得到得结果也差不多。需要注意的是HANA最多容许256个并行线程。WITH TABLE LOCK 和WITHOUT TYPE CHECK同样可以起到加快数据加载速度的效果。最后还需要有个MERGE DELTA INDEX的动作,就像C-STORE一样,为了提高更新速度,HANA是先对一个DELTA index进行更新,然后再将之MERGE到主index上。

以同样的方式对其他表进行数据加载操作。

下表是针对lineitem进行加载的时间对比,单位为秒(s)。

HANA

ORACLE

616

680

HANA的时间是import和merge的时间之和。可见在数据加载方面,HANA的性能是不亚于常规ORACLE的。HANA不仅仅是将数据加载到内存中,它还需同时在HDD(硬盘)和SSD(高速闪存)上对数据进行快照存储和日志记录。这方面HANA在保证了数据完整性的同时,也实现了列式数据库更新方面的超越是非常值得肯定的。

在数据加载后设置每个表的主码和创建相关列的索引,用到语句如下:

ALTER TABLE VINCENT.LINEITEM ADD PRIMARY KEY (L_ORDERKEY,L_LINENUMBER);

CREATE INDEX ORDERKEY1 ON VINCENT.LINEITEM (L_ORDERKEY);

CREATE INDEX PARTSUPPKEY1 ON VINCENT.LINEITEM (L_PARTKEY,L_SUPPKEY);

针对表lineitem 59986052条数据集,上述3个语句执行的总时间在300秒左右。

2) 数据压缩

在SAP HANA Studio中选中lineitem表,然后右键->Open Definition->Runtime Information可查看到lineitem的大小。我们将原来CSV格式的外部文件大小除以数据库表的大小的结果作为压缩率,即:压缩率 = CSV文件大小(7.3G)/ 数据表大小。数据表大小又分为不加索引、纯数据的大小以及包含索引的大小。具体结果如下:

项目

HANA

ORACLE

不加索引大小

1.67G

5.14G

不加索引压缩率

4.37

1.42

加索引大小

3.17G

9.84G

加索引后的压缩率

2.3

0.74

由上表可见HANA具有非常出色的数据压缩能力,在不加索引的情况下能将外部的CSV格式的文件压缩4.37倍。可见列式数据库在数据压缩方面的优越性。需要说明的是这次ORACLE的版本是11g R2, 也用到了其最新的行式压缩技术,但跟HANA比起来明显不是一个层次的。

3) 查询性能

用qgen产生22个SQL查询语句并对其做了简单的语法调整,例如调整ADD_MONTHS等时间处理函数,尽量不改变语句原来的结构。将这22个查询复制到SAP HANA Studio的SQL Editor中运行即可获得每个查询语句执行的时间。

测试结果以及和ORACLE对比如下(单位:毫秒ms)

查询

HANA

ORACLE

提高倍数

1

4727

66240

14.01

2

1320

3830

2.9

3

1349

28440

21.08

4

1203

22180

18.44

5

1623

30760

18.95

6

738

16500

22.36

7

1104

25100

22.74

8

1041

20830

20.01

9

12896

60020

4.65

10

2213

26060

11.78

11

805

3700

4.6

12

987

22860

23.16

13

2963

70980

23.96

14

1950

19080

9.78

15

1437

17280

12.03

16

927

6060

6.54

17

860

15400

17.91

18

3177

58000

18.26

19

695

18930

27.24

20

728

20670

28.39

21

16702

47880

2.87

22

1294

6310

4.88

总时间

60739

607110

10

提高倍速 = ORACLE的执行时间 / HANA的执行时间

可以看到HANA每个查询都比传统的行式数据库快很多,22个查询总体时间也正好是ORACLE的十分之一。对于有些查询,速度提升非常明显,例如第19和20个查询。深入调查发现这2个查询都涉及到对最大表lineitem的查询和聚合计算。可见HANA对越大的表查询提升的性能越明显。例外情况是第21个查询,虽然也涉及到了对lineitem的查询,但该语句包含了3次lineitem的自连接(self-join),进一步深入发现凡是对lineitem有join操作的 SQL查询HANA的性能都表现得相对不尽如人意。可见HANA对join处理还需要进一步提高,SYBASE IQ在这方面有许多值得HANA去借鉴的地方。

4) 增量更新

这次增量更新也是更加偏向于性能,而不是我们通常要求的ACID原则。先通过以下语句删除表lineitem中的6000000行记录:

DELETE FROM VINCENT.LINEITEM WHERE L_ORDERKEY BETWEEN 1 AND 6000000;

删除6000000记录耗时29秒。

用dbgen –s 1重新产生第1到6000000行记录的CSV文件,上传到HANA服务器上(/media/tpc-h1/),用以下导入命令完成对数据的加载:

IMPORT FROM '/media/tpc-h1/lineitem.ctl' WITH THREADS 10 BATCH 50000;

update VINCENT.LINEITEM MERGE DELTA INDEX;

跟初始导入所不同的是,这次导入是不会锁表的,并且有主码重复的检查和索引的同步更新消耗。导入时间40秒,融合时间为124秒。可以看出增量更新的速度(36000行每秒)不如初始导入时候的速度(97000行每秒),不过这个速度也是相当不错的。融合(MERGE)过程耗去了大部分的时间。

总结:

这次拿ORACLE和HANA做对比,没有任何贬低ORACLE的意思。ORACLE是传统RDBMS的翘楚,它代表了在这个领域最好的技术;而HANA是主存数据库的代表,是SAP孤注一掷的筹码。这样的对比能让我们更加清楚的看清未来数据库的发展趋势。也许熟悉ORACLE的人会说最新的版本11g支持并行查询,或许能获得和HANA相差不多的查询性能。但我们更应该看到主存数据库强大的潜力。SAP不大可能一蹴而就,但它似乎正在按照自己的步骤一步一步向前。在一次针对销售的培训上,我向一位德国的顾问提问“为什么不把HANA架构在云上?”,他半开玩笑的说:“啊!SAP应该马上把你招进来。实际上我们正在朝这个方向发展,但现在这种情况只是个开始。”

实际上我已经看到了BW on HANA,这也确实向大家证明:至少现在Netweaver平台是可以完全运行在HANA上的。我也知道 HP的硬件目前可支持16个节点8 TB容量的内存。因此我也有理由相信Hasso真能带领着他的200人近卫军改变当前沉闷的氛围和乏味的游戏规则。Business Suite on HANA 将是R4, Business ByDesign on HANA将是R5, HANA on Cloud就是R6, …… 希望SAP的Realtime能一直坚持下去,能给我们足够的惊喜!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

대용량 메모리 최적화, 컴퓨터가 16g/32g 메모리 속도로 업그레이드했는데 변화가 없다면 어떻게 해야 하나요? 대용량 메모리 최적화, 컴퓨터가 16g/32g 메모리 속도로 업그레이드했는데 변화가 없다면 어떻게 해야 하나요? Jun 18, 2024 pm 06:51 PM

기계식 하드 드라이브나 SATA 솔리드 스테이트 드라이브의 경우 소프트웨어 실행 속도의 증가를 느낄 수 있지만 NVME 하드 드라이브라면 느끼지 못할 수도 있습니다. 1. 레지스트리를 데스크탑으로 가져와 새 텍스트 문서를 생성하고, 다음 내용을 복사하여 붙여넣은 후 1.reg로 저장한 후 마우스 오른쪽 버튼을 클릭하여 병합하고 컴퓨터를 다시 시작합니다. WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement]"DisablePagingExecutive"=d

소식통에 따르면 삼성전자와 SK하이닉스는 2026년 이후 적층형 모바일 메모리를 상용화할 것으로 보인다. 소식통에 따르면 삼성전자와 SK하이닉스는 2026년 이후 적층형 모바일 메모리를 상용화할 것으로 보인다. Sep 03, 2024 pm 02:15 PM

3일 홈페이지 보도에 따르면 국내 언론 에트뉴스는 어제(현지시간) 삼성전자와 SK하이닉스의 'HBM형' 적층구조 모바일 메모리 제품이 2026년 이후 상용화될 것이라고 보도했다. 소식통에 따르면 두 한국 메모리 거대 기업은 적층형 모바일 메모리를 미래 수익의 중요한 원천으로 여기고 'HBM형 메모리'를 스마트폰, 태블릿, 노트북으로 확장해 엔드사이드 AI에 전력을 공급할 계획이라고 전했다. 이 사이트의 이전 보도에 따르면 삼성전자 제품은 LPWide I/O 메모리라고 하며 SK하이닉스는 이 기술을 VFO라고 부른다. 두 회사는 팬아웃 패키징과 수직 채널을 결합하는 것과 거의 동일한 기술 경로를 사용했습니다. 삼성전자 LPWide I/O 메모리의 비트폭은 512이다.

Kingbang은 CAMM2, LPCAM2 및 일반 모델 중에서 선택할 수 있는 새로운 DDR5 8600 메모리를 출시했습니다. Kingbang은 CAMM2, LPCAM2 및 일반 모델 중에서 선택할 수 있는 새로운 DDR5 8600 메모리를 출시했습니다. Jun 08, 2024 pm 01:35 PM

6월 7일 이 사이트의 소식에 따르면 GEIL은 2024년 타이페이 국제 컴퓨터 쇼에서 최신 DDR5 솔루션을 출시했으며 선택할 수 있는 SO-DIMM, CUDIMM, CSODIMM, CAMM2 및 LPCAM2 버전을 제공했습니다. ▲사진출처: Wccftech 사진에서 볼 수 있듯이 진방이 전시한 CAMM2/LPCAMM2 메모리는 매우 컴팩트한 디자인을 채택해 최대 128GB의 용량과 최대 8533MT/s의 속도를 제공할 수 있다. 보조 냉각 없이 9000MT/s까지 오버클럭된 AMDAM5 플랫폼에서 안정적입니다. 보고서에 따르면 Jinbang의 2024 Polaris RGBDDR5 시리즈 메모리는 최대 8400을 제공할 수 있습니다.

DDR5 MRDIMM 및 LPDDR6 CAMM 메모리 사양 출시 준비 완료, JEDEC에서 주요 기술 세부 정보 공개 DDR5 MRDIMM 및 LPDDR6 CAMM 메모리 사양 출시 준비 완료, JEDEC에서 주요 기술 세부 정보 공개 Jul 23, 2024 pm 02:25 PM

7월 23일 이 홈페이지의 소식에 따르면, 마이크로 전자공학 표준 제정 기관인 JEDEC 솔리드 스테이트 기술 협회(JEDEC Solid State Technology Association)는 현지 시간으로 22일 DDR5MRDIMM 및 LPDDR6CAMM 메모리 기술 사양이 곧 공식 출시될 것이라고 발표하고 이 두 가지의 주요 세부 사항을 소개했습니다. 추억. DDR5MRDIMM의 "MR"은 MultiplexedRank를 의미하며, 이는 메모리가 두 개 이상의 랭크를 지원하고 추가적인 물리적 연결 없이 단일 채널에서 여러 데이터 신호를 결합 및 전송할 수 있음을 의미합니다. 연결을 통해 대역폭을 효과적으로 늘릴 수 있습니다. JEDEC는 DDR5RDIMM 메모리의 현재 6.4Gbps와 비교하여 궁극적으로 대역폭을 12.8Gbps로 늘리는 것을 목표로 여러 세대의 DDR5MRDIMM 메모리를 계획했습니다.

iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. Jul 18, 2024 am 05:48 AM

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

Lexar God of War Wings ARES RGB DDR5 8000 메모리 사진 갤러리: 다채로운 흰색 날개가 RGB를 지원합니다. Lexar God of War Wings ARES RGB DDR5 8000 메모리 사진 갤러리: 다채로운 흰색 날개가 RGB를 지원합니다. Jun 25, 2024 pm 01:51 PM

7600MT/s 및 8000MT/s와 같은 UHF 주력 메모리의 가격이 일반적으로 높을 때 Lexar는 Ares Wings ARES RGB DDR5라는 새로운 메모리 시리즈를 출시했으며 7600 C36 및 8000 C38은 두 가지 사양으로 제공됩니다. 16GB*2 세트의 가격은 각각 1,299위안과 1,499위안으로 매우 비용 효율적입니다. 이 웹사이트는 Wings of War의 8000 C38 버전을 획득했으며, 언박싱 사진을 제공합니다. Lexar Wings ARES RGB DDR5 메모리의 포장은 화려한 인쇄와 눈길을 끄는 검정색 및 빨간색 색상 구성을 사용하여 잘 디자인되었습니다. 포장 좌측상단에 전용 &quo 문구가 있습니다.

Longsys 디스플레이 FORESEE LPCAM2 노트북 메모리: 최대 64GB, 7500MT/s Longsys 디스플레이 FORESEE LPCAM2 노트북 메모리: 최대 64GB, 7500MT/s Jun 05, 2024 pm 02:22 PM

16일 본 홈페이지 소식에 따르면, 렉사(Lexar) 브랜드의 모회사인 롱시스(Longsys)는 CFMS2024에서 새로운 형태의 메모리인 FORESEELPCAMM2를 시연할 예정이라고 밝혔다. FORESEELPCAMM2는 LPDDR5/5x 입자를 탑재하고 315볼 및 496볼 디자인과 호환되며 7500MT/s 이상의 주파수를 지원하고 16GB, 32GB 및 64GB의 제품 용량 옵션을 제공합니다. 제품 기술 측면에서 FORESEELPCAMM2는 압축 커넥터에 4개의 x32LPDDR5/5x 메모리 입자를 직접 패키징하는 새로운 설계 아키텍처를 채택하여 단일 메모리 모듈에서 128비트 메모리 버스를 실현하고 표준 메모리 모듈보다 더 효율적인 패키징을 제공합니다.

PHP에서 데이터베이스 연결 오류를 처리하는 방법 PHP에서 데이터베이스 연결 오류를 처리하는 방법 Jun 05, 2024 pm 02:16 PM

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

See all articles