数据分析与可视化 --aws云平台

数据分析与可视化

项目一:搭建AWS数据分析开发环境

1.安装Notebook开发环境

Step1:下载支持Notebook 的开发环境

远程登录到Amazon EC2实例后 在命令行中输入并执行:

wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh 

(在ec2-user 用户家目录下安装 :~)

Step2:修改安装包的权限

下载好后修改安装包权限为700 或者 给文件拥有者加上x权限(可执行)

	 chmod u+x Anaconda3-5.2.0-Linux-x86_64.sh
	 chmod 700 Anaconda3-5.2.0-Linux-x86_64.sh
Step3:安装Anaconda开发环境

执行以下命令

 ./Anaconda3-5.2.0-Linux-x86_64.sh

开始安装,根据提示按“Enter”,阅读玩用户许可之后,“YES”,继续,安装过程,系统提示用户安装路径 ,默认安装路径为当前用户的家目录径**/home/ec2-user/anaconda3,输入/home/ec2-user/bin/anaconda3**,将安装路径改为此处,回车。

安装完毕后 选择YES 将Anaconda3的安装路径添加到环境变量PATH 。完成安装。

Step4:配置PATH环境变量

首先输出$PATH环境变量,查看是否有Anaconda的安装目录,如果有快进到Stp5;若无进行以下操作。

有:

无:则

[ec2-user@ip-172-31-14-248 ~]$ ls -a 
.   Anaconda3-5.2.0-Linux-x86_64.sh  .bash_logout   .bashrc
..  .bash_history                    .bash_profile  .ssh
[ec2-user@ip-172-31-14-248 ~]$ vim .bashrc 
在.bashrc中输入
export PATH=/home/ec2-user/bin/anaconda3:$PATH
然后执行以下命令完成修改
source ~ /.bashrc
完成后可能需要退出ssh客户端 重新链接一下
echo $PATH
查看

[ec2-user@ip-172-31-14-248 ~]$ echo $PATH
/home/ec2-user/bin/anaconda3/bin:/home/ec2-user/bin/anaconda3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin

可以通过查看jupyter-notebook 安装路径 来验证Anaconda是否安装成功,(目录为/home/ec2-user/bin/anaconda3即为正确)

which jupyter-notebook
Step5:生成Notebook的配置文件和密码文件

执行以下命令,生成Notebook 的配置文件

jupyter notebook --generate-config 

该文件在用户根目录下的.jupyter/文件夹中,文件名为jupyter_notebook_config.py(文件夹与该文件都是隐藏的 需 ls -a 命令查看)

执行以下命令,生成Notebook的密码文件

jupyter notebook password

生成该文件后 需输入密码并确认密码,该文件在用户根目录下的.jupyter/文件夹中,文件名为jupyter_notebook_config.json(文件夹与该文件都是隐藏的 需 ls -a 命令查看)

Step6:编辑Notebook配置文件

查看上一步生成的Notebook配置文件,可以通过执行如下命令实现。

cat /home/ec2-user/.jupyter/jupyter_notebook_config.json 
{
  "NotebookApp": {
    "password": "sha1:36a788b4c1f9:c98ed8decb506f7f3a9fe60e0d0c505f6bd877e6"
  }
}

在该文件中,以加密的方式存储了用户设置的 jupyter Notebook 密码。复制字典“password”键的值,即加密密钥,其格式是“sha1:----”,使用文本编辑工具打开Step5的Notebook配置文件,在这里,使用Vim来完成对配置文件的编辑,这是通过执行如下命令来完成的。

vim /home/ec2-user/.jupyter/jupyter_notebook_config.py

修改配置文件中代码

c.NotebookApp.password ='shal:36a788b4c1f9:c98ed8decb506f7f3a9fe60e0d0c505f6bd877e6'(229行)
c.NotebookApp.port = 8888(240行)
c.NotebookApp.open_browser = False(220行)
c.NotebookApp.ip = '*'(174行)
若是位置有偏差,可以使用:/ + 关键字 查找需要修改的代码
Step7:再本地通过浏览器访问Amazon EC2实例的Notebook

