kudu

kudu记录-kudu原理

北慕城南 提交于 2021-02-20 04:47:35
1.kudu是什么? 2.kudu基本概念 特点:   High availability(高可用性)。Tablet server 和 Master 使用 Raft Consensus Algorithm 来保证节点的高可用,确保只要有一半以上的副本可用,该 tablet 便可用于读写。例如,如果3个副本中有2个或5个副本中的3个可用,则该tablet可用。即使在 leader tablet 出现故障的情况下,读取功能也可以通过 read-only(只读的)follower tablets 来进行服务,或者是leader宕掉的情况下,会根据raft机制重新选举leader。 基础概念: 开发语言:C++ Columnar Data Store(列式数据存储) Read Efficiency(高效读取)   对于分析查询,允许读取单个列或该列的一部分同时忽略其他列 Data Compression(数据压缩)   由于给定的列只包含一种类型的数据,基于模式的压缩比压缩混合数据类型(在基于行的解决案中使用)时更有效几个数量级。结合从列读取数据的效率,压缩允许您在从磁盘读取更少的块时完成查询 Table(表)   一张table是数据存储在 Kudu 的位置。表具有schema和全局有序的primary key(主键)。table被分成很多段,也就是称为tablets。 Tablet(段

Kudu系列: Kudu主键选择策略

回眸只為那壹抹淺笑 提交于 2021-02-17 00:06:06
每个Kudu 表必须设置Pimary Key(unique), 另外Kudu表不能设置secondary index, 经过实际性能测试, 本文给出了选择Kudu主键的几个策略, 测试结果纠正了我之前的习惯认知. 简单介绍测试场景: 表中有一个unqiue字段Id, 另外还有一个日期维度字段histdate, 有三种设置kudu PK的方法, 分别是: 表设计方案1 (histdate, id)作为联合主键, 日期字段放在前. 表设计方案2 (id,histdate)作为联合主键, 日期字段放在后. 表设计方案3 (id)作为单字段主键. 先给出测试数据: 结论: 1. 选择性强的字段(比如 id 字段) 应该放在PK清单最前面, 这个规则对查询性能影响最大. 2. PK清单中只加必要的字段, 越少越好. 3. 如果查询针对PK中所有字段都加了条件, 其性能是最优的. 但只要有一个PK字段未加上条件, 就完全用不上PK索引,性能就很差. 4. where条件中各个字段条件的先后顺序并不关键. 5. Kudu表使用Java API Insert的速度还是很好的, 单线程达到了1万笔/秒多. Kudu Update 效率也很高, 实测对一个窄表做全字段update, 其速度达到了Insert速度的88%, 而vertica的update效率比insert差很多. 在测试之前的误区:

Azure Function: Old code still running after a deployment

為{幸葍}努か 提交于 2021-01-28 03:09:14
问题 Right now I again faced the issue that old code is used on an Azure Function App even after the zip deployment through KUDU returns success. Of course, that is after some 30 mins that I expect the new code to get loaded, not immediately. The issue is marked as closed. What is considered to be the best practice in this case: Programmatically force the Function App to restart, say, through Azure CLI or Powershell Az modules? Or there is another way to mitigate the issue? 回答1: While restarting

每个大数据工程师都应该知道的OLAP 核心知识点

陌路散爱 提交于 2021-01-05 12:00:36
OLAP 系统广泛应用于 BI, Reporting, Ad-hoc, ETL 数仓分析等场景,本文主要从体系化的角度来分析 OLAP 系统的核心技术点,从业界已有的 OLAP 中萃取其共性,分为谈存储,谈计算,谈优化器,谈趋势 4 个章节。 01 谈储存 列存的数据组织形式 行存,可以看做 NSM (N-ary Storage Model) 组织形式,一直伴随着关系型数据库,对于 OLTP 场景友好,例如 innodb[1] 的 B+ 树聚簇索引,每个 Page 中包含若干排序好的行,可以很好的支持 tuple-at-a-time 式的点查以及更新等;而列存 (Column-oriented Storage),经历了早期的 DSM (Decomposition Storage Model) [2],以及后来提出的 PAX (Partition Attributes Cross) 尝试混合 NSM 和 DSM,在 C-Store 论文 [3] 后逐渐被人熟知,用于 OLAP,分析型不同于交易场景,存储 IO 往往是瓶颈,而列存可以只读取需要的列,跳过无用数据,避免 IO 放大,同质数据存储更紧凑,编码压缩友好,这些优势可以减少 IO,进而提高性能。 列存的数据组织形式 对于基本类型,例如数值、string 等,列存可以使用合适的编码,减少数据体积,在 C-Store

Unable to deploy .zip file using Kudu api to the Azure App Service

此生再无相见时 提交于 2020-12-15 06:17:07
问题 I'm using PowerShell inline task in the release pipeline to deploy the respective zip file to the Azure App Service, but im unable to achieve it due to the below error. Can you please let me know if there is any thing that im missing here. I'm getting below error Invoke-RestMethod : Path 'D:\a\r1\a_CI-VI-Maven/DeployPackages/marnet.zip' resolves to a directory. Specify a path including a file name, and then retry the command. Below is the script that im using: $username = "username" $password

什么是spark(一) 分区以及和MR的区别

久未见 提交于 2020-12-12 15:29:04
  什么是spark,是一个 分布式计算平台,或者说是分布式计算引擎 ,他的职责就是将指定的数据读入到各个node的内存中,然后计算。所以spark是具有泛化性质的, 只要数据源是可读入的,读到内存里面之后,处理就和数据源没有关系了 ,你是HBASE,kudu,还是parquet都无所谓了。   什么是RDD,弹性分布式数据集,其实RDD是一个抽象概念,因为RDD本身不包含数据, 它只包含数据描述以及对于数据的算法 ,比如一个sparkSQL返回的RDD其实就是一个对数据的描述,告诉各个节点的executor要处理那些数据,那么map就是算法,map里面的函数体就是算法,所以map又叫做算子。   什么是spark分区,“ 需要把相同 key 的元素聚集到同一个 partition 下,所以造成了数据在内存中的重新分布,即 shuffle 操作 ”,简单讲就是设置数据分布, 将相同key的数据分布到同一台机器 ;为什么要分区?首先明白分区的目的好处就是:   1)减少了网络开销;   2)提高并行计算度;   前者的实现是通过将join算子和hive参数放置到同一台机器,然后让发起join的表数据推送到spark的分区节点进行运算;至于后者,每个分区都有独立的线程(每个线程执行的逻辑称之为Task);可以保持彼此独立,并行进行计算,这个也是spark的机制所在。  

