当前位置: 首页 > news >正文

网站建设设计报告青岛微网站制作

网站建设设计报告,青岛微网站制作,wordpress插件 商品,照片展示网站模板目录ClickHouse 简介ClickHouse 与对象存储ClickHouse 与 S3 结合的三种方法示例参考架构小结参考资料ClickHouse 简介ClickHouse 是一种快速的、开源的、用于联机分析#xff08;OLAP#xff09;的列式数据库管理系统#xff08;DBMS#xff09;#xff0c;由俄罗斯的Yan…目录ClickHouse 简介ClickHouse 与对象存储ClickHouse 与 S3 结合的三种方法示例参考架构小结参考资料ClickHouse 简介ClickHouse 是一种快速的、开源的、用于联机分析OLAP的列式数据库管理系统DBMS由俄罗斯的Yandex公司开发于2016年开源。ClickHouse 作为交互式分析领域的后起之秀发展速度非常快目前在 GitHub 上已收获 14K Star。亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术观点和项目并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏看到这里请一定不要匆匆划过点这里让它成为你的技术宝库ClickHouse 主打顶尖的极致性能每台服务器每秒钟可以处理数亿至数十亿多行或者是数十GB的数据。ClickHouse 基于列式存储通过 SQL 查询海量数据并实时生成分析报告。ClickHouse 充分利用了所有可用的硬件优化技术以尽可能快地处理每个查询。向量化的查询执行引入了 SIMD 处理器指令和运行时代码生成技术。列式存储的数据会提高CPU缓存的命中率。ClickHouse 概览文档中的图片清晰地展示了行式存储与列式存储在 OLAP 领域中的速度差距。行式存储在分布式集群中副本之间的数据读取会自动保持平衡以避免增加延迟。同时ClickHouse 支持多主异步复制模式这种情况下所有节点角色都是相等的可以避免出现单点故障单个节点或整个可用区的停机时间并不会影响系统的读写可用性。在网络和应用分析广告网络和实时出价电信电子商务和金融以及商业智能等领域ClickHouse 都有很好的支持与应用更多信息请参考 ClickHouse 官网。01 ClickHouse与对象存储ClickHouse 针对数据量和查询场景提供了不同的数据库和数据表引擎此外它也可以使用多种多样的专用引擎或表函数例如 HDFSKafkaS3 等与许多外部系统进行通讯。在现代化的云架构中对象存储是最重要的存储组成部分。2006年亚马逊云科技正式推出的第一个云服务也是 Amazon S3Simple Storage Service目前 Amazon S3 已经成为事实上的云对象存储标准。使用对象存储可以给数据分析系统带来诸多优势。首先它可以使用数据湖架构中的原始数据。其次对象存储可以为数据表数据提供高性价比且高可靠性的存储。针对 S3 目前 ClickHouse 已经上述对象存储的这两种用途。02 ClickHouse 与 S3 结合的三种方法1通过 MergeTree 表引擎集成 S3前面提到 ClickHouse 提供了众多数据库和数据表引擎这其中最强大的表引擎当属 MergeTree 合并树引擎及合并树系列*MergeTree中的其他引擎。MergeTree 系列的引擎被设计用于插入海量的数据到一张表当中。数据可以以数据片段的形式一个接着一个的快速写入数据片段在后台按照一定的规则进行合并。相比在插入时不断修改重写已存储的数据这种策略会高效很多。MergeTree 系列表引擎可以将数据存储在多块设备上。这对某些可以潜在被划分为“冷”“热”的表来说是很有用的。近期数据被定期的查询但只需要比较小的磁盘存储空间。相反大量的、详尽的历史数据被用到的频率相对较少。ClickHouse 可以将 S3 对象存储用于 MergeTree 表数据这样针对“热”的数据可以放置在快速的磁盘上比如 NVMe 固态硬盘或内存中“冷”的数据可以存放在S3对象存储中。在MergeTree 系列表引擎中使用S3的参考架构如下图所示2通过 S3 表引擎集成除了 MergeTree 表引擎ClickHouse 还直接提供了专用的 S3 表引擎进一步加强了 Amazon S3 生态系统的集成可以充分利用数据湖中已有的各种开放数据格式例如Parquet。通过以下语句就可以进行 S3 表引擎的创建ENGINE S3(path, [aws_access_key_id, aws_secret_access_key,] format, structure, [compression])3通过 S3 表函数集成ClickHouse 提供表接口的方式对 S3 中的文件进行 SELECT/INSERT 操作这种方式使用起来更加方便可以快速与 ClickHouse 中已有的数据进行连接等操作。通过以下语句就可以使用S3表函数3通过 S3 表函数集成ClickHouse 提供表接口的方式对 S3 中的文件进行 SELECT/INSERT 操作这种方式使用起来更加方便可以快速与 ClickHouse 中已有的数据进行连接等操作。通过以下语句就可以使用S3表函数s3(path, [aws_access_key_id, aws_secret_access_key,] format, structure, [compression])上述方式分别适用于不同的应用场景可以根据具体情况进行单独或者结合使用。此外可以看到这里面还涉及到 S3 访问权限的安全问题。在 ClickHouse 20.13之前的版本中必须要在 SQL 或 ClickHouse 存储配置中提供 Amazon Web Services 的访问密钥Access Key 和 Secret Access Key才能访问这是既不安全也不方便的模式。但是在20.13版本中ClickHouse 提供了实用 IAM Role 访问方式解决了访问 S3 的安全性问题。03 示例参考架构接下来我们将演示如何实现上述介绍的 ClickHouse 与 S3 结合的三种方法。演示的参考架构如下图所示我们将 ClickHouse 环境部署在一个 VPC 私有子网中然后通过 VPC Enpoints 内网的方式来访问 S3 中的数据。在示例中我们将使用纽约出租车数据该数据分析是 Kaggle 竞赛的著名赛题之一也是学习数据分析的经典练习案例项目数据可以从 NYC 网站上进行下载这里选取了2020年6月的 Yellow Taxi Trip Records 数据。以下示例的操作环境为亚马逊云科技中国北京区域。1创建 S3 存储桶首先在亚马逊云科技中国北京区域创建存储数据的S3存储桶例如 clickhouse-shtian。2下载数据并上传到 S3 存储桶中首先在 NYC 网站上将2020年6月 Yellow Taxi Trip Records 数据下载下来然后上传到刚刚创建的 S3 桶中。3创建并配置 S3 的 VPC EnpointVPC Enpoint 的创建和配置请参考 VPC 文档确保子网路由表中包含下图中第二条路有条目。4部署 ClickHouse示例操作系统为 Amazon Linux 2ClickHouse 版本为20.13.1.5591演示使用单点部署模式实际使用环境建议部署集群模式提升高可用的同时也增加性能。需要注意的是在创建 EC2 实例过程中需要配置 IAM 角色可以参考文档适用于 Amazon EC2 的 IAM 角色进行设置并确保这个角色具有 S3 桶的读写权限。SSH 登录到 EC2 实例上然后下载对应版本的安装包然后解压并安装。wget https://github.com/ClickHouse/ClickHouse/releases/download/v20.13.1.5591-testing/clickhouse-client-20.13.1.5591.tgzwget https://github.com/ClickHouse/ClickHouse/releases/download/v20.13.1.5591-testing/clickhouse-common-static-20.13.1.5591.tgzwget https://github.com/ClickHouse/ClickHouse/releases/download/v20.13.1.5591-testing/clickhouse-common-static-dbg-20.13.1.5591.tgzwget https://github.com/ClickHouse/ClickHouse/releases/download/v20.13.1.5591-testing/clickhouse-server-20.13.1.5591.tgztar -xzvf clickhouse-common-static-20.13.1.5591.tgz sudo clickhouse-common-static-20.13.1.5591/install/doinst.shtar -xzvf clickhouse-common-static-dbg-20.13.1.5591.tgz sudo clickhouse-common-static-dbg-20.13.1.5591/install/doinst.shtar -xzvf clickhouse-client-20.13.1.5591.tgz sudo clickhouse-client-20.13.1.5591/install/doinst.shtar -xzvf clickhouse-server-20.13.1.5591.tgz sudo clickhouse-server-20.13.1.5591/install/doinst.sh安装成功后后看到如下提示…ClickHouse has been successfully installed.Start clickhouse-server with:sudo clickhouse startStart clickhouse-client with:clickhouse-client根据提示使用以下命令启动 clickhouse-server 服务sudo clickhouse start执行命令 clickhouse-client 启动客户端可以看到连接到服务器并$ clickhouse-client ClickHouse client version 20.13.1.5591 (official build). Connecting to localhost:9000 as user default. Connected to ClickHouse server version 20.13.1 revision 54443.5配置 ClickHouse 实现通过 MergeTree 表引擎集成 S3创建并编辑 ClickHouse 配置文件ClickHouse 的主配置文件通常在/etc/clickhouse-server/config.xml其他附加配置我们可以通过在/etc/clickhouse-server/config.d/添加 xml 文件来设置也方便配置的扩展。sudo vim /etc/clickhouse-server/config.d/merge-s3.xml复制一下内容到文件中其中 use_environment_credentials 表示通过 IAM 的角色、环境变量或者.Amazon Web Services 中的安全配置来访问 S3。注意替换 endpoint 部分对应的 S3 存储桶和路径yandexstorage_configurationdiskss3types3/typeendpointhttps://s3.cn-north-1.amazonaws.com.cn/clickhouse-shtian/mergetree//endpointuse_environment_credentialstrue/use_environment_credentials/s3/diskspoliciess3volumesmaindisks3/disk/main/volumes/s3/policies/storage_configuration /yandex编辑 /etc/clickhouse-server/config.xml.修改 openSSL 中的client配置添加一行/etc/pki/tls/certs/ca-bundle.crt设定SSL/TLS访问的CA证书。如果想使用S3的http端点则无需配置此选项但是会存在数据传输安全风险因此建议使用上面的https的端点并进行如下配置。client !-- Used for connecting to https dictionary source and secured Zookeeper communication --loadDefaultCAFiletrue/loadDefaultCAFilecaConfig/etc/pki/tls/certs/ca-bundle.crt/caConfigcacheSessionstrue/cacheSessionsdisableProtocolssslv2,sslv3/disableProtocolspreferServerCipherstrue/preferServerCiphers!-- Use for self-signed: verificationModenone/verificationMode --invalidCertificateHandler!-- Use for self-signed: nameAcceptCertificateHandler/name --nameRejectCertificateHandler/name/invalidCertificateHandler/client/openSSL此外根据操作系统不同caConfig 选项可能不需要单独添加。实际测试在使用 Ubuntu 18.04 的时候ClickHouse 会自动找到 CA 证书的位置无需额外配置。但是在使用 Amazon Linux 2 操作系统时需要配置上述选项否则 ClickHouse 找不到 CA 证书的位置并且会报如下证书错误Error message: Poco::Exception. Code: 1000, e.code() 0, e.displayText() SSL Exception: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED (version 20.13.1.5591 (official build))重启 clickhouse-server 使配置文件生效sudo clickhouse restart启动客户端 clickhouse-client创建 MergeTree 引擎的数据表并选择定义好的 S3 存储策略CREATE TABLE default.s3mergetree (VendorID UInt8,VendorName String ) ENGINE MergeTree PARTITION BY VendorName ORDER BY VendorID SETTINGS storage_policy s3插入2行测试数据INSERT INTO default.s3mergetree VALUES (1, Vendor1) (2, Vendor2)然后查询这个数据表SELECT * FROM default.s3mergetree返回结果如下查询成功但是实际上数据文件中并没有保存真实的数据而是存储了 S3 数据的链接。查看 S3 中的数据信息数据文件是长这个样子的尽管原来在块存储中需要硬链接的合并、变异和重命名操作现在是在引用上操作的S3 数据完全没有被触及但是通过查看上述文件结构发现这会导致另一个问题就是针对这些数据并没有办法通过其他数据分析工具进行处理因为 ClickHouse 本身也是采用的专有数据存储格式这也是该方案的一个弊端借助了 MergeTree 的好处但仅仅是使用 S3 做为存储。6配置 ClickHouse 实现通过专用表引擎集成 S3创建并编辑 ClickHouse 配置文件sudo vim /etc/clickhouse-server/config.d/table-s3.xml复制一下内容到文件中yandexs3endpointendpointhttps://s3.cn-north-1.amazonaws.com.cn/endpointuse_environment_credentialstrue/use_environment_credentials/endpoint/s3 /yandex重启 clickhouse-server 使配置文件生效sudo clickhouse restart启动客户端 clickhouse-client创建 S3 引擎的数据表CREATE TABLE default.s3table (VendorID UInt8,tpep_pickup_datetime DateTime,tpep_dropoff_datetime DateTime,passenger_count UInt8,trip_distance Float32,RatecodeID UInt8,store_and_fwd_flag String,PULocationID UInt8,DOLocationID UInt8,payment_type UInt8,fare_amount Float32,extra Float32,mta_tax Float32,tip_amount Float32,tolls_amount Float32,improvement_surcharge Float32,total_amount Float32,congestion_surcharge Float32 ) ENGINE S3(https://s3.cn-north-1.amazonaws.com.cn/clickhouse-shtian/yellow_tripdata_2020-06.csv, CSVWithNames)然后进行基本的查询SELECTVendorID,tpep_pickup_datetime,tpep_pickup_datetime,passenger_count,tolls_amount,total_amount,congestion_surcharge FROM default.s3table LIMIT 10返回结果如下查询成功需要注意的是插入数据在这种情况下也是支持的但是如果表是使用单文件定义的如本示例那么插入会覆盖当前文件的内容。如果是使用通配符的方式进行定义如*.CSV在插入数据的时候会写到*.CSV目前已经将问题反馈提交到 ClickHouse 开源社区。因此建议目前使用这种方法时只去查询 S3 中的数据。该方案的优势在于对于已有的数据湖中的数据比如各种开放数据格式 CSV、Parquet 等都可以通过 ClickHouse 进行查询无需作出额外的改动趋于 LakeHouse 这样的新架构。7配置 ClickHouse 实现通过专用表函数集成 S3在步骤6中的配置 etc/clickhouse-server/config.d/table-s3.xml对 S3 专用表函数也是生效的所以直接在客户端 clickhouse-client 继续进行查询即可SELECTVendorID,tpep_pickup_datetime,tpep_pickup_datetime,passenger_count,tolls_amount,total_amount,congestion_surcharge FROM s3(https://s3.cn-north-1.amazonaws.com.cn/clickhouse-shtian/yellow_tripdata_2020-06.csv, CSVWithNames, VendorID UInt8,tpep_pickup_datetime DateTime,tpep_dropoff_datetime DateTime,passenger_count UInt8,trip_distance Float32,RatecodeID UInt8,store_and_fwd_flag String,PULocationID UInt8,DOLocationID UInt8,payment_type UInt8,fare_amount Float32,extra Float32,mta_tax Float32,tip_amount Float32,tolls_amount Float32,improvement_surcharge Float32,total_amount Float32,congestion_surcharge Float32) LIMIT 10 复制代码返回结果如下数据查询成功除了单独使用 S3 表函数还可以和其他 MergeTree 表进行连接例如我们可以使用以下 SQL 将 S3 表函数和步骤5中创建的表进行 JOIN 查询。SELECTVendorName,VendorID,tpep_pickup_datetime,tpep_pickup_datetime,passenger_count,tolls_amount,total_amount,congestion_surcharge FROM s3(https://s3.cn-north-1.amazonaws.com.cn/clickhouse-shtian/yellow_tripdata_2020-06.csv, CSVWithNames, VendorID UInt8,tpep_pickup_datetime DateTime,tpep_dropoff_datetime DateTime,passenger_count UInt8,trip_distance Float32,RatecodeID UInt8,store_and_fwd_flag String,PULocationID UInt8,DOLocationID UInt8,payment_type UInt8,fare_amount Float32,extra Float32,mta_tax Float32,tip_amount Float32,tolls_amount Float32,improvement_surcharge Float32,total_amount Float32,congestion_surcharge Float32) AS s3 INNER JOIN default.s3mergetree ON s3.VendorID s3mergetree.VendorID WHERE s3mergetree.VendorID 1 LIMIT 10复制代码返回结果如下数据查询成功该方案同样发挥了数据湖的价值可以和已有的各种开放数据格式 CSV、Parquet 等数据进行连接扩展了数据仓库的使用范围。通过上述演示可以基本实现不同应用场景下的 ClickHouse 和 S3 结合。由于 ClickHouse 是开源项目所以和 S3 的集成和更丰富的特性还在逐步完善中。04 小结本文首先简单介绍了 ClickHouse 及其特性和使用场景然后介绍了通过与 Amazon S3 存储的结合可以为数据分析系统带来的优势成本优化以及数据湖的应用。接下来我们又介绍了 ClickHouse 和 S3 集成的三种方案并通过具体示例来展示了各方案的具体实现方法和优劣势。参考资料:https://altinity.com/blog/clickhouse-and-s3-compatible-object-storage?trkcndc-detailhttps://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/#table_engine-mergetree-multiple-volumes?trkcndc-detailhttps://clickhouse.tech/docs/en/engines/table-engines/integrations/s3/?trkcndc-detailhttps://clickhouse.tech/docs/en/sql-reference/table-functions/s3/?trkcndc-detail本篇作者史天 亚马逊云科技解决方案架构师拥有丰富的云计算、大数据和机器学习经验目前致力于数据科学、机器学习、无服务器等领域的研究和实践。译有《机器学习即服务》《基于 Kubernetes 的 DevOps 实践》《Prometheus 监控实战》等。文章来源https://dev.amazoncloud.cn/column/article/62b52536c79fe7390efff055?sc_channelCSDN
http://www.hkea.cn/news/14539337/