在SSH客户端输入以下命令,启动Note服务。

jupyter-notebook

链接成功

Step8:修改Notebook的默认工作路径

将Notebook的默认工作路径修改为/home/ec2-user/notebook ,执行以下命令

cd ~  切换到ec2-user的家目录
mkdir notebook 创建目录notebook
cd notebook 进入目录notebook下
mkdair chapter1 在目录notebook下创建子目录 chapter1 

使用vim 打开 /home/ec2-user/.jupyter/jupyter_notebook_config.py 文件,修改配置文件,将Note的默认工作路径修改为“~/notebook ” 代码如下

c.NotebookApp.notebook_dir = '/home/ec2-use/notebook'

设置成功后进入为此界面。

2.使用Notebook完成函数曲线的可视化

Step1:新建一个Notebook Python 3 工程文件

启动Noteboo开发环境,进入默认的工作路径“~/notebook”,点击超链接“chapter1”,进入“~/notebook/chapter1”文件夹。在页面右上角的“New”下拉列表中选择“Python 3”选项,新建一个工程文件。

Step2:完成代码

第一行 输入shift+Enter键执行检测当行命令,会在当前单元格下创建下一个单元格

import numpy as np
import matplotlib.pyplot as plt 

第二行

x = np.arange(-5, 2, 0.01)

第三行

orgpoly = np.poly1d([1,5,1,4])
deriv1poly = orgpoly.deriv(m = 1)
deriv2poly = orgpoly.deriv(m = 2)

第四行

y1 = orgpoly(x)
y2 = deriv1poly(x)
y3 = deriv2poly(x)

第五行

fig, ax = plt.subplots(figsize=(7,6))
ax.plot(x, y1, lw=0.5,color="green",label="$y(x)$")
ax.plot(x, y2, lw=1.5,color="red",label="$y'(x)$")
ax.plot(x, y3, lw=2.5,color="blue",label="$y''(x)$")    
ax.set_xlabel("$x$", fontsize=20)
ax.set_ylabel("$y$", fontsize=20)
ax.legend(loc=9,ncol=3,fontsize=15) 
Step3:分析可视化呈现效果

效果如下:

3.使用conda安装包

1)在线安装

ps:在线模式还有一种最直接的方法,代码如下

pip install scrapy
Step1:使用conda执行安装任务

使用ec2-user账号登录Amazon EC2实例,执行如下命令

conda install scrapy

在命令行安装此命令,发现存在错误并导致环境分析失败。

Solving environment: failed

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

`$ /home/ec2-user/bin/anaconda3/bin/conda install scrapy`

  environment variables:
                 CIO_TEST=<not set>
               CONDA_ROOT=/home/ec2-user/bin/anaconda3
                     PATH=/home/ec2-user/bin/anaconda3/bin:/usr/local/bin:/usr/bin:/usr/local/sb
                          in:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>

     active environment : None
       user config file : /home/ec2-user/.condarc
 populated config files : /home/ec2-user/.condarc
          conda version : 4.5.4
    conda-build version : 3.10.5
         python version : 3.6.5.final.0
       base environment : /home/ec2-user/bin/anaconda3  (writable)
           channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64
                          https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/pro/linux-64
                          https://repo.anaconda.com/pkgs/pro/noarch
          package cache : /home/ec2-user/bin/anaconda3/pkgs
                          /home/ec2-user/.conda/pkgs
       envs directories : /home/ec2-user/bin/anaconda3/envs
                          /home/ec2-user/.conda/envs
               platform : linux-64
             user-agent : conda/4.5.4 requests/2.18.4 CPython/3.6.5 Linux/5.10.165-143.735.amzn2.x86_64 amzn/2 glibc/2.26
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False


