飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

使用GLULQL和流式数据库查询实时数据

时间:2023-06-13  作者:电脑狂魔  

在现代应用程序开发中,有效的查询和检索实时数据对于构建健壮和性能良好的系统至关重要。使用 具体化的观点 我们可以提高查询性能。当它与GLURQL和一个蒸汽数据库相结合时,我们可以定义查询,以便利用这些物化视图来处理不断变化的数据。

例如,像twitter这样的社交媒体平台每秒生成大量数据。这些数据对于分析趋势和用户行为很有价值。在这篇文章中,我们将探索如何集成GLURQL、物化视图和流媒体数据库 升波 使我们能够有效地查询推文和 找到最热的标签 实时的。

在开始实施之前,理解这三个概念(GLURQL、物化视图和流数据库)是很重要的。我相信你很聪明 谷歌 或 目标1 找到这些信息。然而,我将在下面一节中解释为什么这种集成是有益的,以及每个集成的作用。

预先计算缓存的具体化视图

以 物化视图 我们可以预先计算和存储经常执行的SQL查询的结果。它是数据的非本地化表示,这意味着复杂的连接和聚合已经执行并存储在类似的数据库中。 后记 .这简化了检索数据所需的查询逻辑,并消除了我们手动处理连接操作的需要。在twitter的案例中,物化视图可以用来计算用户活动的摘要,比如追随者的数量、使用的标签、喜欢的标签或评论。

G30-ql精确检索我们需要的数据

G30-ql 允许我们精确地指定需要和接收的数据 在一个请求中 不需要使用额外的特定程序语言数据处理框架,也不需要在REST(代表状态转移)中定义一系列实体对象和端点。与休息不同的是,格莱普克显著减少了往返次数,从而更快地获取数据。有了格兰克,我们可以 直接访问具体化视图 在数据库中,通过定义的模式,抽象出底层数据库结构的复杂性。社交媒体分析平台可以利用GLURQL提供一个灵活的API,用于查询和分析用户生成的内容。

有几个受欢迎的图形化构建者和框架可以帮助建立图形化的API。您可以连接到不同的数据源,并集成到流行的数据库中,如后格SQL和mysql。下面是一些广泛使用的:

  • 阿波罗服务器

  • 格罗普ql瑜伽

  • 哈修罗

  • 内克斯

  • 立方体

  • 步进的

步进的 是一个平台,用于构建和部署各种源数据的集成和聚合。在演示部分中,我将展示如何在声明性代码中使用STTPZIN构建一个GLURQLAPI。

流数据库处理实时数据

以充分发挥 实时数据查询 可以使用流媒体数据库。物化视图并不总是包含最新数据,因为它们依赖于 何时和多久刷新一次视图 .传统的数据库,例如后SQL支持的物化视图,但是要看到随时间推移的查询,您需要 重新启动相同的查询--然后 .为了得到最新的结果,你需要 重复执行查询 ,而像里辛波这样的流媒体数据库在编写时几乎完成了所有的工作。这个 放置 解释 流数据库与传统数据库的区别 .当数据流到流数据库时,它会被处理并立即用来更新现有的具体化视图。它可以吸收各种数据 数据来源 类似的 卡夫卡 或 脉冲星 .通过与流媒体数据库相结合,我们可以不断地吸收传入的推文帖子,实时更新物化视图,即时更改数据查询。

查询推特事件演示

一旦我们了解了GLURQL、物化视图和流媒体的重要性,我们就可以使用这个组合来创建一种访问微博数据的新方法。通过预先计算数据摘要,并通过图形端点披露数据,我们可以很快从推文中获得有价值的见解。

在你开始之前

在本教程中,我们将利用 现有的使用例演示 在一个叫 快速推特事件处理 .确保您通过克隆完成教程,在那里启动演示项目 码头工人 ,连接到卡夫卡数据流,并定义一个物化视图作为教程。

安装的其他先决条件是:

  • 恩格洛克账户

  • 安装了NGLOK(Mac/窗口)

当你准备好了

我假设你配置了利辛波,我们有一个具体化视图hot_hashtags 是由追踪着 每天在推特上使用每个标签的频率 .接下来,我们 安装和安装 进一步设计了图形模式,映射了对物化视图中实际数据的查询,最后公开了图形端点。

