s3

cronicle minio s3 存储配置集成

匿名 (未验证) 提交于 2019-12-03 00:08:02
cronicle 后端存储是可配置的 ,通过使用不同的存储配置,我们可以解决多实例部署以及数据共享的问题 cronicle 的后端存储模型,设计的特别方便,包含了基于文件的,基于s3 的,同时我们也可以开发自己的 存储引擎 以下是一个集成minio s3 部署单master,多slave 实际上我们可以扩展为多master docker-compose 文件 version : "3" services : s3 : image : minio / minio command : server / data ports : - "9000:9000" environment : - "MINIO_ACCESS_KEY=dalongapp" - "MINIO_SECRET_KEY=dalongapp" volumes : - "./data:/data" cronicle : build : ./ hostname : master image : dalongrong / cronicle volumes : - "./config.json:/opt/cronicle/conf/config.json" ports : - "3012:3012" cronicle2 : build : ./ hostname : cronicle2 image : dalongrong /

Athena 分区

匿名 (未验证) 提交于 2019-12-02 23:51:01
Amazon Athena 是一种交互式查询服务,让您能够使用标准 SQL 直接在 Amazon Simple Storage Service (Amazon S3) 中轻松分析数据。只需在 AWS 管理控制台中执行几项操作,即可将 Athena 指向 Amazon S3 中存储的数据,并开始使用标准 SQL 运行临时查询,然后在几秒钟内获得结果。 Athena 是 无服务器 通过 分区 您的数据,您可以限制每个查询扫描的数据量,从而 提高性能并降低成本 。Athena 利用 Hive 来对数据进行 分区 。您可按任何键对数据进行分区。一种常见的做法是 根据时间 对数据进行分区,通常会导致多级别分区方案。例如,每个小时都有数据传入的客户可能决定按年、月、日期和小时进行分区。另一位客户的数据来自许多不同的来源,但每天加载一次,则可以按数据源标识符和日期进行分区。 如果您针对包含大量对象且数据未分区的 Amazon S3 存储桶发出查询,则此类查询可能影响 Amazon S3 中的 Get 请求速率限制并导致 Amazon S3 异常。为防止错误发生,请将数据分区。另外,考虑调整 Amazon S3 的请求速率。 数据已分区,并以 hive 格式存储在 S3 上 存储分区数据 分区存储在 Amazon S3 中的独立文件夹内。例如,下面是示例广告展示的部分列表: aws s3 ls

大数据未来的路该怎么走?

匿名 (未验证) 提交于 2019-12-02 23:42:01
大数据可以抽象的分为大数据存储和大数据分析,这两者的关系是:大数据存储的目的是支撑大数据分析。到目前为止,还是两种截然不同的计算机技术领域:大数据存储致力于研发可以扩展至PB甚至EB级别的数据存储平台;大数据分析关注在最短时间内处理大量不同类型的数据集。 提到存储,有一个着名的摩尔定律相信大家都听过:18个月集成电路的复杂性就增加一倍。所以,存储器的成本大约每18-24个月就下降一半。成本的不断下降也造就了大数据的可存储性。 比如,Google大约管理着超过50万台服务器和100万块硬盘,而且Google还在不断的扩大计算能力和存储能力,其中很多的扩展都是基于在廉价服务器和普通存储硬盘的基础上进行的,这大大降低了其服务成本,因此可以将更多的资金投入到技术的研发当中。 以Amazon举例,Amazon S3是一种面向 Internet 的存储服务。该服务旨在让开发人员能更轻松的进行网络规模计算。Amazon S3提供一个简明的Web 服务界面,用户可通过它随时在 Web 上的任何位置存储和检索的任意大小的数据。此服务让所有开发人员都能访问同一个具备高扩展性、可靠性、安全性和快速价廉的基础设施,Amazon 用它来运行其全球的网站网络。再看看S3的设计指标:在特定年度内为数据元提供 99.999999999% 的耐久性和 99.99% 的可用性,并能够承受两个设施中的数据同时丢失。