V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/repodata.json>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
SSLError(MaxRetryError('HTTPSConnectionPool(host=\'mirrors.tuna.tsinghua.edu.cn\', port=443): Max retries exceeded with url: /anaconda/pkgs/free/linux-64/repodata.json (Caused by SSLError(SSLError("bad handshake: Error([(\'SSL routines\', \'ssl3_get_server_certificate\', \'certificate verify failed\')],)",),))',),)

A reportable application error has occurred. Conda has prepared the above report.
If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers?
[y/N]: 
No report sent. To permanently opt-out, use

    $ conda config --set report_errors false

经分析可知,发生错误的原因是在与实例无法通过端口443与下载服务器建立链接,从而无法完成依赖性分析。

Step2:修改Amazon EC2 实例安全组规则

启动AWS管理控制台,在EC2示例页面中选中使用的实例,并且单击当前正在使用的安全组。

为该Amazon EC2 实例添加以下表所示的新规则

规则属性

入站

出站

类型

自定义TCP规则

自定义TCP规则

协议

TCP

TCP

端口范围

443

443

来源

任何位置

任何位置

完成修改后入下图所示

Step3:再次执行conda 安装命令

在修改了Amazon EC2实例的安全组规则之后,需要ec2-user 账号重新登录Amazon EC2 实例。 再次执行如下安装命令

conda install scrapy
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

`$ /home/ec2-user/bin/anaconda3/bin/conda install scrapy`

  environment variables:
                 CIO_TEST=<not set>
               CONDA_ROOT=/home/ec2-user/bin/anaconda3
                     PATH=/home/ec2-user/bin/anaconda3/bin:/usr/local/bin:/usr/bin:/usr/local/sb
                          in:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>

     active environment : None
       user config file : /home/ec2-user/.condarc
 populated config files : /home/ec2-user/.condarc
          conda version : 4.5.4
    conda-build version : 3.10.5
         python version : 3.6.5.final.0
       base environment : /home/ec2-user/bin/anaconda3  (writable)
           channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64
                          https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/pro/linux-64
                          https://repo.anaconda.com/pkgs/pro/noarch
          package cache : /home/ec2-user/bin/anaconda3/pkgs
                          /home/ec2-user/.conda/pkgs
       envs directories : /home/ec2-user/bin/anaconda3/envs
                          /home/ec2-user/.conda/envs
               platform : linux-64
             user-agent : conda/4.5.4 requests/2.18.4 CPython/3.6.5 Linux/5.10.165-143.735.amzn2.x86_64 amzn/2 glibc/2.26
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False


V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch/repodata.json>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
SSLError(MaxRetryError('HTTPSConnectionPool(host=\'mirrors.tuna.tsinghua.edu.cn\', port=443): Max retries exceeded with url: /anaconda/pkgs/free/noarch/repodata.json (Caused by SSLError(SSLError("bad handshake: Error([(\'SSL routines\', \'ssl3_get_server_certificate\', \'certificate verify failed\')],)",),))',),)

A reportable application error has occurred. Conda has prepared the above report.
If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers?
[y/N]: y
Upload successful.

Thank you for helping to improve conda.
Opt-in to always sending reports (and not see this message again)
by running

    $ conda config --set report_errors true

安装成功,若发生权限错误13,说明当前用户ec2-user没有Anaconda所在路径的执行权,若解决需

Step4:修改Anaconda的所有权并重新安装

使得ec2-uesr账户获得Anaconda安装路径的所有权,这是通过执行下述命令实现的。

sudo chown -R ec2-user:ec2-user /usr/anaconda3/

然后再次安装scrapy包

conda install scrapy

然后成功安装了。

2)离线安装

除了在线安装之外,还可以使用conda离线安装包。

Step1:下载scrapy安装文件

启动浏览器,访问scrapy安装包下载网址,下载安装文件

将该文件上传至Amazon EC2 实例的某一个文件夹。在这里,该文件的 存储路径是我们的用户家目录“/home/ec2-user” 。

Step2:使用pip 工具安装scrapy

