Module 01 · Overview of Data Science Tools
Summary: Open Source Tools for Data Science数据科学开源工具总结
Duration: 20 mins 时长:20 分钟
Objective 目标
This reading provides a summary of key open-source tools for Data Science covered in the Part 1 and Part 2 videos of this course.
本阅读材料概述了本课程第一部分和第二部分视频中涵盖的关键开源数据科学工具。
They are broadly classified as -
它们被广泛分类为——
- Data Management Tools - Facilitates the storage, organization, and retrieval of data. Includes Relational Databases, NoSQL Databases, and Big Data platforms.
数据管理工具 - 促进数据的存储、组织和检索。包括关系数据库、NoSQL 数据库和大数据平台。 - Data Integration and Transformation Tools - Streamlines data pipelines and automate data processing workflows. Task of data integration and transformation in the classic data warehousing world is to Extract, Transform, and Load (ETL).
数据集成与转换工具 - 简化数据管道并自动化数据处理工作流。在经典数据仓库世界中,数据集成与转换的任务是提取、转换和加载(ETL)。 - Data Visualization Tools- Provides graphical representation of data and assist with communicating insights.
数据可视化工具 - 提供数据的图形化表示,并协助传达洞察。 - Model Deployment, Monitoring and Assessment Tools- Supports the building, deploying, monitoring, and evaluation of data and machine learning models.
模型部署、监控与评估工具 - 支持数据与机器学习模型的建设、部署、监控与评估。 - Data Asset Management Tools- Organizes and manages data, enforce access controls, and ensure asset backups.
数据资产管理工具 - 组织和管理数据,执行访问控制,并确保资产备份。 - Code Development and Execution Tools - Provides environments for developing, testing, and deploying code, offering computational resources to execute it.
代码开发与执行工具 - 提供用于开发、测试和部署代码的环境,提供计算资源来执行它。 - Code Asset Management Tools - Enables the storage and management of code, track changes, and support collaborative development.
代码资产管理工具 - 实现代码的存储和管理,跟踪变更,并支持协作开发。
Data Management Tools 数据管理工具
MySQL
- Popular open source relational database management system (RDBMS)
流行的开源关系型数据库管理系统(RDBMS) - Uses structured query language (SQL) to manage and store data.
使用结构化查询语言(SQL)来管理和存储数据。 - Common uses: 常见用途:
- Web applications Web 应用程序
- Data warehousing 数据仓库
- E-commerce 电子商务
PostgreSQL
- Powerful and open source relational database management system (RDBMS)
强大的开源关系型数据库管理系统(RDBMS) - Emphasizes extensibility and SQL compliance.
强调可扩展性和 SQL 兼容性。 - Offers advanced features such as:
提供高级功能,例如:- Support for JSON 支持JSON
- Full-text search 全文搜索
- Spatial data 空间数据
Apache CouchDB
- Document-oriented NoSQL database
面向文档的 NoSQL 数据库 - Uses JSON to store data
使用JSON 来存储数据 - Highly scalable 高度可扩展
- Fault-tolerant 容错性
- Easy to use 易于使用
MongoDB
- Document-oriented NoSQL database
面向文档的 NoSQL 数据库 - Stores data in a flexible JSON
以灵活的 JSON 格式存储数据 - Provides: 提供:
- Scalability 可扩展性
- High availability 高可用性
- Data distribution 数据分布
- Suitable for modern web applications that handle large volumes of unstructured data
适用于处理大量非结构化数据的现代 Web 应用程序
Apache Cassandra
- Highly scalable, distributed Document-oriented NoSQL database
高度可扩展的分布式文档型NoSQL 数据库 - Can handle large amounts of structured and unstructured data across many commodity servers.
能够处理分布在众多通用服务器上的大量结构化和非结构化数据。 - Offers: 提供:
- High availability 高可用性
- Fault tolerance 容错能力
- Tunable consistency levels
可调一致性级别
- Suitable for mission-critical applications
适用于关键任务应用程序
Hadoop Distributed File System (HDFS) Hadoop 分布式文件系统(HDFS)
- Designed to work with large datasets like Apache Hadoop in a distributed computing environment
设计用于在分布式计算环境中与 Apache Hadoop 等大型数据集协同工作 - High-throughput data processing by splitting files into blocks (default 128MB), and these blocks are distributed across multiple DataNodes
通过将文件分割成块(默认 128MB)进行高吞吐量数据处理,这些块将分布到多个 DataNodes - Data is replicated across different DataNodes ensuring high availability and fault tolerance
数据在不同 DataNodes 上进行复制,以确保高可用性和容错能力 - Scalable and efficient 可扩展且高效
Ceph
- Free, open source software-defined storage platform suitable for hybrid cloud environments
免费、开源的软件定义存储平台,适用于混合云环境 - Designed for modern data centers
专为现代数据中心设计 - Provides highly scalable, unified storage system that can be used for object storage (like AWS S3), block storage (like virtual disks for VMs), and file storage (like NFS) under one unified system
提供高度可扩展的统一存储系统,可用于对象存储(如 AWS S3)、块存储(如虚拟机磁盘)和文件存储(如NFS),所有功能均在同一统一系统中实现 - High performance, availability and reliability
高性能、高可用性和高可靠性
Elasticsearch
- Primarily a distributed RESTful search engine and analytics tool
主要是一个分布式 RESTful 搜索引擎和分析工具 - Based on the Lucene library.
基于Lucene库。 - Full-text search, real-time data analytics
全文搜索,实时数据分析 - Highly scalable 高度可扩展
- Easy to use 易于使用
- Powerful querying capabilities
强大的查询功能 - Real-time data indexing for fast document retrieval.
实时数据索引,快速文档检索。
Data Integration and Transformation Tools 数据集成与转换工具
Apache Airflow
- Open-source platform for programmatically authoring, scheduling, and monitoring workflows
一个用于编程方式创建、调度和监控工作流的开放源代码平台 - Created originally by Airbnb
最初由 Airbnb 创建 - Allows users to define and execute complex workflows
允许用户定义和执行复杂的工作流 - Support for: 支持:
- Task dependencies 任务依赖
- Parallelism 并行性
- Error handling 错误处理
Kubeflow
- An open-source machine learning toolkit that allows execution of data science pipelines on top of Kubernetes.
一个开源机器学习工具包,允许在 Kubernetes 之上执行 data science 管道。 - Provides a platform for building, deploying, and managing end-to-end machine learning workflows at scale
为构建、部署和管理端到端机器学习工作流程提供平台 - Support for: 支持:
- Distributed training 分布式训练
- Model serving 模型服务
- Hyperparameter tuning 超参数调整
Apache Kafka
- Distributed streaming platform that allows applications to publish, process, and subscribe to streams of records in real-time
分布式流处理平台,允许应用程序实时发布、处理和订阅记录流 - Created originally from LinkedIn.
最初由 LinkedIn 创建。 - It is scalable, fault-tolerant, and high-throughput
具有可扩展性、容错性和高吞吐量 - Suitable for building mission-critical, data-intensive applications
适用于构建关键任务、数据密集型应用程序
Apache NiFi
- An open-source data integration platform that allows users to automate the flow of data between systems
一个开源的数据集成平台,允许用户在系统之间自动化数据流 - Provides a web-based user interface for designing and managing data flows
提供基于网络的用户界面,用于设计和管理数据流 - Support for: 支持:
- Data routing 数据路由
- Transformation 转换
- Enrichment 丰富
- Among other capabilities 以及其他功能
Apache Spark SQL
- A module in the Spark ecosystem that provides a programming interface for working with structured data using:
Spark 生态系统中的一个模块,提供了使用以下方式处理结构化数据的编程接口:- SQL
- Data frames 数据帧
- Datasets 数据集
- Supports a wide range of data sources and provides optimized performance for complex data processing tasks.
支持多种数据源,并为复杂数据处理任务提供优化性能。
Node-RED
- An open-source visual programming tool for wiring together hardware devices, APIs, and online services
一个开源的可视化编程工具,用于连接硬件设备、API 和在线服务。 - Allows users to create event-driven flows of messages
允许用户创建基于事件的消息流程。 - low in resource consumption that it even runs on tiny devices like a Raspberry Pi.
资源消耗低,甚至可以在像树莓派这样的微型设备上运行。 - Support for: 支持:
- Data transformation 数据转换
- Filtering 过滤
- Aggregation 聚合
Data Visualization Tools 数据可视化工具
PixieDust
- Open-source library for creating interactive, exploratory data visualizations in Python and Jupyter notebooks
用于在 Python 和 Jupyter 笔记本中创建交互式、探索性数据可视化的开源库 - Provides a range of built-in visualizations and data connectors
提供一系列内置可视化工具和数据连接器 - Support for customization and extensibility through third-party libraries
通过第三方库实现定制化和可扩展性支持
Hue
- Open-source web interface for analyzing and visualizing large datasets in Apache Hadoop
Apache Hadoop 中用于分析和可视化大型数据集的开源 Web 界面 - Offers a user-friendly experience for exploring data and creating visualizations
为数据探索和可视化创建提供用户友好体验 - No need for programming skills; can create visualizations from SQL queries
无需编程技能;可从 SQL 查询创建可视化
Kibana
- Open-source data visualization tool that allows users to interact with their data through a web-based interface
开源数据可视化工具,允许用户通过基于网络的界面与其数据进行交互 - Commonly used with Elasticsearch to analyze and visualize large datasets
通常与 Elasticsearch 一起使用,用于分析和可视化大型数据集
Apache Superset
- A modern, enterprise-ready business intelligence web application that makes it easy to visualize and explore large datasets
一个现代的企业级商业智能网络应用程序,可轻松实现大型数据集的可视化和探索 - Offers a rich set of data visualization options, including:
提供丰富的数据可视化选项,包括:- Charts 图表
- Tables 表格
- Maps 地图
- Geospatial analysis 地理空间分析
- Real-time data processing
实时数据处理
Model Deployment Tools 模型部署工具
Apache PredictionIO
- Open-source machine learning server built on a scalable and distributed infrastructure
基于可扩展和分布式基础设施构建的开源机器学习服务器 - Allows developers to quickly build, evaluate, and deploy predictive engines for various use cases such as:
允许开发人员快速构建、评估和部署各种用例(如:- Recommendation 推荐
- Classification 分类
- Clustering 聚类
Kubernetes
- Open-source platform for container orchestration
容器编排开源平台 - Automatically launches, scales, and manages containerized applications
自动启动、扩展和管理容器化应用程序 - Offering features like: 提供以下功能:
- Automatic scaling 自动扩展
- Self-healing 自愈
- Load balancing 负载均衡
- Enables the management and orchestration of containers across numerous hosts
能够在多个主机上管理和编排容器
Apache Seldon
- Open-source platform for deploying and managing machine learning models on Kubernetes
一个在 Kubernetes 上部署和管理机器学习模型的开放源代码平台 - Provides a way to: 提供了一种方法:
- Serve models at scale 大规模提供模型
- Automate model deployment workflows
自动化模型部署工作流 - Monitor the performance of deployed models in real-time
实时监控已部署模型的性能
MLeap
- Open-source library for serializing and deserializing learning models in a cross-platform file
用于跨平台文件序列化和反序列化学习模型的开源库 - Gives users the ability to export models from different machine learning libraries and frameworks, such as:
为用户提供从不同的机器学习库和框架中导出模型的能力,例如:- Spark
- Scikit-learn
- TensorFlow
- Implements them in high-throughput, low-latency production environments
在高通量、低延迟的生产环境中实现
TensorFlow Lite
- Open-source tool for running machine learning models on mobile and embedded devices
一种用于在移动设备和嵌入式设备上运行机器学习模型的开源工具 - Allows effective inference on mobile and embedded platforms
允许在移动和嵌入式平台上进行有效推理 - Supports a variety of hardware accelerators such as:
支持多种硬件加速器,包括:- CPUs CPU
- GPUs GPU
- Custom ASICs 定制 ASIC
Red Hat OpenShift
- Container application framework based on Kubernetes
基于 Kubernetes 的容器应用框架 - With characteristics like automation, scalability, and security
具有自动化、可扩展性和安全性等特征 - Offers a method for creating, deploying, and managing containerized applications
提供了一种创建、部署和管理容器化应用的方法
TensorFlow Serving
- Open-source utility that serves machine learning models in real-world settings
一种在现实环境中提供机器学习模型的开放源代码工具 - Supports both HTTP and gRPC interfaces for serving predictions
支持用于提供预测的 HTTP 和gRPC接口 - Provides high scalability and low latency deployment and management of TensorFlow models
提供高可扩展性和低延迟的 TensorFlow 模型部署和管理
TensorFlow.js
- Open-source library for building and deploying machine learning models in JavaScript
用于在 JavaScript 中构建和部署机器学习模型的开源库 - Allows you to train and execute models directly in the browser or on Node.js
允许您直接在浏览器或 Node.js 中训练和执行模型 - Supports a wide range of model architectures, including neural networks, decision trees, and k-nearest neighbors
支持多种模型架构,包括神经网络、决策树和 k 近邻
Model Monitoring and Assessment Tools 模型监控与评估工具
ModelDB
- Open-source platform for managing machine learning models and experiments
用于管理机器学习模型和实验的开源平台 - Provides a way to track and reproduce experiments, version models, and collaborate with team members
提供跟踪和重现实验、版本模型以及与团队成员协作的方式
Prometheus
- Freely available monitoring system that collects and stores metrics in real-time from different sources
一个可自由获取的监控系统,可实时从不同来源收集和存储指标 - Allows you to visualize and set alerts on the health and performance of systems and apps
允许您可视化系统及应用程序的健康状况和性能,并设置警报 - Supports a variety of data gathering methods, such as HTTP endpoints, exporters, and agents
支持多种数据收集方法,如 HTTP 端点、导出器和代理
IBM AI Fairness 360 IBM AI 公平性 360
- Open-source toolkit for detecting and mitigating bias in machine learning models
用于检测和减轻机器学习模型中偏见的开源工具包 - Provides a way to measure the fairness and bias of models, as well as a set of algorithms for mitigating bias and creating fairer models
提供了一种衡量模型公平性和偏见的方法,以及一套减轻偏见和创建更公平模型算法
IBM AI Explainability 360 IBM AI 可解释性 360
- Open-source toolkit for explaining the behavior and decisions of machine learning models
用于解释机器学习模型行为和决策的开源工具包 - Provides a way to measure the explainability and interpretability of models, as well as a set of algorithms for generating explanations and visualizations of model behavior
提供了一种衡量模型可解释性和可理解性的方法,以及一套用于生成模型行为解释和可视化的算法
IBM Adversarial Robustness 360 Toolbox IBM Adversarial Robustness 360 工具箱
- Free and open-source library for protecting machine learning models from adversarial attacks
用于保护机器学习模型免受对抗性攻击的自由开源库 - Includes a method for measuring model robustness and vulnerability
包含一种测量模型鲁棒性和脆弱性的方法 - Includes a set of algorithms for improving model robustness and detecting adversarial examples
包含一套提高模型鲁棒性和检测对抗性样本的算法
Code Development and Execution Tools 代码开发与执行工具
Jupyter IDE
- Open-source effort 开源项目
- Supports: 支持:
- Julia
- Python
- R development with Jupyter Notebook
使用 Jupyter Notebook 进行 R 开发 - JupyterLab
- JupyterHub
- Create and share documents containing:
创建和分享包含以下内容的文档:- Live code 实时代码
- Equations 方程式
- Visualizations 可视化
- Narrative text 叙述文本
- JupyterLab includes: JupyterLab 包括:
- Customized notebook organization
个性化笔记本组织
- Customized notebook organization
- JupyterHub extends all these capabilities to the enterprise
JupyterHub 将所有这些功能扩展到企业
RStudio
- For developers 为开发者
- Free and open-source IDE 免费且开源的集成开发环境
- Built to manage and execute R code
专为管理和执行 R 代码而构建 - Works on all platforms 适用于所有平台
- Includes: 包含:
- Version control 版本控制
- Project management capabilities
项目管理能力
Microsoft Visual Studio
- An IDE that supports a variety of programming languages, including:
一个支持多种编程语言的集成开发环境,包括:- C
- C++
- C++/CLI
Visual Basic.NET- C#
- F#
- JavaScript
- TypeScript
- XML
- XSLT
- HTML
- CSS
- Using plug-ins, supports:
使用插件,支持:- Python
- Ruby
- Node.js
- M
- Other languages 其他语言
PyCharm
- Primarily a subscription-based IDE environment
主要基于订阅的 IDE 环境 - Offers 16+ additional tools for coding assistance, testing, and web development
提供 16 个以上的附加工具,用于编码辅助、测试和网页开发 - Supports scientific development with IPython integration and Matplotlib and NumPy support
支持科学开发,具有IPython集成和 Matplotlib 和 NumPy 支持 - Also offers a free community-based, open-source IDE with limited capabilities
还提供功能有限的免费社区版、开源 IDE
Spyder
- Free, open-source Python-based IDE designed by and for scientists, engineers, and data analysts
由科学家、工程师和数据分析师设计并使用的免费、开源的 Python IDE - Features a unique combination of comprehensive development tools for:
具有独特的综合性开发工具组合,包括:- Advanced editing 高级编辑
- Analysis 分析
- Debugging 调试
- Profiling 性能分析
- Visualization capabilities
可视化能力
Anaconda Navigator
- Open-source GUI-based Navigator that supports Python development and integrates with:
一个支持 Python 开发、基于图形用户界面的开源导航器,并与以下内容集成:- Eclipse and PyDev Eclipse 和 PyDev
- IDLE
- IntelliJ
- Microsoft Visual Studio Code (VS Code)
- Ninja IDE
- PyCharm
- Python for Visual Studio Code
- Python Tools for Visual Studio (PTVS)
- Spyder
- Sublime Text
- Wing IDE
Code Asset Management Tools 代码资产管理工具
Git
- Open-source version control system for tracking changes in code and collaboration among developers
开源版本控制系统,用于跟踪代码变更和开发者协作 - Provides a way to manage and organize code changes, collaborate on code development, and maintain a history of code revisions
提供了一种管理和组织代码变更、协作代码开发以及维护代码修订历史的方法
GitLab
- Web-based Git repository manager
基于网络的 Git 代码仓库管理器 - Provides a complete DevOps platform for:
为以下方面提供完整的 DevOps 平台:- Source code management 源代码管理
- Continuous integration and deployment
持续集成与部署 - Monitoring 监控
- Enables teams to collaborate on:
使团队能够协作:- Code development 代码开发
- Automate build and deployment processes
自动化构建和部署流程 - Track metrics and performance across the entire software development lifecycle
跟踪整个软件开发生命周期的指标和性能
GitHub
- Web-based Git repository hosting service that provides a platform for developers to collaborate on code and manage software projects
基于网络的 Git 存储库托管服务,为开发者提供协作代码和管理软件项目的平台 - Enables users to: 使用户能够:
- Create, fork, and contribute to open source projects
创建、分支和为开源项目做贡献 - Track changes in code 跟踪代码变更
- Manage issues 管理问题
- Pull requests 拉取请求
- Create, fork, and contribute to open source projects
Bitbucket from Atlassian 来自 Atlassian 的 Bitbucket
- Web-based Git repository hosting service
基于网络的 Git 仓库托管服务 - Provides a platform for developers to collaborate on code and manage software projects, with features like:
为开发者提供协作编写代码和管理软件项目的平台,具有以下功能:- Pull requests 拉取请求
- Code review 代码审查
- Branch permissions 分支权限
Author(s) 作者
Shilpa Giridhar 希尔帕·吉里德哈尔