使用 PostgreSQL 样本数据发现系外行星
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--mNbozFnV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/8t018f89j8awj5bbwn5g.png)
PostgreSQL 是并且仍然是我们最受欢迎和增长最强劲的存储平台之一。其他存储技术来来去去,但现代 Postgres 是许多应用程序的可靠选择。在本文中,我们将了解如何开始使用 Aiven for PostgreSQL,用数据填充它并开始播放。
当您启动您的第一个 Aiven for PostgreSQL 时,您将需要一些时间来使用这些功能......但是有一个问题。您的新闪亮数据库是空的。
查找和使用一些开放数据集是填补这一空白的好方法。一种选择是尝试Kaggle平台。在这里可以找到开放数据、有关数据科学的建议以及您可以参加的一些竞赛来磨练自己的技能。有相当多的数据集可供选择,但今天我将使用来自开普勒任务的系外行星数据。您需要一个(免费)帐户才能登录并下载数据。继续并提取 zip 文件,我在这篇文章中使用cumulative.csv作为示例。
开始使用艾文
如果您还不是 Aiven 用户,您可以注册一个 Aiven 帐户以按照本文中的步骤进行操作 - 我们将在这里等待!
我们还将使用Aiven CLI。此工具需要 Python 3.6 或更高版本,并且可以从 PyPI 安装:
pip install aiven-client
进入全屏模式 退出全屏模式
您还需要针对 CLI 工具验证您的 Aiven 帐户。运行以下命令,替换您自己的详细信息:
avn user login <email@example.com>
进入全屏模式 退出全屏模式
您现在拥有在云中创建 Aiven 数据库所需的一切。
创建PostgreSQL服务
一个好的第一步是创建一个项目来保留服务。它所需要的只是一个名称:
avn project create exoplanets
进入全屏模式 退出全屏模式
Aiven 在创建服务时提供了许多选项,但为了让我们快速进行,我将使用最新的可用 postgres 和最小的包,称为“爱好者”。最有趣的事情之一就是能够选择您喜欢的任何云平台!花点时间检查列表并复制您最喜欢的CLOUD_NAME字段:
avn cloud list
进入全屏模式 退出全屏模式
我选择了google-europe-west1作为示例。以下是创建 Postgres 数据库的命令(记得在您选择的云中交换):
avn service create -t pg -p hobbyist --cloud google-europe-west1 pg-exoplanets
进入全屏模式 退出全屏模式
节点需要几分钟才能准备好,但 Aiven CLI 有一个方便的“等待”命令,该命令在服务准备好与我们通信之前不会返回。这对于手动运行命令并不那么重要,但是当您的 CI 系统自行启动数据平台时,它非常有用!
avn service wait pg-exoplanets
进入全屏模式 退出全屏模式
当命令返回时,我的 PostgreSQL 集群就可以使用了。让我们创建一个数据库来保存样本数据;下面的命令创建了一个名为“exoplanets”的:
avn service database-create --dbname exoplanets pg-exoplanets
进入全屏模式 退出全屏模式
现在我有一个闪亮的新数据库......但它都是悲伤和空虚的。让我们看一下示例数据并将其导入。
将 CSV 数据添加到 PostgreSQL
PostgreSQL 内置支持将 CSV 数据导入现有表,但我没有表结构,只有 CSV。幸运的是,有一个工具可以做到这一点 -ddlgenerator是另一个 Python 命令行工具。
下面是如何安装ddlgenerator工具,然后从我之前下载的cumulative.csv生成CREATE TABLE语句:
pip install ddlgenerator
ddlgenerator postgres cumulative.csv > create.sql
进入全屏模式 退出全屏模式
查看文件内部,您会发现它具有我需要向 PostgreSQL 解释如何保存数据的结构。avn service cli命令将在新数据库上为我们提供psql提示:
avn service cli pg-exoplanets
进入全屏模式 退出全屏模式
从psql我可以连接到“exoplanets”数据库,然后运行 SQL 文件来创建表结构:
\c exoplanets
\i create.sql
进入全屏模式 退出全屏模式
将最后一块添加到拼图中,仍然从psql提示符开始,下一个命令会引入 CSV 数据:
\copy cumulative from data/cumulative.csv csv header
进入全屏模式 退出全屏模式
干得好!cumulative表现在应该有一些数据供您使用!
梦见系外行星
现在,您拥有一个数据库,其中包含开普勒太空望远镜对系外行星的测量结果。如果您还不熟悉该项目,NASA 任务页面值得一读。当其中一个控制发生故障时,任务进入了第二阶段,这提醒我们,我们可以看到和触摸的工程系统,或者至少可以通过 ssh 进入,比在太空中操作要容易得多!
您可以探索该数据集,该数据集描述了观察结果,并将每个系外行星的开普勒评估与其在现有文献中的官方地位进行了比较。例如,试试这个来查看 Kepler 识别的误报:
select kepler_name, koi_pdisposition from cumulative where koi_disposition = 'CONFIRMED' and koi_pdisposition = 'FALSE POSITIVE';
进入全屏模式 退出全屏模式
您还可以将此数据连接到其他工具以进一步使用数据集。要么从 Web 控制台获取连接详细信息,要么使用jq和avn作为单行:
avn service get pg-exoplanets --json | jq ".service_uri"
进入全屏模式 退出全屏模式
接下来是什么?
良好的云实验实践表明,如果您已完成系外行星数据库,您可以将其删除:
avn service terminate pg-exoplanets
进入全屏模式 退出全屏模式
为了获得更多乐趣和学习,以下资源之一如何:
-
Kaggle Open Datasets如果你不喜欢系外行星,这里有一些很好的选择
-
在我们的文档中,您可以找到将现有 PostgreSQL 迁移到 Aiven 的说明
-
有关Aiven CLI 的更多信息,
avn -
需要更多 PostgreSQL?查看我们对 PostgreSQL 的介绍帖子
更多推荐
所有评论(0)