使用ec2-user账号登录 Amazon EC2 实例,执行如下命令进入路径 "/home/ec2-user"

cd /home/ec2-user

执行以下命令安装scrapy包

pip install Scrapy-2.8.0-py2.py3-none-any.whl 

也可以通过指定该文件的绝对路径暗转

pip install    /home/ec2-user/Scrapy-2.8.0-py2.py3-none-any.whl

然后等待暗转就ok了。

4.为Amazon EC2 实例创建更多角色

Step1:基于默认账户.pem密钥文件生成公钥

使用默认账户“ec2-uesr” 登录Amazon EC2 实例,执行如下命令。

ssh-keygen -y

使用FTP或者其他工具上传创建Amazon EC2实例时生成的密钥文件,该文件的扩展名是“.pem”。

当提示输入密钥所在的文件时,请指定.pem文件的路径。在成功执行上述命令后,会生成公有密钥。

(因为我的.pem文件在~目录下,就直接输入密钥文件名了,若是ec2-user用户权限不足可以在上述命令前加上 sudo)

Step 2:向Amazon EC2 实例添加一个新账号并切换到新账号

执行如下命令将账号“ndz”添加到系统

sudo adduser ndz

执行如下命令将当前用户切换为新创建的用户

sudo su ndz

切换过后shell当中的提示符变为了新创建的用户

Step 3:为新用户创建SSH密钥文件

在当前用户的根目录下创建文件夹“.ssh”,并且修改其访问权限为只有文件夹所有者能够读取,写入或者打开该目录。在“.ssh”目录中创建名为“authorized_keys”的文件,并将其权限更改为只用文件拥有者能够读取或者写入此文件。上述操作时通过执行如下命令实现的。

mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

在执行的过程中,为了查看命令是否成功执行,可以输出相关信息,如查看文件或者文件的权限等。

最后编辑该密钥文件,将其内容修改为之前复制的密钥内容。

Step 4:使用新用户登录

退出SSH客户端,并重新登录,输入新用户的账号名称。

项目二:在数据分析中使用Amazon S3 储存桶

1.Amazon S3 存储桶基础

1) Amazon S3 概述

Amazon S3 是一种互联网存储解决方案。使用该服务可以降低开发人员进行大规模网络计算的难度,并为开发人员带来最大化的规模 效益。

Amazon S3 提供了一个简单的Web服务接口,可用于随时在Web上的任何位置存储和检索任何数量的数据。Amazon S3 让所有开发人员都能访问同一个具备高扩展性、可能性、安全性、快速又廉价的数据存储基础设施。

2)Amanzon S3的特点

使用Amazon S3具有如下优势和特点。

1.Amazon S3 内置了注重简易性和稳健性的最小功能集。存储桶是Amazon S3 用于数据存储的基础容器,并且可以创建和命名不同的存储桶。

2.可以在存储桶中存储不限量的数据。用户将文件对象上传到Amazon S3 存储桶中,每个对象最多可包含5TB 的数据。

3.对于存储桶中的数据,可以赋予不同的权限,例如可以赋予访客访问权限或者拒绝其访问。

4.使用标准的REST和SOAP接口。

ps:HTTP不在支持SOAP接口,但是该接口仍可在HTTPS中使用,建议用户使用REST API 或 AWS 开发工具包

3)Amazon S3 的核心概念和技术

1.存储桶

存储桶是Amazon S3 中用于存储对象的容器。每个对象都存储在一个存储桶中,并可通过网址的方式对该对象进行寻址。

2.对象

对象是Amazon S3 中存储的基本实体,对象由对象数据部分和元数据部分组成,其中数据部分对Amazon S3 不透明。元数据是一组描述对象的名称值对。其中包括一些默认元数据(如上次修改日期)和标准HTTP 元数据(如Content-Type)。 用户还可以在存储对象时指定自定义元数据。

在存储桶中,对象由键(名称)和版本ID 唯一标识 构成。

3.键

