数据分析-从零开始,离线环境安装python及数据分析环境

目标

从零开始离线安装Python、Jupyter Notebook以及Python数据分析环境的说明,其中Python版本为3.11.1。

0.准备工作

0-1下载相关RPM文件

地址
http://rpmfind.net/linux/rpm2html/search.php

#包含以下安装需要的rpm文件
yum install --downloadonly --downloaddir=./python3.9.16 zlib-devel bzip2-devel \
openssl-devel ncurses-devel   make gcc gcc-c++ xz-devel readline-devel \
gdbm-devel sqlite-devel tk-devel libffi-devel epel-release

0-2 下载pip文件

地址

1.安装Python

首先需要下载Python 3.11.1的安装包,可以从Python官方网站

https://www.python.org/downloads/release/python-3111/ 下载。

下载完成后,将安装包拷贝到离线机器上,并运行安装程序。安装过程中需要注意以下几点:

  • 在“Customize installation”界面,勾选“Add Python 3.11 to PATH”选项,这样可以将Python添加到系统的环境变量中,方便在命令行中使用。
  • 在“Optional Features”界面,选择“pip”和“tcl/tk”,这样可以安装Python的包管理工具pip和图形用户界面工具包Tkinter。
  • 在“Advanced Options”界面,可以选择自定义Python的安装路径,或者选择默认路径。
    安装完成后,可以在命令行中输入以下命令来检查Python是否安装成功:
python --version

如果输出Python的版本号,则说明安装成功。

2.安装Jupyter Notebook

Jupyter Notebook是一个基于Web的交互式计算环境,可以方便地进行代码编写、数据分析和可视化。下面介绍如何在离线机器上安装Jupyter Notebook。

首先需要安装Jupyter Notebook的依赖项,包括IPython、traitlets、jinja2、tornado和pyzmq。可以从 https://pypi.org/project/ipython/#files
下载这些包的压缩文件(通常是以“.tar.gz”结尾的文件)。

将这些压缩文件拷贝到离线机器上,并依次解压缩并安装:

tar -xzvf ipython-x.x.x.tar.gz
cd ipython-x.x.x
python setup.py install

tar -xzvf traitlets-x.x.x.tar.gz
cd traitlets-x.x.x
python setup.py install

tar -xzvf jinja2-x.x.x.tar.gz
cd jinja2-x.x.x
python setup.py install

tar -xzvf tornado-x.x.x.tar.gz
cd tornado-x.x.x
python setup.py install

tar -xzvf pyzmq-x.x.x.tar.gz
cd pyzmq-x.x.x
python setup.py install

其中,“x.x.x”是版本号。

安装完成后,可以使用pip命令安装Jupyter Notebook:

#安装依赖
Requires: argon2-cffi, ipykernel, ipython-genutils, jinja2, jupyter-client, jupyter-core, nbclassic, nbconvert, nbformat, nest-asyncio, prometheus-client, pyzmq, Send2Trash, terminado, tornado, traitlets
Required-by: jupyterlab
pip install jupyter

3.安装Python数据分析工具

在离线机器上安装Python数据分析工具,可以使用pip命令,将需要安装的包的压缩文件拷贝到离线机器上,然后使用“pip install”命令安装。常用的数据分析工具包括NumPy、Pandas、Matplotlib和Seaborn。可以从以下网址下载这些包的压缩文件:

NumPy:https://pypi.org/project/numpy/#files
Pandas:https://pypi.org/project/pandas/#files

#Pandas的依赖
Requirement already satisfied: pytz>=2020.1 in /opt/python3/lib/python3.9/site-packages (from pandas==1.5.3) (2022.7.1)
Requirement already satisfied: numpy>=1.20.3 in /opt/python3/lib/python3.9/site-packages (from pandas==1.5.3) (1.24.2)
Requirement already satisfied: python-dateutil>=2.8.1 in /opt/python3/lib/python3.9/site-packages (from pandas==1.5.3) (2.8.2)
Requirement already satisfied: six>=1.5 in /opt/python3/lib/python3.9/site-packages (from python-dateutil>=2.8.1->pandas==1.5.3) (1.16.0)
Installing collected packages: pandas
Successfully installed pandas-1.5.3

Matplotlib:https://pypi.org/project/matplotlib/#files
Seaborn:https://pypi.org/project/seaborn/#files
将下载好的压缩文件拷贝到离线机器上,并使用pip命令安装。例如,安装NumPy:

pip install numpy-x.x.x.tar.gz

其中,“x.x.x”是版本号。

同样地,安装其他数据分析工具包:

