IntelliJ IDEA和分布式SQL入门

作者 : IT 大叔 本文共3646个字,预计阅读时间需要10分钟 发布时间: 2020-09-30

IntelliJ IDEA是用Java编写的用于开发软件的流行集成开发环境(IDE)。它由JetBrains开发,可作为Apache 2许可社区版和专有商业版提供。IntelliJ在其IDE中支持各种数据源。由于YugabyteDB与PostgreSQL兼容,因此大多数第三方工具和应用程序将“开箱即用”。IntelliJ在这里也不例外。

在此博客文章中,我们将带您完成以下步骤:

  • 在Google Kubernetes Engine上安装3节点的YugabyteDB集群
  • 安装罗斯文示例数据库
  • 配置IntelliJ以与YugabyteDB一起使用
  • 使用YugabyteDB测试一些基本的IntelliJ数据库功能

分布式SQL或YugabyteDB的新手?继续阅读。

什么是分布式SQL?

分布式SQL数据库在对将数据基础结构迁移到云或云本机环境感兴趣的组织中越来越受欢迎。这通常是由于希望降低TCO或摆脱Oracle,PostgreSQL,MySQLSQL Server等整体RDBMS的水平扩展限制所致。分布式SQL的基本特征是:

  • 他们必须具有用于查询和建模数据的SQL API,并支持传统的RDBMS功能,例如外键,部分索引,存储过程和触发器。
  • 智能分布式查询执行,因此查询处理被推到更靠近数据的位置,而不是通过网络推送数据,从而减慢了查询响应时间。
  • 应该支持自动透明的分布式数据存储。这包括应该在群集的多个节点之间分片的索引,这样就不会有单个节点成为瓶颈。数据分发可确保高性能和高可用性。
  • 分布式SQL系统还应提供高度一致的复制和分布式ACID事务。

什么是YugabyteDB?

YugabyteDB是一个开放源代码的高性能分布式SQL数据库,该数据库基于Google Spanner的可扩展性和容错设计而构建。YugabyteDB与PostgreSQL兼容,云原生,与GraphQL项目进行深度集成,并支持高级RDBMS功能,例如存储过程,触发器和UDF。

有问题吗?确保在我们的YugabyteDB Slack频道中询问他们。好吧,让我们潜入……

步骤1:使用Helm 3在GKE群集上安装YugabyteDB

在本节中,我们将在群集上安装YugabyteDB。完整的步骤记录在这里。我们假设您已经有一个GKE集群并已开始运行。

首先要做的是添加图表存储库。

$ helm repo add yugabytedb https://charts.yugabyte.com

现在,获取更新。

$ helm repo update

创建一个名称空间。在这种情况下,我们将其称为yb-demo。

$ kubectl create namespace yb-demo

预期产量:

namespace/yb-demo created

现在我们准备安装YugabyteDB。在下面的命令中,我们将为资源受限的环境指定值。

$ helm install yb-demo yugabytedb/yugabyte \
--set resource.master.requests.cpu=1,resource.master.requests.memory=1Gi,\
resource.tserver.requests.cpu=1,resource.tserver.requests.memory=1Gi,\
enableLoadBalancer=True --namespace yb-demo --wait

要检查集群的状态,请执行以下命令:

$ kubectl get services --namespace yb-demo

IntelliJ IDEA和分布式SQL入门插图

请注意yb-tserver-service的外部IP,我们将使用它在YugabyteDB和IntelliJ之间建立连接。从上面的屏幕截图中,我们可以看到IP为35.224.XX.XX,YSQL端口为5433

步骤2:创建罗斯文示例数据库

下一步是下载示例架构和数据。在本教程中,我们将使用Northwind示例数据库。罗斯文(Northwind)数据库包含一个名为“罗斯文商人(Northwind Traders)”的虚拟公司的销售数据,该公司从世界各地进口和出口特色食品。Northwind数据库是小型企业ERP的出色教程架构,具有客户,订单,库存,采购,供应商,运输,员工和单次记帐。