键是指存储桶中对象的唯一标识符。存储桶的每个对象都只能有一个键。通过存储桶、键和版本ID的组合,可以唯一地标识各个对象。因此,用户可以将Amazon S3 看作”存储桶+键+版本“与对象本身之间的基本数据映射。也就是说,将Web服务终端节点、存储桶名、密钥和版本(可选)组合在一起,可唯一寻址Amazon S3 中的每个对象。

4.区域

用户可以为Amazon S3 存储桶选择其所在的AWS区域。对于存储区域的选择,用户通常在优化延迟、降低成本和满足法规这3点之间折中考虑。

在某一区域存储的数据将一直留在改区域,除非用户特意将其传输到另一区域。例如,存储在宁夏区域中的对象将一直留在该区域。

2.Amazon S3 的功能

1).存储类

Amazon S3 提供了多种存储类,以适应不同的应用场景。Amazon S3 包括适用于高数据访问频率发通用型存储(Amazon S3 STANDARD)、适用于长期存储数据但访问不高的Amazon S3 STANDARD_IA,以及适用于长期存档的Glacier。

2).存储桶策略

通过使用存储桶策略,可以实现对存储桶和对象的集中访问控制。这些策略是用访问策略语言描述的,可以对许可进行集中管理。附加到存储桶的许可适用于该存储桶的所有对象。

个人和公司都可以使用存储桶策略。在公司向Amazon S3 进行注册时,创建一个账户,该账户即等同于该公司。此账户承担公司及其员工)使用AWS资源产生的费用,且有权基于各种条件授予存储桶策略许可,以及分配员工许可。

此账户不仅可以授予用户有限的读写访问权限,还可以允许其他人创建和删除存储桶。一个账号可以让多个地域的IP地址操作一个存储桶,并且仅允许来自这些地域的IP地址范围的写入。

登录AWS使用的账户、用户名和密码(AWS中国)

AWS中国的账号是一串数字,代表当前登录用户所在的机构。用户名和密码则是由”账户“分配给用户的。

与仅可以为单个对象添加(授予)许可的访问控制列表不同,策略可以为存储桶内的所有对象(或子集)添加或删除许可。在一个请求中,账户可以为存储桶内任意数量的对象设置权限。账户可以在Amazon资源名称和其他值上使用通配符(类似与正则表达式运算符)。然后,账户可以对以通用前缀开头或者以指定扩展名结尾(如”.html“)的一组对象进行访问控制。在AWS中,只有存储桶拥有者可以将策略与该存储桶关联。策略将基于一下条件决定允许还是拒绝一个请求。

(1)Amazon S3 存储桶操作 (如PUT )和对象操作(如PUT Object 或 GET Object)。

(2)请求者。

(3)策略中指定的条件。

账户可以使用特定的Amazon S3 操作 (如GetObject、GetObjectVersion、DeleteObject或DeleteBucket)控制访问权限。

这些条件可以是IP地址、以CIDR法表示的IP 地址范围、日期、用户代理、HTTP引用站点和传输(HTTP和HTTPS )。

3)AWS Identity and Access Management

用户可以使用AWS身份和访问管理(Identity and Access Management , IAM)功能来管理 Amazon S3 资源访问权限。 例如,用户可以将IAM 用于Amazon S3 , 控制用户或用户组对该AWS账户的Amazon S3 存储段的具体部分的访问类型。

4)访问控制列表

用户可以使用访问控制列表功能来控制对每个存储桶和对象的访问。

5) 版本控制

用户可以使用版本控制功能将对象的多个版本保留在同一存储桶中。

6)操作

Amazon S3常用的操作包括以下几种。

1.为账号或用户创建和命名存储桶

2.写入数据,通常是创建或覆盖对象数据。在编写对象时,存储桶的命名空间中指定唯一键值。此时,也适合为对象指定任何用户想要的访问控制。

3.读取对象或数据,用户可以通过HTTP或BitTorrent下载数据

4.删除存储桶中的某些数据。

5.列出包括在某个存储桶中的键,用户可以基于前缀筛选键列表。

