阅读第一部分
数据管理
强大的数据治理是Twitter Engineering的主要宗旨。在将BigQuery实施到平台中时,我们将重点放在数据发现,访问控制,安全性和隐私性上。
在数据发现和管理方面,我们扩展了数据访问层(DAL),以提供用于本地数据和Google Cloud数据的工具,并为用户提供单个接口和API。随着Google数据目录向通用性发展,我们会将其包含在我们的项目中,以为用户提供诸如列搜索之类的功能。
BigQuery使共享和访问数据变得容易,但是我们需要一些控制来防止数据泄露。在其他工具中,我们选择了两个功能:
我们已经实现了身份验证,授权和审核(AAA)安全要求,如下所示:
- 身份验证:我们将GCP用户帐户用于临时请求,将服务帐户用于工作请求。
- 授权:我们要求每个数据集都有一个所有者服务帐户和一组读者。
- : BigQuery, , BigQuery .
为了确保正确处理Twitter用户的个人数据,我们必须注册所有BigQuery数据集,注释个人数据,保持适当的存储并删除(清理)用户已删除的数据。
我们审查了Google Cloud Data Loss Prevention API,该API使用机器学习来分类和编辑敏感数据,但由于准确性而选择手动注释数据集。我们计划使用Data Loss Prevention API来补充自定义注释。
在Twitter上,我们为BigQuery数据集创建了四个隐私类别,以下按敏感度从高到低的顺序列出:
- . , .
- ( ) (Personally Identifiable Information — PII) . . , , , , .
- , . , .
- ( Twitter) Twitter.
在注册之前,我们使用计划任务枚举BigQuery数据集并将其注册到Twitter的元数据存储数据访问层(DAL)中。用户将使用机密性信息以及保留期限来注释数据集。至于清理,我们估算了两种选择的性能和成本:1.使用诸如Scalding之类的工具清理GCS中的数据集并将其加载到BigQuery中;2.使用BigQuery DML运算符。我们可能会结合使用这两种方法来满足不同组和数据的需求。
系统功能
由于BigQuery是一项托管服务,因此无需让Twitter的SRE团队参与系统管理或值班职责。为存储和计算提供更大的容量很容易。我们可以通过在Google支持中创建票证来更改广告位预订。我们确定了可以改进的地方,例如自助服务的广告位分配和更好的监控仪表板,并将这些请求传递给了Google。
成本
我们的初步分析表明,BigQuery和Presto的查询成本处于同一水平。我们以固定价格购买了插槽,以保持稳定的每月成本,而不是按需购买TB的已处理数据。该决定还基于不想在提出每个请求之前考虑费用的用户的反馈。
在BigQuery中存储数据不仅带来了GCS成本,还带来了成本。缩放等工具需要GCS中的数据集,并且要访问BigQuery,我们必须将相同的数据集加载为BigQuery电容器格式... 我们正在与BigQuery数据集建立扩展连接,这将消除在GCS和BigQuery中存储数据集的需求。
对于极少需要数十PB的罕见请求的情况,我们认为在BigQuery中存储数据集并不划算,并使用Presto直接访问GCS中的数据集。为此,我们正在研究BigQuery外部数据源。
下一步
自alpha版本发布以来,我们注意到BigQuery引起了人们的极大兴趣。我们正在向BigQuery添加更多数据集和更多命令。我们正在开发用于数据分析工具的连接器,例如扩展以读取和写入BigQuery存储。我们正在研究诸如Looker和Apache Zeppelin之类的工具,这些工具可使用BigQuery数据集生成公司质量报告和注释。
与Google的合作非常有效,我们很高兴继续并发展这种合作关系。我们与Google合作实施了自己的合作伙伴问题跟踪工具,以直接向Google发送请求。其中一些功能(例如BigQuery Parquet下载器)已由Google实现。
以下是我们对Google的一些高优先级功能要求:
- 用于轻松提取数据并支持LZO-Thrift格式的工具。
- 每小时细分
- 访问控制改进,例如表,行和列级别的权限。
- 具有Hive Metastore集成并支持LZO-Thrift格式的BigQuery外部数据源。
- BigQuery UI中改进的数据目录集成
- 用于插槽分配和监控的自助服务。
结论
以安全的方式使数据分析,可视化和机器学习民主化是Data Platform团队的首要任务。我们将Google BigQuery和Data Studio确定为可以帮助我们实现这一目标的工具,并于去年为整个公司发布了BigQuery Alpha。
我们发现BigQuery查询既简单又有效。我们使用Google工具处理简单的管道来接收和转换数据,但是对于复杂的管道,我们必须创建自己的Airflow基础架构。在数据管理中,用于身份验证,授权和审核的BigQuery服务可以满足我们的需求。我们需要很大的灵活性来管理元数据和维护机密性,并且我们必须构建自己的系统。 BigQuery是一项托管服务,易于使用。请求的费用与现有工具相似。除了GCS的费用外,在BigQuery中存储数据还产生了费用。
总体而言,BigQuery在常规SQL分析方面表现良好。我们看到了对BigQuery的浓厚兴趣,并且我们正在努力迁移更多的数据集,引入更多的团队,并使用BigQuery建立更多的管道。Twitter使用各种数据,这需要混合使用Scalding,Spark,Presto和Druid等工具。我们打算继续建立我们的数据分析工具,并就如何最好地使用我们的产品向用户提供明确的指导。
感谢的话
我要感谢我的合作者和队友Anjou Jha和Will Pascucci在此项目上的出色合作和辛勤工作。我还要感谢来自Twitter和Google上几个团队的工程师和经理,他们为我们提供了宝贵的反馈,并为我们和BigQuery Twitter用户提供了帮助。
如果您对执行这些任务感兴趣,请查看我们在数据平台团队的职位空缺。
DWH数据质量-数据仓库一致性