Python大数据架构全栈开发与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

为什么要写这本书

在企业技术开发实践中,往往存在众多技术栈。开发者可根据开发需求,选择不同技术栈及技术栈的组合,以快速、高效、稳健地开发应用程序和系统。

在众多技术栈中,Python由于拥有众多独特优势,已经成为事实上的核心开发语言之一。围绕Python的开发生态、组件、第三方库也异常丰富,因此它能够适应几乎所有的开发需求和场景。

Python技术栈的独特优势

开源特性。开源意味着可以应用于任何用途且无须付费,包括Python自身,以及第三方库、组件等。

多平台支持。Python支持Windows、Linux、macOS等多种系统和平台,并且是Linux和UNIX系统的预置语言。这种特性对跨系统、跨环境、跨应用、异构环境下的开发、迁移、部署等工作至关重要。

高效的开发效率。Python语言语法简单、优美,因此更加易于开发。在相同的功能需求下,Python的开发效率非常高,这意味着在相同时间内,Python可以完成更多的开发项目。

数据科学与人工智能生态。Python拥有众多的数据科学和人工智能框架、系统、库,这使得它成为最受欢迎的数据科学工作语言之一。

胶水特性。从功能上看,Python可以开发任何应用程序,但这并不意味着Python在所有开发场景下都是最优选择。而Python可以通过多种API、集成库来连接、调用不同的语言、系统和开发框架,这使得Python开发者可以在最合适的场景下选择最合适的技术组件,如统计工作调用R语言、使用PySpark在Spark框架上开发大数据应用等。

Python的最佳实践和应用场景

数据科学和人工智能。在数据科学和人工智能领域,Python几乎是最流行、工业界使用最广泛的开发语言。除此之外,几乎没有其他选择。例如,TensorFlow、PyTorch等深度学习框架就是基于Python开发实现封装的。

大数据开发。企业中流行的大数据框架,如Hadoop、Spark、Flink等均提供了Python API,这使得Python开发者可以通过Python程序实现大数据系统和应用的开发,如使用Spark开发推荐系统、精准营销投放系统等。

数据分析。数据分析、统计学等是企业数据化运营必不可少的技术支撑。Python的Pandas、SciPy、Statistics、Bokeh、PyECharts、Matplotlib等库提供了众多数据统计分析、数据处理、数据可视化等功能,简单易用、美观大方。

IT运维。Python可以通过多种方式与系统交互,基于众多的Python第三方库提供了丰富的、针对集群的环境配置、程序部署、持续集成、测试等功能,如Ansible的自动化脚本、psutil的服务器监控等。另外,像AWS等云服务商也都提供了Python相关库开发来管理云服务和基础设置。

Web开发。在Web开发领域,Django、Flask是使用较广泛的开发框架,只需少量代码即可快速构建Web应用服务。

网络爬虫。在网络爬虫方面,Python提供的Requests、Httpx、Scrapy、Pyspider等众多HTTP库及分布式爬虫框架可以满足多种数据抓取需求。配合Python的多线程等工作模式,抓取效率非常高。

本书特色定位

在图书市场,已经出版了众多关于Python的技术类图书,但大多数都在介绍技术细节,如框架、入门代码、参数、简单示例等,往往让普通的开发者只关注技术实现和细节,即如何编程及如何更好地编程。长此以往就会出现“一叶障目,不见泰山”的问题。

在高级开发者和架构师视角中,他们首先关注的是场景和需求是什么,什么框架和组件最合适,如何实现技术迭代和升级,如何实现应用扩展和二次开发,如何平衡技术性能、稳定性、开发效率、运维便利性、技术趋势及成本等。本书的核心价值就在于此。

我希望开发者既拥有全面的视野和格局,又拥有技术编程和开发落地的本领。这也是写作本书的初衷。

读者对象

高等院校的在校学生。在出校门前就掌握Python的核心技能能帮助学生在激烈的职场竞争中脱颖而出。尤其在从事与大数据、数据分析、数据学习和人工智能相关的工作时,Python是必须要掌握的技能。

数据运营人员。企业的数据运营人员包括数据专员、数据分析师、DBA、业务分析师等。在数据运营中,往往涉及大量的数据收集、处理、分析等工作,使用Python能满足更多的场景、更大的数据量级、更复杂的数据格式的处理需求。

Python开发者。作为一名Python开发者,拥有全栈技能不仅能帮助自己提升技术水平/竞争力,还能在职业成长路上更好地规划和设计未来的成长曲线;借助Python实现大数据和人工智能的全栈式开发,未来会更加光明。

希望转型为Python开发者的读者。如果您以前已经熟练使用Java、C、.NET甚至PHP等语言开发其他应用程序和框架,相信您只需几个小时就能熟练使用Python的基本语法。要了解Python全栈式、全生态的开发技术,本书会助您一臂之力。

如何阅读本书

本书介绍了如何使用Python实现企业级的大数据全栈式开发、设计和编程工作,涉及数据架构整体设计、数据源和数据采集、数据同步、消息队列、关系数据库、NoSQL数据库、批处理、流处理、图计算、人工智能、数据产品开发核心技术领域。从工作流程上看,这些内容是按照企业数据工作流程编写的,因此,如果您之前没有接触过完整的数据工作流程,推荐您从头开始学习和阅读本书。

如果您已经对企业级的数据流程非常熟悉,那么可以直接选择对应章节,查看所需的知识内容。需要注意的是,对于相同的内容,不同章节不会重复介绍,因此您可能需要翻阅前面对应的章节(书中均会标注)。

本书每章的知识脉络都是按照基本概念、应用场景、技术介绍、技术选型对比、代码实操、项目案例和常见问题的思路组织的。

勘误和支持

由于作者水平有限,加之撰稿时间有限,书中难免会存在疏漏,恳请读者批评指正。读者可通过以下途径联系并反馈建议或意见。

微信沟通,即时通信:本书已经建立讨论群,读者可先添加我的个人微信(TonySong2013)反馈问题,同时我会将读者添加到本书的讨论群中。

电子邮件:发送E-mail到517699029@qq.com。

网站留言:在“触脉咨询”网站或公众号留言。

致谢

在本书的写作过程中,我得到了来自多方的指导、帮助和支持。

首先,感谢王晓东先生和柳辉先生。王晓东先生和柳辉先生作为“触脉咨询”的创始人,在企业高速发展期间,力邀我加入并委以重任,同时在业务探索中给予了极大的信任和试错空间,这使我具备了写作本书的知识基础、项目经验及实战沉淀。

其次,感谢在“触脉咨询”新业务探索过程中与我一起奋斗的张默宇、张璐、许曼、白迪、张伟松等伙伴。本书的写作离不开大家一起参与、实施和策划的项目经验,特别是张伟松,还参与了本书大量内容的写作。因为有你们,我才有更大的想象空间,以及更好的、可实现的未来。

再次,感谢电子工业出版社的符隆美老师。符隆美老师不仅邀请我来写作此书,并为此提供了方向和思路指导。另外,感谢全程参与审核、校对等工作的出版社的其他老师,以及其他在背后默默给予支持的出版工作者,你们的辛勤付出保证了本书的顺利出版。

最后,感谢我的家人和朋友,特别是我的夫人姜丽女士,是她在我写书的这段时间把家里的一切料理得井井有条,使得我有精力完成本书的写作。

谨以此书献给热爱数据工作并为之奋斗的朋友,愿大家身体健康、生活美满、事业有成。

宋天龙(Tony Song)