3.通过ASW管理控制台使用Amazon S3 存储桶

具体流程如下

一、创建存储桶

Amazon S3 中的每个对象都存储在存储桶中。必须先创建一个存储桶,才能在Amazon S3 中存储数据。用户无需为创建存储桶付费,只有将对象存储到存储桶中,以及向存储桶传入对象和从存储桶中传出对象时才需要付费。

Step 1:登录AWS 管理控制台并打开Amazon S3控制台

登录进入管理控制台之后,可以看到AWS云平台提供的服务,单击"服务选项卡之后,在弹出的页面中单击“存储和内容分发”中的“S3”超链接,如下图

Step 2: 创建一个Amazon S3 存储桶并完成基本配置

ps:Amazon S3 服务区域为全球

弹出“创建存储桶”页面,在其中输入存储桶信息

存储桶名称需要遵循一定的规则,具体如下:

(1)必须符合域名服务(Domain Name Service, DNS )命名约定.

(2)在Amazon S3 中的所有现有存储桶名称中必须唯一.

(3)长度必须为至少3个字符,且不能超过63个字符。

(4)创建存储桶名称后,无法对其进行修改。

(5)必须是一系列的一个或多个标签。 相邻标签通过单个点(.)分隔。存储桶名称可以包含小写字母、数字和连字符。每个标签都必须以小写字母或数字开头和结尾。

(6)存储桶名称中不可以包含大写字母和下划线,以确保每个存储桶都可以使用虚拟托管类型的寻址方式找到。

(7)不得采取IP 地址格式(例如:192.168.1.2)

(8)当通过安全套接字使用虚拟托管式存储桶时,SSL通配符证书仅匹配不包含句点的存储桶。要解决此问题,强使用HTTP或编写自己的证书验证逻辑。在使用虚拟托管式存储桶时,建议用户不要在存储桶名称中使用点(.)。

(9)用于Amanzon S3 Transfer Acceleration(S3传输加速)的存储桶的名称必须符合DNS标准,且不得包含点(.)

区域指定放置该存储桶的区域

在这里,将“存储桶名称”设置为“ndzbox1 区域选择”亚太地区(东京)“ 默认使用AWS的区域,若有现有的存储桶可以选择存储桶进行设置,无则跳过 进行下一项配置。

”对象所有权“及”阻止公用访问设置“根据个人需要更改,这里无特殊需求,推荐禁用。

存储桶版本控制,大概跟图中所述差不多吧,希望有大佬补充一下。。。。

字面意思,添加一个标签嗷。

加密看个人需求

这个防止对象被误删 使用这个功能需要开启版本控制。。

配置完成后,点击创建存储桶

4.向存储桶中添加对象

创建了存储桶之后,就可以向存储桶中添加对象。对象可以是任何类型的文件,常用的文件有文本文件、图片、视频等。

在这里尝试将计算机文件上传到刚刚创建的存储桶中(不要上传太大的文件,影响收费。。。。)

Step 1:

将鼠标移动到存储桶名称的上面,直到存储桶名称下面出现下划线,单击存储桶的名字

进入了存储桶的配置页面如下图所示

Step 2:

单击上传

进入”上传”界面

根据自己的习惯或者需要选择操作。

点击添加文件,在弹出的windo对话框中选择需要上传的文件,单击“打开”按钮

然后就能看见添加的文件了

接下来可以查看配置一下“目标详细信息”以及“权限”和“属性”

熟悉的版本控制。。

权限在先前存储桶配置时以及做过选项了,需要更改可以自行更改存储桶设置。

选择你的对象类型,不同的类型配置收费都有差异,根据个人需求选择,这里默认选择标准。

默认两个选项都是关闭的服务端加密需要考虑存储桶策略是否要求对象加密上传,进行相应的修改。

标签,元数据,根据个人需求添加 ,配置完成后选择上传。

上传成功。

然后就能在我们的存储桶中看见我们刚刚上传的对象了。

