Scio
教会拉丁语IPA: /ˈʃi.o/, [ˈʃiː.o], [ˈʃi.i̯o] 动词:我能,会,理解,知晓。
Scio是一个基于Apache Beam和Google Cloud Dataflow,受Apache Spark和Scalding启发的Scala API。
特性
- 与Spark和Scalding核心API相近的Scala API
- 统一的批处理和流处理编程模型
- 完全托管服务*
- 与Google Cloud产品集成:Cloud Storage、BigQuery、Pub/Sub、Datastore、Bigtable
- Avro、Cassandra、Elasticsearch、gRPC、JDBC、neo4j、Parquet、Redis、TensorFlow IO
- 具有Scio REPL的交互模式
- 类型安全的BigQuery
- 与Algebird和Breeze集成
- 使用Scala Futures进行管道编排
- 分布式缓存
*由Google Cloud Dataflow提供
快速开始
下载并安装JDK版本8。
安装sbt。
使用我们giter8模板快速创建一个新的Scio作业库:
sbt new spotify/scio.g8
切换到新仓库(默认是scio-job
)并构建:
cd scio-job
sbt stage
运行包含的词频计算示例:
target/universal/stage/bin/scio-job --output=wc
列出结果文件并查看内容:
ls -l wc
cat wc/part-00000-of-00004.txt
文档
入门指南是在Scio上手的最佳位置。如果你是Apache Beam和分布式数据处理的新手,首先查看Beam编程指南以详细了解Beam的编程模型和概念。如果你有其他Scala数据处理库的经验,请查看Scio, Scalding和Spark之间的比较。
可以在scio-examples找到示例Scio管道和测试。很多是从Beam的Java示例直接移植来的。参见这个页面以获取带有并列解释的一些示例。还可以查看大数据罗塞塔石碑以获取常见的数据处理代码片段,包含Scio、Scalding和Spark。
- Scio文档 - 主要文档网站
- Scio Scaladocs - 当前API文档
- Scio示例 - 带有并列解释的示例
工件
Scio包含以下工件:
scio-avro
: Avro附加模块,也可独立使用scio-cassandra*
: Cassandra附加模块scio-core
: 核心库scio-elasticsearch*
: Elasticsearch附加模块scio-extra
: 额外的工作集合、Breeze等的工具,尽力支持scio-google-cloud-platform
: Google Cloud IO的附加模块:BigQuery、Bigtable、Pub/Sub、Datastore、Spannerscio-grpc
: gRPC服务调用附加模块scio-jdbc
: JDBC IO的附加模块scio-neo4j
: Neo4J IO的附加模块scio-parquet
: Parquet的附加模块scio-redis
: Redis的附加模块scio-repl
: Scala REPL的扩展,带有Scio特定的操作scio-smb
: 排序合并桶操作的附加模块scio-tensorflow
: TensorFlow TFRecords IO和预测的附加模块scio-test
: 以下测试工具。作为“test”依赖添加到你的项目中scio-test-core
: 测试核心工具scio-test-google-cloud-platform
: Google Cloud IO的测试工具scio-test-parquet
: Parquet的测试工具
许可证
版权所有2024 Spotify AB。
根据Apache许可证2.0版(http://www.apache.org/licenses/LICENSE-2.0)许可。