第1步:安装捷联CLI

请注意,您还可以按照斯特普赞网站的说明安装和运行它。捷联命令行接口(CLI)提供了设置和管理捷联命令的命令。请运行以下命令以安装捷联CLI:

npm install -g stepzen

第二步:在码头跑去

接下来,我们在您的本地机器上使用我们在前一个步骤中安装的捷联CLI运行了捷联服务:

stepzen service start

若要在本地开发过程中使用STTIPI,必须通过指向本地配置的CLI登录。只需在启动了行预服务后运行以下命令即可:

stepzen login --config ~/.stepzen/stepzen-域名

第三步:克隆 graphql-stepzen-risingwave 模拟项目

找到我的资料库 graphql-stepzen-risingwave-demo 在基特布上。 Git克隆 这个存储库放在你的机器上。这个项目已经有了你需要的一切。在一个 后任务域名ql G31-ql模式定义语言(SDL)文件,带有为物化视图定义的类型和查询hot_hashtags 在林波数据库里。它还有一个 副总裁,副警长。 使用我们的图形端点。

git clone https://域名/Boburmirzo/graphql-stepzen-risingwave-域名 
cd graphql-stepzen-risingwave-demo

步骤4:创建一个NGLOK帐户并安装NGLOK(可选)

注意这只是一个额外的步骤,如果你运行的是步进和上升波 在当地环境中 .如果 服务器中的云或运行实例 通过互联网可以访问的,您可以在斯特普赞数据库配置中设置一个直接的升波地址。如果你同时在码头集装箱内运行"天波"和"升波",你可以指定域名rnal .

该工具在公共互联网地址和运行在您的机器上的本地服务器之间创建一个安全通道。为NGLOK创建一个帐户,并确保您可以通过设置访问它authtoken .若要让您的私有网络之外的其他服务都能使用"利辛波"数据库,您需要创建一个tp通道。因此,该网络将被用于风险波运行的港口4566 :

ngrok tcp 4566

在您运行该命令后,NGLOK将返回本地的风险波数据库的转发地址,这将类似于:域名.域名:14304

你需要把这个添加到文件中./域名 在演示项目中你需要替换{{ngrok_tunnel}} 有你的地址域名域名:15650 :

configurationset:
   - configuration:
          name: postgresql_config
                 uri: postgresql://root:@域名.域名:15650/dev

第五步:运行G31-ql端点

通过运行命令stepzen start ,您可以部署我们在其中的模式 后任务域名ql 文件到斯捷森。这就立即在本地主机上创建了一个图形化的API,可以通过配置的端点(api/twitter ) 副总裁,副警长。 文件。如果你导航到 http://localhost:5001/api/twitter ,你会在你的浏览器上看到捷联仪表板资源管理器。

立体仪表板探测器

步骤6:查询物化视图

逐步的资源管理器显示可用的查询及其属性。当您运行下列查询时getHotHashtags ,它将从"提升波"物化视图中提取数据,并在资源管理器中显示返回的数据。

query MyQuery {
  getHotHashtags {
    hashtag
    hashtag_occurrences
    window_start
  }
}

参见输出:

如果你打开 后任务域名ql 文件,你会看到我是怎么用这个指令的 @db查询 连接数据库并编写一个SQL查询来选择前10个流行的标签。

type Query {
  getHotHashtags: [hot_hashtags]
    @dbquery(
      type: "postgresql"
      query: """
        SELECT
            *
        FROM
            hot_hashtags
        ORDER BY
            hashtag_occurrences DESC
        LIMIT
            10
      """
      configuration: "postgresql_config"
    )  
}

下一步

到目前为止,我们已经建立并部署了一个图形化APIapi/twitter 数据库后端。接下来,你可以观察如何使用来自 其他来源 比卡夫卡和利辛波,结合 多个数据流 创建连接流的具体化视图,并创建 一系列查询 与斯捷森。

结论

我们使用斯坦格兰茨API简化了数据访问,但没有引入后端服务来完成这项工作,我们将其与里辛波提供的实时更新相结合。总而言之,使用GLULQL和流媒体数据库查询实时数据为创建响应性强、互动性强的应用程序提供了新的可能性。

湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。