5.从存储桶中下载对象

现在可以尝试将存储桶中的文件下载到本地。

Step 1:进入Amanzon S3 控制台

通过AWS控制台进入Amazon S3 管理页面

Step 2:进入存储桶管理页面

进入存储桶管理页面

选中我们的对象

Step 3:下载文件

在上方各种选项中单击下载。

然后就自动下载到浏览器的下载路径了。

6.在存储桶中复制对象

在存储桶中创建一个文件夹,并将之前上传的文件夹复制或移动到该文件夹

Step 1:进入存储桶内容管理界面

进入“ndzbox1”的内容管理界面

Step 2:在存储桶中创建文件夹

点击创建文件夹 ,创建一个新的文件夹,设置文件名为“ndzdata1”,加密设置默认选择,单击“创建文件夹”按钮。

完成后就能在存储桶看见新创建的文件夹。

Step 3:将文件复制到文件夹中

首先勾选"数据分析与可视化.md"旁边的复选框,然后在“操作”下拉列表中,选择”复制“选项

弹出了复制的选项菜单,

点击浏览

选中我们要复制到的文件夹 ,然后 ”选择目标“

单击”复制“按钮,

复制成功,选择关闭

然后就可以在我们的”ndzdata1/“文件夹中看到我们复制的文件了。

7.删除对象和清空存储桶

如果不需要存储桶中的对象后,应该及时删除对象,以免产生额外费用,用户可以逐个 删除对象,也可以清空存储桶(删除存储桶中的所有对象,并非删除此存储桶),也可以直接删除存储桶以及其中包含的所有对象。

Step 1:进入存储桶管理页面

进入存储桶”ndzbox1“的管理页面

Step 2:删除文件对象

勾选文件对象”数据分析与可视化.md“,从上方列表中选择”删除“选项

进入删除对象对话框后,在下方输入栏中输入 ,”永久删除“即可成功删除

删除成功 单击 ”关闭“按钮

可以用相同的方法删除 ”ndzdata1/“文件夹

Step 3: 清空存储桶

进入Amazon S3 存储桶管理页面后,勾选存储桶”book-chapter2“前的复选框, 单击”空白” 按钮。

在弹出的“清空存储桶”对话框中,下方输入栏 写入“永久删除”,单击按钮“空”,即可完成清空存储桶操作

8.删除存储桶

Step 1:进入存储桶管理页面

如下图

Step 2:删除存储桶

勾选“ndzbox1”这个存储桶,单击上方操控栏中的”删除“按钮

进入删除存储桶对话框后,输入改存储桶的名称,再点击下方删除存储桶即可(若未清空存储桶,则会出现如下提示,输入栏中也无法输入字符。)ps:删除存储桶前需先清空存储桶

9.使用python语音操作Amazon S3 存储桶对象

1.安装并配置boto包
Step 1:安装boto包

可以使用pip工具安装最新发行版的boto。执行的命令如下

pip install boto

同样也可以使用pip工具安装最新发行版的boto3。执行的命令如下琐事。

pip install boto3
Step 2:配置boto

如果要通过boto 访问存储桶,那么需要完成boto的配置。在这里,主要配置access_key _id 和secret_access_key

在当前用户的根目录下创建文件“.boto”,添加如下3行代码。

[Credentials]
aws_access_key_id = $(access_key_id)
aws_secret_access_key = $(secret_access_key)

在这里,aws_access_key_id 是用户的access_key_id, aws_secret_access_key是用户的secret_access_key,这两个密钥文件可以由用户的账号进行分配。

Step 3:测试安装

在Notebook中完成如下3行代码,如果安装、配置boto成功,则不应出现错误提示。

import boto 
s3 = boto.connect_s3()
print(s3)

10.创建可以匿名访问的存储桶

Step 1: 创建存储桶

新建一个存储桶,设置名称为“chapter2-data”,保持默认设置,如图所示

可以看到,当前存储桶的区域是亚太(东京),访问权限为“存储桶和对象不是公有的”