pip install pandas-x.x.x.tar.gz
pip install matplotlib-x.x.x.tar.gz
pip install seaborn-x.x.x.tar.gz

注意:安装这些包时,可能会依赖其他的第三方库,需要将这些库的压缩文件也下载下来并安装。可以通过查看报错信息来确定需要安装哪些依赖项。

启动Jupyter Notebook

安装完成后,就可以启动Jupyter Notebook了。在命令行中输入以下命令:

jupyter notebook

这样就会在默认浏览器中打开Jupyter Notebook的主界面。在主界面中,可以创建、打开和编辑Jupyter Notebook文档,同时运行代码、查看图表和输出结果。

如果出现启动失败的情况,可以尝试修改默认端口号或者检查是否有其他进程占用了该端口号。

至此,从零开始离线安装Python、Jupyter Notebook和Python数据分析环境的说明就结束了。需要注意的是,在离线环境下安装Python和相关工具时,需要手动下载和安装依赖项,可能会比较麻烦。建议提前准备好所需的压缩文件,并仔细阅读安装步骤。

我在B站读大学,大数据专业(转载)

基础篇

语言基础篇

关于编程语言这部分,大部分同学都是Java附带Scala技能加点,当然如果你学了一点Python的东西也是一个加分项。

那么关于Java语言你可以参考下面这个视频,尤其是如果你的语言基础极差,都没有用过Java语言。

《Java基础到高级-宋红康》 https://www.bilibili.com/video/BV1Qb411g7cz

如果你有一定的语言基础,想看看自己掌握到了什么程度?OK,下面这个视频就满足你的胃口了。这个视频从关键字到新特性,带着问题的形式,边学边考。

《最全Java零基础入门教程(含百道Java真题)》 https://www.bilibili.com/video/BV1Kb411W75N

数据结构篇

如果你还在读书,结合课本来看,我推荐这个:

《数据结构-浙江大学》
https://www.bilibili.com/video/BV1JW411i731

浙江大学老师的这个视频可以说是公开课的牌面了,可以称为数据结构篇的「正规军」了。

与之对应的是,下面这个视频。如果你工作有一段时间了,那么可以直接看这个视频:

《数据结构与算法(小甲鱼)》 
https://www.bilibili.com/video/av29175690

小甲鱼简直可以称为良心UP主的楷模。小甲鱼的视频语言风趣幽默,举了很多的例子配合知识点。

Linux基础

Linux基础这块对于数据开发非常重要,因为大家平时接触过的数据框架的搭建过程涉及大量的Linux命令操作,并且在系统级别的调优还会接触atime、ulimit这种比较高级的命令。

这里我推荐史上最牛的Linux视频教程:

《史上最牛的Linux视频教程—兄弟连》 https://www.bilibili.com/video/av18156598

如果这个视频满足不了你,你还可以参考:

《Linux教程(千万级学习人次)》 https://www.bilibili.com/video/av21303002

数据库入门

基于MySQL了解常见的SQL语法,大数据领域SQL化是未来的发展方向。

《MySQL 基础+高级篇》 

https://www.bilibili.com/video/av49181542

以及下面这个:

《MySQL最新教程通俗易懂》 https://www.bilibili.com/video/BV1NJ411J79W

计算机基础

操作系统

这里B站是万能的,但是我还给出了一些其他的链接:

学堂在线上清华的操作系统 https://www.xuetangx.com/course/THU08091000267/5883104
哈工大李治军老师的操作系统 

https://www.icourse163.org/course/HIT-1002531008#/info
操作系统
https://www.bilibili.com/video/BV1YE411D7nH

数据结构与算法

陈越&何应钦的数据结构和算法公开课 https://www.icourse163.org/course/zju-93001#/info
《Java版数据结构与算法》 参考链接:https://www.bilibili.com/video/BV1E4411H73v

计算机网络

哈工大版本

https://www.icourse163.org/course/hit-154005
中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版》 https://www.bilibili.com/video/BV1JV411t7ow

计算机组成原理

哈工大计算机组成原理

上:https://www.icourse163.org/course/hit-309001#/info

下:https://www.icourse163.org/course/hit-1001527001#/info

分布式理论

关于这一块内容,我没有在B站找到资源可以直接看。这块内容因为都是一些比较高深的论文,我相信很少有老师能够通俗易懂的讲给大家,这块就全靠大家搜集资源了。我给出了学习大纲:

