Azure云平台 GPS大数据解决方案 EventHub+Azure Databricks+Azure Cosmos DB Cassandra

本文介绍了如何利用Azure云平台处理和存储大规模GPS流式数据。通过数据流向——数据源->EventHub->Databricks->Cosmos DB Cassandra,实现高效实时的数据处理和存储。Azure EventHub提供大数据流处理,Databricks用于数据分析,而Cosmos DB Cassandra作为云数据库确保数据存储。该方案降低了环境搭建成本,易于扩展,适合处理大量实时数据的场景。
摘要由CSDN通过智能技术生成

场景

有时候需要处理并存储大量流式数据,以Gps数据为例,面对一天千万级别的数据,时常要分库分表,数据偶尔会存在丢失的情况,很难做到既要保证大量数据处理的同时又要保证数据查询的实时性。这时借助云平台就是一个很好的做法。

数据流向

在这里插入图片描述

大致数据流向数据源->缓冲区->数据库处理中心->云数据库

所用Azure云平台介绍

1.Azure EventHub (云Kakfa)
Azure 事件中心是大数据流式处理平台和事件引入服务。 它可以每秒接收和处理数百万个事件。 可以使用任何实时分析提供程序或批处理/存储适配器转换和存储发送到事件中心的数据。
2.Azure Databricks (云Spark)
是一个已针对 Microsoft Azure 云服务平台进行优化的数据分析平台。 Azure Databricks开发数据密集型应用程序的三个环境:Databricks SQL、Databricks Data Science Engineering 和 & Databricks 机器学习。Databricks SQL 为想要针对数据湖运行 SQL 查询、创建多种可视化类型以从不同角度探索查询结果,以及生成和共享仪表板的分析员提供了一个易于使用的平台。
3.Azure Cosmos DB Cassandra(云数据库)
Azure Cosmos DB Cassandra API 可以充当为 Apache Cassandra 编写的应用的数据存储。 这意味着通过使用现有的符合 CQLv4 的 Apache 驱动程序,现有 Cassandra 应用程序现在可以与 Azure Cosmos DB Cassandra API 通信。 在许多情况下,只需更改连接字符串,就可以从使用 Apache Cassandra 切换为使用 Azure Cosmos DB Cassandra API。通过 Cassandra API 可以使用 Cassandra 查询语言 (CQL)、基于 Cassandra 的工具(如 cqlsh)和熟悉的 Cassandra 客户端驱动程序与 Azure Cosmos DB 中存储的数据进行交互。

技术方案优势

1.高效实时,高吞吐(理论上只要预算够无论多大的数据都能处理)
2.只要部署好,根本不用担心自己搭的服务器会爆炸
3.减少各种环境搭建过程,减少人力机器维护成本
4.后续查询扩展快速方便,可以根据业务需求做出各种定制

具体讲解

  1. 数据发送部分
    数据发送部分主要将数据源发送至EventHub,那么这里以.net为例附上一部分发送代码,因为是在老项目上改的,用的是.net fk,所以没有太多的操作空间(不然不兼容),EventHub使用环境在.net fk4.6以上,大家记得更新框架,推荐使用.net core或者.net 5的BackGroundService。
    大概说一下思路,一个并发队列,4线程发送,而且做了分区,可以根据自身语言环境或者需要更改,最好自己写
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Azure.Messaging.EventHubs;
using Azure.Messaging.EventHubs.Producer;
using Microsoft.AppCenter.Crashes;

namespace EHiGPSSocket.FormsApp
{
   
    public static class EventHub
    {
   
        private const string ConnectionString =
            "Your ConnectionString ";

        private const string EventHubName = "EventHubName";
        private const int Capacity = 500;
        private const int
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值