python实时数据理解模型搭建

实时数据,其实就是把数据的时效性特点给突现出来
实时数据,因为实时数据其独特的优势,会让人觉得实时数据背后具有极大的价值可以挖掘。
实时数据文件模型:
a端会不停的生成数据,而生成的数据会写入到一个指定的文件中去。
b端会不停的去读取a端生成的数据
实时数据中最质朴的一个难点就是数据读取,这是一个i/o操作比较频繁的业务场景,而且我们在读数据的时候,由于想要获取这个文件中的所有信息,所以我们一般会读一个静态的文件,但是由于这个文件不停的在更新,所以我们就要每隔一段时间去获取这个文件中的数据,但是由于i/o操作频繁,对硬件等资源会带来较大的压力,所以对于我们来说,更好的解决方案就是直接取增量数据,每次都从上一次的结尾去取数据,这样每次就都可以取到增量数据了。在文件对象处理中,这个方法称为漂移。

在这里,我们是读取文件的,在使用blink的时候,我们是读取数据库的,对于数据库而言,其实我们想要实时读取,其实就是如何去取增量数据了,而且这个增量是我们所间隔的时间。在这里,实时数据其实对于我们而言,其实也是有延迟的,只是这个延迟比较短而已。在blink中,实时数据的读取主要是根据dt字段,即对数据添加了时间字段做标识。所以在读取数据的时候,也是以时间做为漂移的标识符。
a端文件生成代码
import datetime
import time

def create_data():
    file = open('./result.txt','a+',encoding='utf-8')
    file.write(str(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + '\n')
    # print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

if __name__ == '__main__':
    while True:
        create_data()
        time.sleep(1)

b端文件读取代码
import time
def get_data():
    position = 0
    file = open('./result.txt','r',encoding='utf-8')
    while True:
        file.seek(position)
        data = file.read()
        print(data)
        print('='*100)
        position = file.tell()
        time.sleep(1)


if __name__ == '__main__':
    get_data()

上述代码放在两个文件中,然后启动即可,对于实时数据,理解起来其实并不复杂,复杂的是有一群人创造了一些新的名词去描述他,导致我们对于实时数据的理解都花费在了了解这些新名词的身上。对于实时数据,我们其实只要记住一点,最简易的模型更适合我们去理解,在自己的理解上再添加别人的见解,了解起新的事物来会更快。

先这样,后边可以找时间模拟一下实时数据场景,做一个完整的模拟,看一下过程中会遇到那些问题。以及原来接入过程中,datahub使用的必要性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值