Python String函数

匿名 (未验证) 提交于 2019-12-02 22:51:30
s = "abcaDa a" s2 = "123a abc ABCSAa s " s3 = "\tas \t\tb123" s4 = ' &abc123 c ## ' 1.str.capitalize() print("s.capitalize() = {function}".format(function = s.capitalize())) Output: s.capitalize() = Abcada a 2.str.upper() print("s.upper() = {function}".format(function = s.upper())) Output: s.upper() = ABCADA A 3.str.lower() print("s.lower() = {function}".format(function = s.lower())) Output: s.lower() = abcada a 4.str.swapcase() print("s.swapcase() = {function}".format(function = s.swapcase())) Output: s.swapcase() = ABCAdA A 5.str.title() print("s2.title() = {function}".format(function = s2

RGW S3 Multipart解析

偶尔善良 提交于 2019-12-02 18:48:52
S3分段上传技术主要应用在大文件的数据上传上,通常在S3客户端会对上传的大文件做一次分片操作。在RGW内部还会对S3客户端发送过来的数据再进行一次分片处理,RGW默认分片大小是4MB。下面就Multipart不同部分进行详细解析。 1、初始化Multipart。 初始化Multipart使用的是HTTP POST操作,在RGW中使用RGWInitMultipart_ObjStore_S3类处理。由于RGWInitMultipart_ObjStore_S3类继承自RGWInitMultipart_ObjStore,而RGWInitMultipart_ObjStore类继承自RGWInitMultipart,而RGWInitMultipart类继承自RGWOp类。因此处理Mulipart初始化的操作主要集中在RGWInitMultipart::execute()函数中。下面对该函数的处理流程进行详细解析。 RGWInitMultipart::execute() |__RGWInitMultipart_ObjStore_S3::get_params() 从HTTP请求中得到RGWAccessControlPolicy_S3类实例 |__将RGWAccessControlPolicy_S3放入到属性列表中且属性key=RGW_ATTR_ACL |__rgw_get_request

AWS 高可用AWS架构方案-Wordpress-4

安稳与你 提交于 2019-12-02 07:19:56
3. 使用CloudFront进行内容分发服务 点击此处展开... 3.1 创建S3存储桶 3.2 创建CloudFront,源为S3存储桶 3.3 安装Wordpress创建WP Offload S3 Lite 由于是通过角色添加的,所以没有所谓的Key等 ,故修改配置文件将之说明即可,第一张是下载和启用,第二张是设置 ,配置(vim /var/www/html/wp-config.php),第三张是结果 选择合适的S3 3.4 WP Offload S3插件作用: WordPress多媒体文件自动上传到S3 URL重写,将本地多媒体文件的URL重写为S3的URL URL重写,将本地多媒体文件的URL重写为Cloudfront的URL,用户访问时,自动将用户的流量指向 CloudFront。自动读取CDN上的多媒体文件。 最后达到的结果,就是,所有的静态文件放到S3上;所有程序相关的文件放到EFS上;数据库是放在另外的RDS上。 来源: https://www.cnblogs.com/gunxiaoshi/p/11735992.html

AWS 高可用AWS架构方案-1

余生长醉 提交于 2019-12-02 07:18:33
AutoScaling,Elastic Load Balancer,CloudFront和Route 53 高可用AWS架构方案-Wordpress AutoScaling,Elastic Load Balancer和Route 53 架构图 VPC_SG_IAM_RDS_EFS 创建VPC网络 创建安全组 创建IAM角色 创建RDS实例 创建EFS文件系统 安装Apache&PHP,配置wordpress 代码: 配置wordpress 登陆方式: 测试: Bootstrap脚本 使用CloudFront进行内容分发服务 创建S3存储桶 创建CloudFront,源为S3存储桶 安装Wordpress创建WP Offload S3 Lite WP Offload S3插件作用: 使用AutoScaling,Elastic Load Balancer和Route 53 Elastic Load Balancer,创建Application Load Balancer Route 53,创建Route 53并使用Alias记录解析ELB Settings 创建AMI镜像,创建启动配置(Lauch Configuration),创建Auto Scaling组 public subnet & Target group 验证 清理工作 Auto Scaling Group EC2实例

golang aws-sdk-go 之 s3 服务

て烟熏妆下的殇ゞ 提交于 2019-12-02 05:04:07
s3 是 aws 提供的分布式文件服务,价格比较优惠,经常被用来作为日志的持久化存储,大数据处理结果的输入输出等 s3 服务提供命令行工具,可以很方便地上传、下载、删除文件,普通 golang 程序如果需要访问 s3 上文件,一种简单方式可以先将 s3 上文件下载到本地,然后直接访问本地文件即可,但是这种方式需要一个额外的步骤,下载到本地,有额外的运维成本,需要额外的磁盘空间,使用上面不是很灵活,此外,微服务应该尽可能地降低对本地数据的依赖,这种设计也不符合微服务的设计思想 使用 aws-sdk-go 可以直接访问 s3 服务,实现文件的上传和读取 以下使用的代码: https://github.com/hatlonely/hellogolang/blob/master/internal/aws-sdk-go/s3_test.go 创建会话 首先需要创建一个会话,后续的访问都可以通过这个会话进行,如果访问的服务需要授权,也可以在 config 里面指定授权文件 sess := session .Must (session .NewSession (&aws .Config { Region: aws .String (endpoints .ApSoutheast 1RegionID), })) service := s3 .New (sess) 这里必须指定 s3 桶所在的地区

Python 设置S3文件属性中元数据的Content-Encoding值

穿精又带淫゛_ 提交于 2019-12-02 02:59:57
背景: 使用脚本从S3下载下来的CSV文件打开发现是乱码,但是在网页上面点击下载按钮下载后却能正常打开. 研究发现,在S3文件属性的元数据中有Content-Encoding值是gzip 浏览器下载的时候会识别这个值,然后在帮你自动减压后下载. 但是利用官方boto3包的download_fileobj()方法中,却无法指定对应的参数( 不知道以后不会优化 ). 下载的话就比较简单了,下载后直接利用gzip解压后再处理数据即可. import boto3 import gzip import csv s3 = boto3.client('s3') bucket = 'my_bucket' download_key = 'my.csv' file_path = '/tmp/my.csv' with open('/tmp/my.csv.gz', 'wb') as file_date: s3.download_fileobj(bucket, download_key, file_date) g = gzip.GzipFile(mode="rb", fileobj=open('/tmp/my.csv.gz', 'rb')) open(file_path, "wb").write(g.read()) csv_file_open = open(file_path, 'r') csv_file

Java中String初始化了String域 和 构造器初始化的String域的差异

[亡魂溺海] 提交于 2019-12-01 22:18:49
这是 java编程思想 第五章---初始化与清理 的一题 练习2 :  创建一个类,它 包含了一个定义时就被初始化了的String域,以及另一个通过构造器初始化的String域,这两种方式有何差异. 看这一段程序以及结果, 首先明确三个知识点: 1.String是引用对象 2.equals() 比较的是值 3. "=="是比较的 地址 String s1 = "abc"; String s2 = "abc"; String s3 = new String("abc"); String s4 = new String("abc"); System.out.println(s1==s2); //true System.out.println(s3==s4); //false System.out.println(s1==s3); //false System.out.println(s1.equals(s2)); //true System.out.println(s1.equals(s3)); //true java有两类存储类型,一类是基本类型的变量,如int,float等, 一类是引用对象, 如String, 自己创建的各种class, 数组等等, 就是需要new的 一般存储在两个地方, 栈中存放基本类型和对象的引用变量, new出来的对象放在堆中 除此之外, 还有块区域常量池,