相关文章:

  • wordpress主题详情更改版权如何做360网站优化
  • 网站建设法规网站备案信息查询系统
  • 学校网站建设制作方案互联网保险发展现状分析
  • 做分色找工作网站网站建设出错1004
  • 网站空间权限十堰网站建设是什么
  • 加强学校网站建设的要求有什么平台可以推广
  • 网站正在建设中的网页怎么做网页制作怎么建站点
  • 怎么查询网站是否收录开发app软件需要多少钱
  • 电子商务网站的功能上海市区网站设计制作公司
  • html网站模板源码谷歌网站的主要内容
  • 凡科网免费做网站免费舆情网站下载大全最新版
  • 成品网站建设最专业的网站设计平台
  • 东莞企业建设网站官网有限公司h5素材做多的网站
  • 做网站每年需要购买域名吗上海公司注销流程及费用
  • 东莞企业网站制作推广运营西安微信网站
  • wordpress查看网站内容网站建设公司推荐北京华网
  • 网站设计模板百度云品牌建设的最高境界
  • 东莞网页建设网站wordpress淘客优惠券
  • 手机怎么做淘客网站网站建设常见故障
  • 免费网站模板网站注册号域名后如何建设公司网站
  • 胶州网站建设效果厦门网站制作建设
  • 重庆金山建设监理有限公司网站网站建设售后服务合同
  • 音乐网站建设教程视频a5源码网站
  • 个人做网站公司WordPress注册邮件美化
  • 涪陵网站制作wordpress健身模版
  • 网站建设优化服务新闻长春网站建设电话咨询
  • 怎么制作小网站 不用域名的永兴县网站建设公司哪家好
  • 广告网站建设流程广告网站建设与制作
  • 网站接口设置电子商务主要是干嘛的
  • 购物网站哪个质量好济宁建设局网站招聘会