自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 ElasticSearch从入门到精通(简介和安装)

ElasticSearch简介ElasticSearch(ES)是基于Lucene构建的开源、分布式近实时的数据搜索和分析引擎。通过ES可以实时的完成大量数据的存储、搜索和分析等工作,而其分布式的特点使得通过简单添节点就可以扩展ES集群的处理能力。ES强大功能、易于使用等特点使得ES成为目前全球最受欢迎的全文数据搜索引擎。通常ElasticSearch,和Kibana和Logstash等软件一...

2020-04-23 17:42:39 551

原创 深入理解数据库之存储存引擎(存储文件格式)

前面的文章我们已经讨论了B树的基本结构和操作,现在我们来看看数据库系统中B树是怎样被存储到磁盘文件的。磁盘的访问和内存的访问方式是完全不同的,操作系统的虚拟内存机制使得应用程序可以透明的访问内存;而访问磁盘时需要借助系统调用并指定访问文件的位置,然后还要将文件的内容读取解析到内存中。当在设计高效的磁盘数据结构时必须考虑到以上这一区别。下面我们将讨论如何设计易于创建、修改和解析的文件格式,讨论设计...

2020-04-22 16:28:11 1077

原创 深入理解数据库之存储存引擎(B树)

二叉搜索树不适合应用到磁盘上,因为它的扇出数较低并且平衡时需要大量的节点重定位和指针更新。B树通过增加每个节点存储项的数量(高扇出)和减少频繁的平衡操作来解决这些问题。下面我们将讨论了B树的内部结构,B树的查找、插入和删除操作算法概要,以及用于保持B树平衡的拆分和合并操作。B树实际上是平衡二叉树的扩展,不同之处在于B树具有更大的扇出数(即更多的子节点)和更低的树高。前文讨论二叉树时节点以圆形表示...

2020-04-22 16:24:51 894

原创 深入理解数据库之存储存引擎(二叉搜索树)

B树是数据库存储引擎使用的最多的存储结构之一。许多开源数据库系统也都大量使B用树作为存储结构,多年来已经证明它们能够胜任大多数使用场景。早在1971年鲁道夫·拜尔(Rudolph Bayer)和爱德华·M·麦克立特(Edward M. McCreight)就提出了B树这种数据结构,并受到广泛的应用。到1979年,B树已经发展出了许多变种形式。在深入讨论B树之前,让我们首先讨论一下传统搜索树,例...

2020-04-22 16:21:54 413

原创 深入理解数据库之存储存引擎(数据和索引)

上一篇文章(参见文末链接)介绍了数据库系统体系架构,基于内存与磁盘存储的数据库管理系统的差异,以及行式存储和列式存储数据系统。这篇文章就要介绍数据库系统的数据文件和索引文件。数据文件和索引文件数据库系统的主要目的是存储数据和快速检索数据。但是数据该如何存储才能实现快速检索呢?是使用文件来存储数据吗?答案是数据库系统确实使用文件来存储数据,但是数据会以特殊的格式来保存到文件中。特殊的存储格式可以...

2020-04-22 16:18:38 759

原创 深入理解数据库之存储存引擎(数据库体系架构)

数据库管理系统有着众多不同的应用场景:有些用于存储临时热数据,有些用于长期存储数据,有些用于对数据进行复杂查询和分析,有些仅允许通过键访问对应的值,有些经过优化用于存储时间序列数据,有些则能高效地存储了较大的Blob。为了理解数据库管理系统的这些差异,下面我们首先从简单的数据库分类开始介绍。我们还会简要介绍数据库管理系统的体系结构,讨论构成数据库管理系统的各个组件及其职责;接下来,我们将讨论基于...

2020-04-22 16:09:38 886

Python爬虫入门,快速抓取大规模数据(完结篇)

前面的几篇文章讲解了爬虫的基本原理,并使用了一些代码来做演示。这是爬虫系列的最后一篇,这篇文章会对前面的内容总结一下,没有新的内容。Python基本环境的搭建,爬虫的基本原理以及爬虫的原型Python爬虫入门(第1部分)如何使用BeautifulSoup对网页内容进行提取Python爬虫入门(第2部分)爬虫运行时数据的存储数据,以SQLite和MySQL作为示例Python爬虫入门(第3部分)使用...

2018-07-08 00:42:38 3346

Python爬虫入门,快速抓取大规模数据(第六部分)

在前面的章节中,我们以尽量少的代码演示了爬虫的基本原理。如果只是需要抓取一些简单的数据,那么我们修改一下前面的代码就可以完成任务了。但是当我们需要完成一些复杂的大型抓取任务时,我们就需要考虑更多东西,例如爬虫的可扩展性,抓取效率等。现在让我们再回顾一下我们抓取的过程:从待下载URL列表取出URL;构造和发送HTTP请求下载网页;解析网页提取数据,解析网页提取URL并加入待下载列表;存储从网页提取的...

2018-07-08 00:38:28 693

原创 Python爬虫入门,快速抓取大规模数据(第五部分)