Step 2:创建并上传数据文件

先创建一个CSV数据文件,共包含100个数据,其中最小值是0,最大值是0.99,步长是0.01。前10个数据如图所示

然后将该文件上传存储桶中,点开文件详细

Step 3:尝试使用URL打开数据文件

找到这个文件的URL链接

复制到浏览器地址栏,发现无法打开或者下载该文件

Step 4:修改“阻止公共访问权限”

在存储桶的“权限”选项卡中选择“阻止公共访问权限”选项,点击右侧的“编辑”按钮,如下图

成功修改“阻止公有访问权限”

但是这个时候,回到先前的ndz100.csv时,点开URL 仍无法下载

回到“ndzbox1” 的权限配置选项卡中

ACL功能没有启动,点击对象所有权 “编辑"

选择ACL 已启用 ,保存更改

回到“ndz100.csv”权限选项卡,点击编辑按钮

勾中选项 然后完成更改。

然后再次在地址栏输入该URL。

下载成功。(然后记得把公开权限,和ACL关闭 ,如果长时间公开,有其他 人下载文件,产生额外流量,会增加费用。)

11.可视化Amazon S3 存储桶的数据

Step 1:获取存储桶数据文件对象的URL

复制先前 ndz100.csv文件的URL

Step 2:用numpy包绘制正弦曲线

在这里用ndz100.csv的数据作为自变量,绘制正弦曲线的图形。

启动 notebook 在notebook中新建工程

在新建的工程文件中完成如下代码

import urllib.request
import numpy as np
import matplotlib.pyplot as plt 
ndzUrl = "https://ndzbox1.s3.ap-northeast-1.amazonaws.com/ndz100.csv"
ndz = urllib.request.urlopen(ndzUrl)
X= np.loadtxt(ndz ,delimiter=",")
plt.title("Sin & Cos Wave")
plt.xlabel("X")
plt.ylabel("Sin(X)& Cos(X)")
plt.plot (X,np.sin(X))
plt.plot(X,np.cos(X))
plt.legend(['$Sin(x)$','$Cos(x)$'],loc = "lower left")
plt.show()

编辑成功,完成设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优衣库销售数据分析可视化项目的开发环境主要包括以下几个方面: 1. 编程语和开发工具:项目的开发可以使用多种编语言,如Python、R、JavaScript等。Python和R常用于数据处理和分析,JavaScript用于Web可视化。常见的开发工具包括Jupyter Notebook、PyCharm、RStudio等,它们提供了丰富的开发功能和调试工具。 2. 数据库和数据存储:项目可能需要使用数据库存储销售数据。常见的关系型数据库包括MySQL、PostgreSQL等,而NoSQL数据库如MongoDB和Elasticsearch也可以用于存储非结构化数据。选择数据库时需要考虑数据规模、查询需求和性能要求。 3. 数据分析可视化工具:项目需要使用一些数据分析可视化工具来处理和呈现数据。常见的数据分析工具包括Python中的pandas、NumPy和SciPy,以及R语言中的tidyverse等。而数据可视化工具如matplotlib、Seaborn、Plotly(Python)和ggplot2(R)可以用于创建各种图表和可视化效果。 4. Web开发技术:如果需要将分析结果以Web应用形式呈现,可能需要使用HTML、CSS和JavaScript等前端技术来构建用户界面和交互功能。常见的Web框架如Django和Flask(Python)、React和Angular(JavaScript)等可以简化开发过程。 5. 部署和运行环境:完成开发后,项目需要在适当的部署和运行环境中进行部署。这可能涉及到服务器的配置、容器化技术(如Docker)的应用,以及云平台(如AWS、Azure或GCP)的使用,以确保项目的可靠性和性能。 综上所述,优衣库销售数据分析可视化项目的开发环境涉及编程语言和开发工具、数据库和数据存储、数据分析可视化工具、Web开发技术,以及部署和运行环境等方面。具体的选择取决于项目需求和开发团队的偏好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值