分布式中的一些基本概念:集群(Cluster)、负载均衡(Load Balancer)等
分布式系统理论基础:一致性、2PC 和 3PC
分布式系统理论基础:CAP
分布式系统理论基础:时间、时钟和事件顺序
分布式系统理论进阶:Paxos
分布式系统理论进阶:Raft、Zab
分布式系统理论进阶:选举、多数派和租约
分布式锁的解决方案
分布式事务的解决方案
分布式 ID 生成器解决方案

Netty与网络通信

我只找到了这个,我挑了几章我自己研究过的看,总体来说讲到点子上了。

《Netty视频教程》 

https://www.bilibili.com/video/BV1DJ411m7NR

框架篇

这部分就到了真正考验各个老师的水平阶段了。

离线部分必看的几个视频:

Hadoop

《Hadoop2.x框架入门教程》 https://www.bilibili.com/video/BV1cW411r7c5
《大数据Hadoop3.x(全新升级/部署+源码+实战)》
https://www.bilibili.com/video/BV1Qp4y1n7EN

当时看到3.x这个视频的时候,老夫我是虎躯一震。这也太强了,Hadoop3.x才出多久,这网上视频都有了?

Hive

Hive也是,这特么3.x版本才出来没多久。在下实在也是震惊了😱。关键这课的质量还挺好。😆

《Hive教程(基于Hive3.1.2)》 https://www.bilibili.com/video/BV1EZ4y1G7iL

如果上面的入门课程满足不了你,下面的这个进阶课相信可以填满你了。

《2021新版Hive高级进阶教程》 https://www.bilibili.com/video/BV1Cb4y1r7p2

Hbase

如果你是一个初学者,那么可以看这个:

HBase入门教程 
https://www.bilibili.com/video/BV1Y4411B7jy

那么如果你是一个资深的开发,需要系统的学习或者查漏补缺,视频就满足不了大家了。这里我推荐一本书:

《HBase原理与实践》, 作者: 胡争、范欣欣

Kafka

你可以参考这个视频:

《消息队列kafka快速入门》 https://www.bilibili.com/video/BV1a4411B7V9

Kafka这个框架更新也非常频繁,至今已经到了3.x版本了,并且引入了很多新的特性。目前还没有看到跟最新版本有关的视频出现。

如果你的时间有限,可以看这个:

《B站讲的最好的Kafka视频教程全集》 https://www.bilibili.com/video/BV1eg411g7s3

Spark

这个名字取得很大,但是当成一个入门课还是不错的。

《大数据Spark教程从入门到精通》 https://www.bilibili.com/video/BV11A411L7CK

同样大家也知道,Spark3.x版本的更新也带来了一波巨大的改变。

大数据Spark3.0教程 

https://www.bilibili.com/video/BV11A411L7CK

就问你强不强!

Flink

再次给清华大佬跪下了。Flink的这个视频我在群里跟很多小伙伴推荐过了。

此视频一出,B站吃瓜群众惊呼:武老师,发生甚么事了?!

Java版Flink(武老师清华硕士,原IBM-CDL负责人) 
https://www.bilibili.com/video/BV1qy4y1q728

清华大佬不满足于此,竟然给Flink SQL出了单独的视频!

Flink SQL(武老师清华硕士,原IBM-CDL负责人) 
https://www.bilibili.com/video/BV12k4y1z7LM

项目实战篇

《大数据电商数仓V3.0版本教程》 https://www.bilibili.com/video/BV1Hp4y1z7aZ
《实时数据仓库项目(阿里云实时数仓)》 https://www.bilibili.com/video/BV1dJ411k7BE
《2021新版电商数仓V4.0丨大数据数据仓库项目实战》 https://www.bilibili.com/video/BV1rL411E7uz

网友惊呼,肝到半夜两点看视频,掉头发了这些UP主都有责任!

到此为止,我曾经看过或者浏览过的视频就都在上面了。大家可以根据需要自取。

原文地址:https://mp.weixin.qq.com/s/OKFcNUdjjfJfF7gsypjFtA

如何离线安装Docker镜像

以pgloader,linux环境为例说明,windows类似

一、在有网络环境的服务器,通过远程方式拉取镜像

# 拉取镜像
docker pull dimitri/pgloader:latest

二、查看镜像,导出镜像

# 查看镜像
docker images | grep pgloader
# 导出镜像
docker save -o pgloader.tar dimitri/pgloader

三、确认镜像打包完成,通过线下方式拷贝到指定服务器

省略···

四、服务器离线安装

# 查看pgloader版本
docker run --rm --name docker_pgloader dimitri/pgloader:latest pgloader --version
# 导入镜像文件(需修改路径)
docker load -i {$path}/pgloader.tar
# 确认镜像
docker images | grep pgloader
# 运行镜像(显示pgloader命令帮助文档)
docker run --rm --name docker_pgloader dimitri/pgloader:latest pgloader --help