通过前面几部分我们已经可以写出一个简单的爬虫了。不幸的是,如果连续运行它一段时间你就会发现,爬虫已经被网站封掉了。通常网站都会有一定的反爬虫策略,以避免爬虫给网站带来太大的负载。而我们前面的爬虫示例中,我们每秒就抓取一张网页,过于频繁的抓取已经触发了网站的反爬虫机制。 这一部分里我们主要讨论一下如何避免触发网站的反爬虫机制,当然我们在实现我们自己的爬虫时也应该考虑如何避免给网站带来太大的影响。反...

2018-06-09 07:06:40 324

原创 Python爬虫入门,快速抓取大规模数据(第四部分)

如果没有读过前两部份的读者,建议先看前面几部份: Python爬虫入门,快速抓取大规模数据 Python爬虫入门,快速抓取大规模数据(第二部分) Python爬虫入门,快速抓取大规模数据(第三部分)当前大部分网站都使用JS动态的加载内容,浏览器执行JS并生成网页内容。因为Python的requests库不会像浏览器一样执行JS,所以抓取到的内容并不是最终网页呈现内容。...

2018-05-27 09:31:18 689

原创 Python爬虫入门,快速抓取大规模数据(第三部分)

如果没有读过前两部份的读者,建议先看前两部份: Python爬虫入门,快速抓取大规模数据(第一部分) Python爬虫入门,快速抓取大规模数据(第二部分)在这一部份我们将看看如何存储数据。需要存储的数据有两部份,一部分是我们已经抓取和未被抓取的网页地址;另一部不份是我们抓取到的数据。首先想到的存储方式是使用关系数据库来存储。在关系数据库中,表是数据库中存放关系数据的集合...

2018-05-20 09:42:08 530

原创 Python爬虫入门,快速抓取大规模数据(第二部分)

通过第一部分的练习,我们已经有了一个可运行的爬虫。这一部分我们详细的看看如何使用BeautifulSoup从网页中提取我们需要的数据,学习的目标是能够使用BeautifulSoup从网页中提取任意的数据。HTML文档和CSS选择器我们知道我们抓取回来的网页是由HTML和CSS构成,HTML文档对象模型(DOM)将HTML文档表达为树结构。而提取网页特定数据实际上就是按照指定的特征匹配文档树...

2018-05-12 08:47:54 744 1

原创 Python爬虫入门,快速抓取大规模数据

大到各类搜索引擎,小到日常数据采集,都离不开网络爬虫。爬虫的基本原理很简单,遍历网络中网页,抓取感兴趣的数据内容。这篇文章会从零开始介绍如何编写一个网络爬虫抓取数据,然后会一步步逐渐完善爬虫的抓取功能。 我们使用python 3.x作为我们的开发语言,有一点python的基础就可以了。 首先我们还是从最基本的开始。工具安装我们需要安装python,python的requests和B...

2018-05-06 17:23:50 1106

原创 [AngularJS2]AngularJS2应用启动过程

从浏览器访问Angular应用时,首先是index.html页面被加载。<!doctype html><body> <app-root></app-root> <script type="text/javascript" src="inline.bundle.js"> </script><script type="text/javascript" src="polyfills.bund

2017-12-08 12:39:50 630

翻译 【ProgrammingMicrosoftAzureServiceFabric】第四章: Actor模式

第4章: Actor模式过去几十年里我们从面向对象编程(OOP)中学习到许多问题可以被建模为一些拥有行为和状态的交互对象。Actor模式更进了一步,把问题建模为独立的并通过消息交互的Agent。Actor模式(也称为Actor 架构或Actor 模型)提供了一个强大的工具来抽象复杂的分布式系统。在分布式系统中大量的Agent在一起工作,并不需要任何中心治理。Agent是自给自足的,根据它们收到的消息

2017-09-14 13:22:31 1187

翻译 【ProgrammingMicrosoftAzureServiceFabric】第三章: 有状态服务

第三章. 有状态服务如第一章所述,许多服务本身就有状态,无论多高效和可靠,状态的管理都是挑战。 本章会首先指出在分布式系统中状态管理的困难点,然后再阐述Service Fabric是怎样解决这些问题的。 理解了其中的原理之后,会列出一系列实例来指导读者一步步创建有状态服务。Service Fabric状态管理在分布式环境尤其是大型的分布式环境中,任何的消息都有可能丢失,任何节点都可能发生故障,任何的

2017-05-12 15:33:54 2675

翻译 【ProgrammingMicrosoftAzureServiceFabric】第二章: 无状态服务

第二章: 无状态服务在第一章我们已经实现了一个不处理任何用户请求的后台服务。虽然后台服务非常有用,但是大多数服务需要接受并处理用户的请求。本章我们将学习如何使用无状态服务处理用户请求。首先我们会学习如何添加ASP.NET 5 Web服务到我们的应用;接下来,我们将学习如何为我们的服务实现一些通用的通信栈来处理不同协议的客户端请求。实现ASP.NET 5应用基于云的应用通常都会有Web前端,所以Ser

2017-05-12 15:24:58 1647

翻译 【ProgrammingMicrosoftAzureServiceFabric】第一章:Hello, Service Fabric

第一章: Hello, Service Fabric这是一本关于微软Azure Services Fabric的书。微软的Azure Services Fabric是一个分布式系统平台,它能让我们轻松的创建大规模,高可用,低延迟和易于管理的服务。Service Fabric的技术也在一些云级别的应用中得到了应用,如Cortana, Skype for Business和SQL databases。在

2017-04-20 14:00:51 3852 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除