根据求职人员的反馈,分析各家公司的数据基础设施
经过
由于当前项目需要对数据进行整理以方便处理,我们考虑引入ETL工具。同时为了调研,从招聘广告中提取出各公司正在构建的数据基础设施。
招聘广告是通过使用indeed搜索”数据分析基础工程师”的结果作为参考。
顺便提一下,当前项目的数据量和所需的ETL工具要求如下:
数据量
-
- 対象のデータはECサイトのデータ
-
- 購入テーブルの総件数は100万件、500MB(月6万件増える)
- 一番大きいテーブルはimpressionテーブルの総件数は1億件、25GB
ETL的要求
-
- エンジニアの数が少ないので運用負荷が低い必要がある
-
- 処理時間を短くしたいので、データは差分更新したい
-
- タスクの並列実行ができる
-
- リトライ、再実行が簡単にできる
- エンジニアの運用工数を低くする為に、データ定義の追加・変更が簡単にできるといい(非エンジニアでもできると最高)
软银技术
【必須要件】
- テーブル設計からSQL開発経験3年以上
- talend、商用ETLツールなどを用いてデータ変換やデータ最適化
作業を行った経験がある方
【歓迎要件】
- データ基盤および関連ミドルウェアの経験
(fluentD, Hadoop/Spark, ElasticSearch, Kafka, etc)
- NoSQLデータベースの経験(SQL, Oracle, MongoDB, Cassandra, etc)
- パブリッククラウドサービスの経験(Azure, AWS)
- アプリケーションの経験(Pyshon, C#, Ruby, etc)
根据所述的流程,数据似乎是通过 Fluentd → Kafka → Hadoop/Spark → DB 进行处理的。
收集到的日志数据经过 Fluentd 后会在分布式消息框架 Kafka 中流动,然后在分布式处理框架 Hadoop 或 Spark 中进行处理。
通过引入 Kafka,可以统一处理各种类型的数据,并实现从批处理/流处理系统中读取相同的数据。
我认为 ElasticSearch 主要用于实时日志分析。
据说Talend是一种可以免费使用的ETL工具。
由于可以使用GUI创建作业,所以即使非工程师也可以创建数据转换的定义。
另外,据说还可以选择多种存储介质作为输出目标,包括Bigquery、Redshift和S3。
请提供更多上下文,以便我们更准确地进行翻译。
【技術要素】
- Spark/Storm/Prestoなどリアルタイムテクノロジー実装のご経験
- MesosなどApacheトップレベルプロジェクト製品の導入のご経験
- ITIL/EA/TOGAFなどのフレームワークの導入・運用のご経験
- MDM(マスターデータマネジメント)導入・運用のご経験
- R/SAS/SPSSなどの分析ツールのご経験
【望ましい要件】
- DWH製品やHadoopなどビッグデータ処理製品の経験
- Webシステムなどのプログラム開発経験
- システムの企画、営業、プリセールス経験
据看起来,数据的批处理使用了Hadoop和Spark,而在Spark的集群管理上使用的是Mesos,而非YARN。在处理实时数据的情况下,使用了能够进行并行分布式处理的Storm来处理流数据。在数据获取部分,似乎使用了能够通过类似SQL的查询快速获取数据的Presto。
我印象中正在建立一个针对大规模数据处理的高速且具备高可靠性的数据基础设施。
招聘生活方式
【必須要件】
- ビッグデータ基盤(RedShift、BigQuery、Hadoop等)の経験がある方
- AWS/GCPを用いた環境構築の経験
【歓迎要件】
- dockerなどコンテナを用いた開発経験
- terraform,ansibleなど構成管理ツールの使用経験
使用Redshift作为数据存储的地方,这是与Recruit Technologies的区别。
ZOZO 形象广告
<利用技術>
Java / Ruby / AWS / Aurora / Fargate / Lambda / ECR / CloudFormation / OpsWorks / DirectConnect / GCP / BigQuery / PostgreSQL / SQL Server / Netezza / Fluentd / Embulk / Digdag / JBoss EAP / JBoss Data Grid / JBoss Decision Manager / Elasticsearch / LogStash / Chef / CircleCI / Datadog
Fluentd→LogStash→Elasticsearch
Fluentd→LogStash→Embulk→Bigquery或PostgresQL
有上述的两种模式,分别适用于流处理和批处理的用例。
我认为它是通过Elasticsearch进行实时数据分析,然后在Bigquery等地进行大数据分析。
此外,Embulk的批处理执行似乎是由Digdag进行管理的。
请问您对此有什么感受吗?
数据收集
大家都使用了Fluentd来收集日志。
有一些案例将Kafka置于Fluentd和Hadoop/Spark/Storm之间,以统一处理批处理/流处理数据。
通过使用Kinesis Data Stream,可以使用云服务实现与Kafka相同的功能。
数据处理
在处理数据的部分,根据使用情况的不同(是批处理还是流处理),选择的技术也会有所不同。
在批处理方面,许多公司使用Hadoop、Spark和Embulk。据说,Spark比Hadoop更快,因为它在内存中处理数据共享部分,所以如果要引入新系统,可能会选择使用Spark。Embulk是一个并行数据传输工具。对于Spark和Embulk的使用差异尚不清楚,因此在实际采用时需要进行调查。
有一些例子是在需要在集群间进行身份验证的情况下,采用Kerberos认证实现单点登录。
在流式处理的情况下,经常使用Storm进行聚合并保存数据,也会将数据保存到Elasticsearch以进行分析。
请把以下内容用中文进行充分参考。
我开始学习使用Apache Kafka。
(我在https://deeeet.com/writing/2015/09/01/apache-kafka/上学习了Apache Kafka。)
弹性搜索在日志收集平台开发中的应用。
在Apache Spark中介绍分布式处理技术的入门
Apache Storm与Apache Spark的比较
“流式数据分布式处理平台Storm”
回顾日志分析基础架构。
使用Kafka、Fluentd和Spark进行数据分析基础设施的操作经验
使用Spark和BigQuery等工具进行移动游戏分析环境。