数据仓库建模方法论Kimball与Inmon详解

一、数据仓库的相关概念

1.什么是数据仓库

数据仓库一种面向分析的环境,是一种把相关的各种数据转换成有商业价值的信息的技术。

数据仓库理论的创始人W.H.Inmon在其《Building the Data Warehouse》一书中,给出了数据仓库的四个基本特征:面向主题,数据是集成的,数据是不可更新的,数据是随时间不断变化的。


报表数据库与业务数据库的区别

业务数据库的特点:

用于减少冗余和提高精度 。
适合于数据的写入和更新而不是数据的读取。
数据被细分为很多表(为了消除冗余),大的查询执行起来比较慢。
分析型数据库的特点:

报表型数据源通常使用星型结构布局。所有事务型数据,大部分数值型数据存储在事实表中,所有的参考数据,例如产品信息等,存储在独立的维度表中。
星型结构数据库比完全标准化数据库含有的表少,查询性能更快。

2.维度

维度是一个与业务相关的观察角度,依赖于数据的有效性和表达业务成效的关键性能指标。

能够回答类似下列问题:

可将业务的每个方面构造成一个维度,如时间维度由年、季度、月构成。所有维度在一起提供了业务的多维视图。这个多维视图的数据被存为一个立方体。

一个维度下设有若干层。如地区维度下有地域、国家、办事处、销售员4层。

3.度量

度量也叫事实,是用于评价业务状况的数值型数据。如销售额、成本、利润、库存量、交易数。
在企业活动中通常是通过如销售额、费用、库存量和定额一类的关键性能指标,度量来监测业务的成效。
不同的度量反映出不同的业务性质。度量之间相互独立。
度量是业务量化的表示。

4.多维立方体

5.多维分析

6.维度、层和类别

二、数据仓库的体系结构

业界存在Kimball与Inmon各自倡导的两种体系结构。

1、Inmon的企业信息化工厂

左边是操作型系统或者事务系统,有数据库在线系统,有文本文件系统等。这些系统的数据经过ETL的过程,加载数据到企业数据仓库中,ETL的过程是整合不同系统的数据,经过整合,清洗和统一,因此我们可以称之为数据集成。

企业数据仓库是企业信息化工厂的枢纽,是原子数据的集成仓库,但是由于企业数据仓库不是多维格式,因此不适合分析型应用程序,BI工具直接查询。他的目的是将附加的数据存储用于各种分析型系统。

数据集市,是针对不同的主题区域,从企业数据仓库中获取的信息,转换成多维格式,然后通过不同手段的聚集、计算,最后提供最终用户分析使用,因此Inmon把信息从企业数据仓库移动到数据集市的过程描述为“数据交付”。

2.Kimball的维度数据仓库

kimball的维度数据仓库是基于维度模型建立的企业级数据仓库,它的架构有的时候可以称之为“总线体系结构”,和inmon提出的企业信息化工厂有很多相似之处,都是考虑原子数据的集成仓库。

这两种结构的相似之处:一、都是假设操作型系统和分析型系统是分离的;二、数据源(操作型系统)都是众多;三、ETL整合了多种操作型系统的信息,集中到一个企业数据仓库。

最大的不同就是企业数据仓库的模式不同:inmon是采用第三范式的格式,kimball采用了多维模型–星型模型,并且还是最低粒度的数据存储。其次,维度数据仓库可以被分析系统直接访问(这种访问方式毕竟在分析过程中很少使用)。最后就是数据集市的概念有逻辑上的区别,在kimball的架构中,数据集市用维度数据仓库的高亮显示的表的子集来表示。

在kimball的架构中,有一个可变通的设计,就是在ETL的过程中加入ODS层,使得ODS层中能保留第三范式的一组表来作为ETL过程的过度。但是这个思想,Kimball看来只是ETL的过程辅助而已。另外,还可以把数据集市和企业维度数据仓库分离开来,这样多一层所谓的展现层(presentationlayer),这些变通的设计都是可以接受的,只要符合企业本身分析的需求。

三、总结

kimball 模式:适合快速迭代,实施成本低,能够较快交付任务。这种模式非常适应互联网行业的高速发展,也适合中小型企业。

inmon模式:开发进度慢,实施成本高,适合对设计科学性和规范性较高的企业,在业务模式较固定的行业应用较好,比如金融和电信等行业。

原文地址:https://www.cnblogs.com/wenBlog/p/12401700.html