How to make a continuous delivery of a python function app deployed in Azure?

不打扰是莪最后的温柔 提交于 2020-12-03 13:57:52
问题 For the first time I deployed a Python function app to Azure using a deployment pipeline: https://docs.microsoft.com/bs-latn-ba/azure/azure-functions/functions-how-to-azure-devops The package is deployed to Azure using Kudu Zip deploy. My http triggered function runs wonderfully locally (on Windows), but I have a 500 internal errors on Azure because it does not find the module requests . Exception: ModuleNotFoundError: No module named 'requests' imports of __init__.py: import logging,

How to make a continuous delivery of a python function app deployed in Azure?

Deadly 提交于 2020-12-03 13:55:20
问题 For the first time I deployed a Python function app to Azure using a deployment pipeline: https://docs.microsoft.com/bs-latn-ba/azure/azure-functions/functions-how-to-azure-devops The package is deployed to Azure using Kudu Zip deploy. My http triggered function runs wonderfully locally (on Windows), but I have a 500 internal errors on Azure because it does not find the module requests . Exception: ModuleNotFoundError: No module named 'requests' imports of __init__.py: import logging,

How to make a continuous delivery of a python function app deployed in Azure?

佐手、 提交于 2020-12-03 13:53:00
问题 For the first time I deployed a Python function app to Azure using a deployment pipeline: https://docs.microsoft.com/bs-latn-ba/azure/azure-functions/functions-how-to-azure-devops The package is deployed to Azure using Kudu Zip deploy. My http triggered function runs wonderfully locally (on Windows), but I have a 500 internal errors on Azure because it does not find the module requests . Exception: ModuleNotFoundError: No module named 'requests' imports of __init__.py: import logging,

How to make a continuous delivery of a python function app deployed in Azure?

心已入冬 提交于 2020-12-03 13:50:58
问题 For the first time I deployed a Python function app to Azure using a deployment pipeline: https://docs.microsoft.com/bs-latn-ba/azure/azure-functions/functions-how-to-azure-devops The package is deployed to Azure using Kudu Zip deploy. My http triggered function runs wonderfully locally (on Windows), but I have a 500 internal errors on Azure because it does not find the module requests . Exception: ModuleNotFoundError: No module named 'requests' imports of __init__.py: import logging,