DuckDB在Python中的实现2025 年 3 月 4 日 | 阅读 6 分钟 引言DuckDB 在数据管理和分析领域正掀起波澜。人们常称它为“分析领域的 SQLite”。它是一个 SQL 数据库管理系统,可以直接在其他程序中运行。DuckDB 专为高效处理分析型任务而设计。它与常规数据库不同,因为它能够嵌入到应用程序中。这使其成为数据科学家、分析师和开发人员的理想选择。我们将探讨 DuckDB 的构建方式、它如何与 Python 配合工作,以及人们如何利用它来分析数据。 什么是 DuckDB?DuckDB 是一个免费的开源 SQL OLAP(在线分析处理)数据库管理系统。它直接在其他程序中运行。它的设计目的是快速完成分析性查询任务,即使在常规数据库可能表现缓慢的情况下也能如此。DuckDB 与使用它的应用程序共享相同的内存空间。这意味着它可以快速访问数据,并且不需要复杂的客户端-服务器通信方式。 DuckDB 的创建者希望简化复杂数据分析的实现。他们开发了一个易于集成到其他程序、简单易用且运行速度快的工具。无论是在单台计算机上进行数据查看,还是在需要每个部分独立数据分析功能的大型系统中,它都表现出色。 DuckDB 的主要特点
DuckDB 的架构DuckDB 的架构设计旨在最大限度地减少数据分析查询中的“抖动”。以下关键部分在其设计中发挥着重要作用:
将 DuckDB 与 Python 集成最终,随着系统之间的连接已经建立,DuckDB 将继续成为熟悉 Python 生态系统的数据科学家和专家的强大工具。DuckDB 提供的 Python 包在与数据库交互方面非常友好。这使用户能够在 Python 脚本、Jupyter Notebooks 或其他类似接口中,通过 SQL 查询数据、处理数据并利用 DuckDB 的性能优势。 安装 首先,在 Python 中安装 DuckDB。您可以使用 pip 安装 DuckDB Python 包 此命令将安装 DuckDB 包及其依赖项,并允许您立即在 Python 环境中开始使用 DuckDB。 创建和管理数据库DuckDB 被设计为与 Python 脚本在同一个进程中运行,这意味着您可以在脚本内部创建和操作 DuckDB 数据库。以下是设置新 DuckDB 数据库的方法: 在内存中设置一个新的 DuckDB 数据库 设置表并添加数据 获取数据 输出 [(1, 'Alice', 30), (2, 'Bob', 25), (3, 'Charlie', 35)] 此示例用于说明如何在 DuckDB 数据集中创建表、插入数据以及从中选择数据 - 所有这些都在内存中进行 - 只需几行 Python 代码。这种易用性仍然是 DuckDB 最强大的功能之一。 查询数据使用 DuckDB,您可以获得物理表扫描支持,并在 Python 中运行大多数 SQL。您可以利用 DuckDB 的性能增强功能执行聚合、JOIN 和窗口函数。 运行聚合查询 连接表 输出 Average age: 30.0 [('Alice', 'Engineer'), ('Bob', 'Artist'), ('Charlie', 'Doctor')] 这个模型展示了 DuckDB 如何很好地处理复杂的 SQL 任务,使其成为数据分析项目的关键工具。 与 Pandas 的互操作性关于与其他框架的集成,我想强调的是,DuckDB 与 Python 环境的集成在与 Pandas 集成时表现最佳。DuckDB 可以与 Pandas DataFrame 交换数据,让您能够轻松地在 DuckDB 和 Pandas 之间转移信息。 创建 Pandas DataFrame 将 DataFrame 插入 DuckDB 查询表并将结果返回为 DataFrame 输出 id name age 0 1 Alice 30 1 2 Bob 25 2 3 Charlie 35 此示例演示了如何创建 Pandas DataFrame,将其构造为 DuckDB 表,然后查询该表以将结果作为新的 DataFrame 返回。您可以利用 DuckDB 的速度和 Pandas 的响应能力,从而能够管理和分析数据。 处理大型数据集因此,DuckDB 最重要的能力就是处理海量数据。事实上,许多进程内数据库在处理数据方面会遇到困难;相比之下,DuckDB 更侧重于可扩展的工程设计。当在 Python 中处理大数据时,这一点尤其重要,因为标准方法可能需要分布式计算等复杂技术。 例如,DuckDB 可以搜索大型 CSV 文件,而无需将所有数据加载到内存中。 查询大型 CSV 文件 输出 Number of rows in the dataset: 100000 这种无需额外内存即可处理大型数据集的能力,使 DuckDB 成为 Python 中进行数据分析的关键工具。 DuckDB 在 Python 中的用例因此,DuckDB 的独特功能集使其适用于各种数据分析和科学计算任务。一些常见的用例包括:
下一个话题Dynamodb-with-python |
介绍 现代数字时代需要一个完美的开发人员和系统管理员文件管理系统。最常见的任务之一是在文件系统中查找空目录。这些文件夹可能是已卸载程序的残余,一些不完整的...
7 分钟阅读
为给定数组中的每个元素查找更大的元素。在此教程中,我们将编写 Python 程序来为给定数组中的每个元素查找更大的元素。“更大元素”指的是给定元素 x 的第一个元素...
阅读 3 分钟
Windows 注册表 Windows 库包含几个主键,每个主键都包含子键和值。主键有:HKEY_CLASSES_ROOT (HKCR):有关已注册应用程序、文件关联和 COM 对象的信息。HKEY_CURRENT_USER (HKCU):当前登录用户的配置信息。HKEY_LOCAL_MACHINE (HLM):本地配置信息...
阅读 8 分钟
在 Python 中,集合是用于存储集合的四种内置数据类型之一,另外还有列表、元组和字典。它是一个无序的唯一项集合。集合被认为是可变的,这允许我们在集合创建后添加或删除元素……
7 分钟阅读
为什么 C 代码比 Python 代码运行得快?了解 C 编程语言 C 是一种标准的、过程式的编程语言,由 Dennis Ritchie 于 20 世纪 70 年代初在贝尔实验室开发。它已成为有史以来使用最广泛的编程语言之一,尤其...
阅读 4 分钟
在下一个教程中,我们将学习如何使用 Python 编程语言检查给定的数字是否为霓虹数。但在我们开始之前,让我们先了解一下什么是霓虹数。什么是霓虹数?一个数字被称为...
阅读 4 分钟
在大多数情况下,处理许多与编程相关的任务,特别是处理庞大的数据集,需要创建能够高效地存储、管理和检索大量数据的数据库。解决此类任务的例子通常涉及 Oracle 或 MySQL 数据库....
11 分钟阅读
在数组中计算对 (x, y),其中 x^y > y^x。在本教程中,我们将编写 Python 程序来查找满足 x^y>y^x 的对的数量。我们给定两个数组 X[] 和 Y[],其中包含正整数,我们需要确定数量……
阅读 4 分钟
引言 TreeMap 是一种分层可视化,其中数据中每个嵌套矩形的大小都与某个特定统计量相关。Python 的 Plotly Express 包使得构建交互式 TreeMap 更加容易,从而可以进行更自然的数据探索和显示。安装……
阅读9分钟
理解 Python String Template 类 在 Python 中,String Template 类提供了一种简单而有效的方法,用于将字符串中的空字符替换为值。它提供了一种通用的模板方法,没有功能齐全的模板引擎的复杂性。通过定义包含由 ... 表示的占位符的模板
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India