通过运行以下命令连接到yb-tserver-pod

$ kubectl exec -n yb-demo -it yb-tserver-0 /bin/bash

要下载架构和数据文件,请运行以下命令:

$ wget https://raw.githubusercontent.com/yugabyte/yugabyte-db/master/sample/northwind_ddl.sql

$ wget https://raw.githubusercontent.com/yugabyte/yugabyte-db/master/sample/northwind_data.sql

要连接到YSQL服务,请退出Pod Shell,然后运行以下命令:

$ exit

$ kubectl exec -n yb-demo -it yb-tserver-0 -- ysqlsh -h yb-tserver-0.yb-tservers.yb-demo

创建数据库并使用以下命令连接到该数据库:

yugabyte=# CREATE DATABASE northwind;
northwind=# \c northwind;

现在,我们可以使用以下命令使用下载到yb-tserver-pod的文件来创建数据库对象并使用数据加载它们:

northwind=# \i 'northwind_ddl.sql';
northwind=# \i 'northwind_data.sql';

通过运行以下命令来验证是否创建了表:

northwind-# \d

                 List of relations
 Schema |          Name          | Type  |  Owner
--------+------------------------+-------+----------
 public | categories             | table | yugabyte
 public | customer_customer_demo | table | yugabyte
 public | customer_demographics  | table | yugabyte
 public | customers              | table | yugabyte
 public | employee_territories   | table | yugabyte
 public | employees              | table | yugabyte
 public | order_details          | table | yugabyte
 public | orders                 | table | yugabyte
 public | products               | table | yugabyte
 public | region                 | table | yugabyte
 public | shippers               | table | yugabyte
 public | suppliers              | table | yugabyte
 public | territories            | table | yugabyte
 public | us_states              | table | yugabyte
(14 rows)

通过执行简单的SELECT验证我们是否有数据:

northwind=# SELECT count(*) FROM products;
 count
-------
    77
(1 row)

默认情况下,YugabyteDB安装没有为默认的yugabyte用户设置密码。指定一个的方法与在PostgreSQL中指定方法相同。

northwind=# ALTER ROLE yugabyte WITH PASSWORD 'password';

步骤3:将IntelliJ配置为与YugabyteDB一起使用

启动数据库工具窗口。(查看>工具窗口>数据库)

IntelliJ IDEA和分布式SQL入门插图(2)

添加PostgreSQL数据源。(新(+)>数据源> PostgreSQL)

IntelliJ IDEA和分布式SQL入门插图(4)

在“常规”选项卡上,输入数据库的连接字符串:

  • 主机: GKE在上一步中分配给YugabyteDB的外部IP
  • 端口: YugabyteDB使用端口5433
  • 数据库:出于我们的目的,我们将连接到上一步中创建的罗斯文示例数据库
  • 用户:默认的YugabyteDB用户为yugabyte
  • 密码:我们将使用在上一步中分配给默认用户的密码
  • 驱动程序:选择或安装最新的PostgreSQL驱动程序

IntelliJ IDEA和分布式SQL入门插图(6)

为了采取良好措施,请确保在单击“确定”之前测试连接。

步骤4:运行示例查询

接下来,让我们通过在IntelliJ中执行以下查询来测试集成。

IntelliJ IDEA和分布式SQL入门插图(8)

在输出窗口中,我们应该看到以下结果集。

IntelliJ IDEA和分布式SQL入门插图(10)

步骤5:生成说明计划

IntelliJ具有生成查询的EXPLAIN可视化效果的内置功能。例如,我们可以通过选择“解释计划”>“显示可视化”来获取上一个查询的可视化。

IntelliJ IDEA和分布式SQL入门插图(12)

注意: YugabyteDB并不支持IntelliJ的所有数据库管理功能。如果您遇到任何问题,请确保访问我们的Slack频道并告知我们,否则您随时可以打开GitHub问题。

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » IntelliJ IDEA和分布式SQL入门

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论