描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787519856779
大规模数据仓库、数据分析和机器学习.
你是否需要从PB级数据中获取洞察,你是否希望构建协作、敏捷的工作空间?本书是Google BigQuery的规范参考书,它的存储系统可以帮助你整合企业的全部数据,其查询引擎可以支持对大型数据集的交互式分析和机器学习。BigQuery帮助企业在一个便捷的框架中有效地存储、查询、导入数据,并从中学习。
本书作者提供了在基于serverless、自动扩缩容的公共云上建立现代数据仓库的实践。无论你是想更全面地了解BigQuery,还是想专注于特定的任务,这份详尽的指南都必不可少。
“BigQuery改变了企业思考数据的方式。Jordan和Lak是了解BigQuery的人,本书是学习BigQuery的途径。”
——Lloyd Tabb
Looker公司联合创始人及首席技术官
本书的主要内容有:深入探讨BigQuery的内部工作方式,包括其整体架构。学习BigQuery支持的数据类型、函数和运算符。优化查询语句和schema,从而提高性能或降低成本。使用标准SQL中高级功能,如GIS、历史快照、DDL/DML、用户定义函数和脚本。使用BigQuery ML解决各类机器学习问题。学习如何保护数据、监控作业,以及授权用户。
目录
前言 . 1
第1 章 Google BigQuery 是什么 . 7
数据处理架构 7
关系数据库管理系统 9
MapReduce 框架 .10
BigQuery: 一个Serverless、分布式 SQL 引擎 11
使用BigQuery 13
从数据集中获得洞察 .13
ETL、EL 和ELT .15
强大的分析能力 17
易于管理 .19
BigQuery 起源 20
是什么使BigQuery 成为可能? 23
计算和存储分离 23
存储和网络基础设施 .24
存储托管 .26
与Google Cloud Platform 集成 27
安全与合规.28
小结 .29
第2 章 基础查询语法 . 31
简单查询 32
使用SELECT 检索行 33
使用AS 给列设置别名 .35
使用WHERE 进行过滤 .36
SELECT *、EXCEPT 和REPLACE 38
带WITH 的子查询 .39
使用ORDER BY 进行排序 40
聚合 .40
使用GROUP BY 计算聚合 40
使用COUNT 统计记录数 42
使用HAVING 过滤分组项 .42
使用DISTINCT 查找值 .43
数组与结构体简介 45
使用ARRAY_AGG 创建数组 46
结构体数组.49
元组 50
使用数组 .50
UNNEST 数组 51
Join 表 52
Join 释疑 .53
内连接 56
交叉连接 .57
外连接 59
保存和分享 60
查询历史记录和缓存 .60
已保存的查询 62
视图与分享查询 63
小结 .63
第3 章 数据类型、函数和运算符 65
数值类型和函数 66
数学函数 67
标准兼容的浮点除法 .68
SAFE 函数 68
比较 69
使用NUMERIC 进行精确的十进制计算 70
使用BOOL 72
逻辑运算符.72
条件表达式.74
使用COALESCE 进行更简洁的NULL 处理 74
显式类型转换和隐式类型转换 76
使用COUNTIF 避免对Boolean 值进行显式类型转换 78
字符串函数.79
国际化 80
打印和解析.82
字符串操作函数 83
转换函数 .83
正则表达式.84
字符串函数总结 85
使用TIMESTAMP 86
解析和格式化时间戳 .87
提取日历信息的各部分 88
时间戳运算.89
Date、Time 和DateTime 90
使用GIS 函数.91
小结 .92
第4 章 将数据加载到BigQuery . 95
基础知识 96
从本地数据源加载 .96
指定Schema 104
复制到新表107
数据管理(DDL 和DML) 108
高效加载数据 . 110
联邦查询和外部数据源 113
如何使用联邦查询 113
何时使用联邦查询和外部数据源 . 118
Google Sheets 数据的交互式探索与查询 .126
对Cloud Bigtable 数据进行SQL 查询 136
传输和导出 142
数据传输服务 .142
导出Stackdriver 日志 .148
使用Cloud Dataflow 读/ 写BigQuery 150
迁移自有数据 155
小结 158
第5 章 使用BigQuery 进行开发 161
以编程的方式进行开发 161
通过REST 接口使用BigQuery .161
Google Cloud 客户端库 .170
通过数据科学工具访问BigQuery .189
Google Cloud Platform 上使用Notebook .190
使用BigQuery、pandas 和Jupyter .195
通过R 使用BigQuery 200
Cloud Dataflow 202
JDBC/ODBC 驱动 205
将BigQuery 数据导入Google Slides(G 套件).206
通过Bash 脚本使用BigQuery .208
创建数据集和表 209
执行查询 212
BigQuery 对象 214
小结 216
第6 章 BigQuery 架构 219
高层架构 219
查询请求的生命周期 220
BigQuery 升级 225
查询引擎 Dremel 225
Dremel 架构 227
查询执行 233
存储 249
数据存储 249
元数据 256
小结 266
第7 章 性能与成本优化 . 267
需要遵循的原则 .267
影响性能的主要因素 268
控制成本 268
度量和故障排除 .270
使用 REST API 衡量查询速度 271
使用BigQuery Workload Tester 测量查询速度 .273
使用Stackdriver 排除任务故障 .275
读取查询计划信息 277
提高查询速度 .282
小化I/O 284
缓存历史查询结果 .289
执行有效连接 .293
避免压垮worker303
使用近似聚合函数 307
HLL 函数 .309
优化数据的存储和访问方式 . 311
小化网络开销 311
选择有效的存储格式 315
通过表分区减少扫描量 .325
基于高基数键的聚簇表 .329
时间不敏感的用户场景 333
批处理查询334
文件加载 335
小结 336
第8 章 高级查询 339
可复用查询 339
参数化查询340
用户自定义SQL 函数 346
复用部分查询 .351
高级SQL 355
使用数组 356
窗口函数 366
表元数据 373
数据定义语言和数据操作语言 376
扩展SQL 383
JavaScript UDF 383
编写脚本 385
高级函数 393
BigQuery 地理信息系统 393
常用的统计函数 401
哈希算法 403
小结 407
第9 章 BigQuery 中的机器学习 409
什么是机器学习 .409
设计机器学习问题 410
机器学习的种类 412
构建回归模型 415
选择标签 415
探索数据集以寻找特征 .416
租车点的影响 .417
创建训练数据集 420
训练和评估模型 421
用模型预测423
检查模型权重 .426
更复杂的回归模型 428
构建分类模型 433
训练 .434
预测 .437
选择阈值 437
自定义BigQuery ML 439
控制数据分割 .439
平衡类别 441
正则化 442
k-Means 聚类 443
什么在被聚集? 443
聚类自行车租赁点 444
进行聚类 446
理解聚类 446
数据驱动决策 .449
推荐系统 449
MovieLens 数据集 450
矩阵分解 451
进行推荐 453
整合用户和电影信息 456
在GCP 上自定义机器学习模型 .463
超参数调整463
AutoML .468
Tensorflow 支持 469
小结 474
第10 章 BigQuery 安全管理 477
安全基础设施 477
IAM 479
身份验证 479
角色 .480
资源 .483
管理BigQuery .484
作业管理 484
授权用户 485
恢复已删除的记录和表 .485
持续集成/ 持续部署 486
成本、账单报表 489
仪表板、监控和审计日志 492
可用性、故障恢复和加密 .493
Zone、区域(Region)和多区域 .494
BigQuery 故障处理 .494
持久化、备份和故障恢复 498
隐私和加密499
监管与合规 500
数据本地化500
限制对数据子集的访问 .501
删除与单个个人相关的所有交易 .505
数据丢失预防 .510
CMEK 510
数据渗漏保护 .513
小结 514
作者介绍 515
封面介绍 515
前言
现如今,越来越多的企业都是数据驱动的,而数据仓库则是任何数据战略的关键组成之一,它是整个公司数据的中央存储库。数据仓库通常被数据分析人员用来创建分析报告,但现在它也越来越多地被用于生成实时仪表盘、执行即席查询,以及通过预测分析提供决策指导。由于存在这些高级分析需求,以及逐渐向成本可控、敏捷和自助数据访问转变的趋势,许多组织正转向基于云的数据仓库,如Google BigQuery。
在本书中,我们将全面介绍BigQuery,它是基于serverless 的、高度可伸缩、低成本的企业数据仓库,可在Google Cloud 上使用。由于不需要管理基础设施,企业可以专注于数据分析,通过使用熟悉的SQL 找到有意义的洞察。
BigQuery 设计的初衷就是为了提供一个数据平台,该平台不仅能够提供前沿的技术能力,能充分利用云环境中现有的优秀技术,还支持至今仍可靠适用的各种数据技术。例如,Google 的BigQuery 是一种serverless 的计算架构,它实现了计算和存储分离。这使得架构中的不同层能够独立地运行和扩展,让数据开发人员在设计和部署方面具备了灵活性。BigQuery 有一些独特的功能,它支持本地机器学习和地理空间分析。通过Cloud Pub/Sub、Cloud Dataflow、Cloud Bigtable、Cloud AI Platform 和许多第三方集成工具,BigQuery 可以与传统及现代系统交互,并满足各类吞吐量和延迟需求。此外,BigQuery 还支持ANSI 标准的SQL、列优化和联邦查询,这些特性是实现用户自助式、即席数据分析的关键。
读者对象
本书面向数据分析师、数据工程师和数据科学家,帮助他们使用BigQuery 从大数据集中获得见解。数据分析师可以通过SQL、仪表板工具(如Looker、Data Studio 和Tableau)与BigQuery 交互。数据工程师可以借助Apache Spark 和Apache Beam 等框架,用Python 或Java 编写数据pipeline,并将其与BigQuery集成。数据科学家可以在BigQuery 中构建机器学习模型,对BigQuery 中的数据运行TensorFlow 模型,并在Jupyter notebook 译注1 中委托BigQuery 执行分布式大规模运算。
排版约定
在本书中,使用以下排版约定:
斜体字(Italic)
表示新名词、URL、电子邮件地址、文件名以及文件扩展名。
等宽字体(Constant width)
表示程序代码,以及在正文中引用变量、函数名称、数据类型、环境变量、语句、关键字等代码中的元素。还用于展示命令和命令行的输出。
等宽黑体(Constant width bold)
表示需要用户输入的命令或其他文本。
等宽斜体(Constant width italic)
需要替换成用户自定义的值或根据上下文决定的值。
使用示例代码
本书的目的是帮助你完成工作。本书中使用的示例代码可以从GitHub(https://github.com/GoogleCloudPlatform/bigquery-oreilly-book)中找到。
总的来说,你可以在自己的程序或文档中使用本书所提供的示例代码。如果不是对这些代码进行大规模的分发,就不需要联系我们获取授权。比如,编写一个程序,使用了本书中几段示例代码是不需要授权的。出售或分发包含O’Reilly图书完整示例代码的CD-ROM 则需要授权。引用书中的部分内容或示例代码来回答问题不需要授权。在你的产品文档中包含本书中大量的示例代码则需要授权。
我们不强制要求署名,但如果你这么做,我们深表感激。署名一般包括书名、作者、出版社和书号(ISBN)。例如:“Google BigQuery: The Definitive Guide by Valliappa Lakshmanan and Jordan Tigani (O’Reilly). Copyright 2020 Valliappa Lakshmanan and Jordan Tigani, 978-1-492-04446-8.”。
如果你觉得对示例代码的使用超出了合理的方式或上述许可范围,可以与我们联系:[email protected]。
Kubernetes 清单文件、代码示例和其他在本书中使用的脚本都可以从GitHub 获取。你可以复制这些代码仓库,按照不同的章节和内容,直接使用这些代码。
O’Reilly 在线学习平台(O’Reilly Online Learning)
近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们有一群独家专家和创新者,他们通过图书、文章、会议和在线学习平台分享知识和技术。O’Reilly 的在线学习平台提供按需访问的直播培训课程、详细的学习路径、交互式编程环境,以及由O’Reilly 和其他200 多家出版社出版的书籍和视频。详情请访问http://oreilly.com。
联系我们
任何有关本书的意见或疑问,请按照以下地址联系出版社。
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
奥莱利技术咨询(北京)有限公司
我们为本书提供了一个网页,上面有勘误表、示例和其他相关的信息,请访问:https://oreil.ly/google_bigquery_tdg。
有关本书的建议或者技术问题,请发邮件到 [email protected]。
有关其他图书、讲座、会议、新闻的信息,请访问我们的网站:http://www.oreilly.com。
我们的Facebook:http://facebook.com/oreilly。
我们的Twitter:http://twitter.com/oreillymedia。
我们的YouTube:http://www.youtube.com/oreillymedia。
致谢
我们(Lak 和Jordan)非常幸运,感谢Elliott Brossard、Evan Jones、Graham Polley、Rebecca Ward 和Tegan Tigani 审核了本书的每一章,并提出了大量改进建议。Elliott 确保了SQL 语句简洁干净。Evan 在Google Finance 中使用BigQuery 的经验让我们受益。Graham 在许多涉及成本和区域化的讨论中,为我们带来了有价值的客户视角。Rebecca 让我们实事求是,Tegan 确保我们的语言简单明了。除了这五位,许多Google 工程师(Chad Jennings、Haris Khan、Misha Brukman、Daniel Gundrum、Mosha Pashumansky、Amir Hormati 和Mingge Deng)在他们的专业领域也审核了部分手稿。当然,任何遗留的错误都是我们造成的。
我们还要感谢我们各自的家人、同事和经理(Rochana Golani 和Sudhir Hasbe)的支持。感谢O’Reilly 的编辑NicoleTaché 和Kristen Brown,很高兴与你们合作。感谢我们的文字编辑Bob Russell,你敏锐的观察力让本书质量得到了很大的提升。感谢Saptarshi Mukherjee,本书是你的创意,正是你促使我们两人合作编写了这本BigQuery 新书。后,感谢BigQuery 的用户(和竞争对手),是你们推动着我们优化BigQuery,同时也感谢BigQuery 工程团队奇迹般地将其实现。我们将这本书100% 的版税捐赠给我俩共同参与的金县(King County)联合慈善机构。我们强烈建议你参与当地慈善机构的捐赠、志愿者活动,采取行动帮助解决社区面临的严峻挑战。
评论
还没有评论。