CN110781647B - 一种基于Flink实现数据格式校验的方法 - Google Patents

一种基于Flink实现数据格式校验的方法 Download PDF

Info

Publication number
CN110781647B
CN110781647B CN201911034885.6A CN201911034885A CN110781647B CN 110781647 B CN110781647 B CN 110781647B CN 201911034885 A CN201911034885 A CN 201911034885A CN 110781647 B CN110781647 B CN 110781647B
Authority
CN
China
Prior art keywords
data
cache
sql
flink
checked
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911034885.6A
Other languages
English (en)
Other versions
CN110781647A (zh
Inventor
王翠
苑晓龙
刘牧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN201911034885.6A priority Critical patent/CN110781647B/zh
Publication of CN110781647A publication Critical patent/CN110781647A/zh
Application granted granted Critical
Publication of CN110781647B publication Critical patent/CN110781647B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供一种基于Flink实现数据格式校验的方法,属于物联网技术领域,本发明以缓存作为flink的数据源(source)和数据目的地(sink),增加flink对缓存的连接器,实现从缓存中获取被校验的json数据,并将数据根据SQL进行转换、处理、筛选以及转发至缓存,最后在缓存中获取处理结果,以验证被校验数据是否满足SQL。

Description

一种基于Flink实现数据格式校验的方法
技术领域
本发明涉及物联网技术,涉及Flink大数据组件,应用java、SQL等相关技术,尤其是一种基于Flink实现数据格式校验的方法。
背景技术
目前现有技术中,使用Flink处理流式数据已成为主流,在物联网服务中,Flink的一个重要应用就是设定SQL语句,对数据来源中的数据进行数据分析、筛选和转换,并将处理后的结果流向其他目的地。该方案只是针对同一个数据来源中的数据格式相同并且是json格式的数据。
数据源中的数据经过SQL语句的处理分析,可以改变数据格式,比如:数据源中的原始数据格式为:{"state":{"reported":{"temperature":87}},"clientToken":"clientId_lamp_","timestamp":1531381822},处理分析的SQL语句为:selectstate.reported.temperature as temperature,`timestamp`,clientToken as tagsfrom tableName,经过SQL处理后,原始数据将转化为:{"temperature":87,"timestamp":1531381822,"tags":"clientId_lamp_"},数据源中的所有数据将转化为相同格式的数据流向数据目的地。但是如果SQL规则不正确或是与数据源中数据格式不匹配,数据将无法被处理,因此判断该规则与数据源中数据格式是否相符就显得格外重要。
物联网服务中需要将大批量数据以流或批的形式经过SQL处理分析、筛选和转换之后,将数据流向另外一个目的地,比如流向mysql、时序数据库、kafka等,而Flink因其处理流和批数据的高性能、可扩展等优势被广泛应用。
Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。一个Flink程序由一个或多个Flink job组成,一个Flink Job一般由Source,Transformation,Sink组成,其中source为数据来源;transformation为数据转换过程,每个flink job可以有一个或多个transformation;sink为数据目的地,即转换后将数据写入的外部数据源。
Flink支持批处理、交互式处理、实时流数据处理、用SQL分析处理、机器学习以及仅一次交付(exactly-once)保证等功能。利用SQL对大批量相同格式的数据进行处理、筛选或转换之前,都需要对数据来源中的数据样例进行SQL的校验,以确保Flink job的正常运行以及数据无误的流向数据目的地,目前Flink并没有提供一种方式对单条数据进行校验,因此,如何利用Flink实现单条数据的SQL校验就成为我们亟待解决的问题。
发明内容
为了解决以上技术问题,本发明提出了一种基于Flink实现数据格式校验的方法,可以校验给定的json数据是否满足SQL语句。
本发明的技术方案是:
一种基于Flink实现数据格式校验的方法,
设定缓存为Flink job的数据源和目的地,自定义Flink对缓存的连接器,其目的是对缓存中的单条json数据进行处理和校验,并将结果发送至缓存。
进一步的,
以缓存作为flink的数据源和数据目的地,增加flink对缓存的连接器,实现从缓存中获取被校验的json数据,并将数据根据SQL进行转换、处理、筛选以及转发至缓存,最后在缓存中获取处理结果,以验证被校验数据是否满足SQL。
再进一步的,
根据被校验的json数据获取可暂存该数据格式的数据表结构schema。
再进一步的,
设定缓存做为Flink的外部数据源,将被校验的json数据暂存至缓存,并设置key为sourceData。
再进一步的,
自定义Flink对缓存的连接器,通过该连接器可直接获取缓存中sourceData对应的数据,并在获取数据后,可直接断开连接。
再进一步的,
创建流的执行环境,根据流的执行环境创建表环境,用于注册创建数据源和数据目的地。
再进一步的,
在表环境中根据自定义的缓存连接器以及获取的schema注册一个临时数据表,将缓存中的json数据反序列化处理后暂存至该临时表中。
再进一步的,
对该数据表中的数据执行SQL语句,判定数据表中的数据是否满足SQL,如果执行错误,则判定数据不满足SQL,即被校验数据跟SQL不匹配;反之,则判定被校验数据与SQL匹配,并将最后的筛选结果存至缓存,以便后期获取查看。
本发明的有益效果是
(1)提高了消息模板的校验效率
(2)提高了SQL规则筛选大批量数据的正确性
(3)提高了物联网中大数据统计分析的稳定性
(4)提高了物联网中处理大数据的效率。
附图说明
图1是本发明的工作流程示意图;
图2是本发明的Flink job图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在Flink中,Source代表从外部获取数据的数据源,Transformation代表了对数据进行转换操作,Sink代表将内部数据写到外部数据源,一个Flink Job一般由Source,Transformation,Sink组成。该方法设计的核心思想是:以缓存作为flink的数据源(source)和数据目的地(sink),增加flink对缓存的连接器,实现从缓存中获取被校验的json数据,并将数据根据SQL进行转换、处理、筛选以及转发至缓存,最后在缓存中获取处理结果,以验证被校验数据是否满足SQL。
根据被校验的json数据获取可暂存该数据格式的数据表结构(schema)。设定缓存做为Flink的外部数据源,将被校验的json数据暂存至缓存,并设置key为sourceData。自定义Flink对缓存的连接器(connector),通过该连接器可直接获取缓存中sourceData对应的数据,并在获取数据后,可直接断开连接。创建流的执行环境,根据流的执行环境创建表环境,用于注册创建数据源和数据目的地。在表环境中根据自定义的缓存连接器以及获取的schema注册一个临时数据表,将缓存中的json数据反序列化处理后暂存至该临时表中。对该数据表中的数据执行SQL语句,判定数据表中的数据是否满足SQL,如果执行错误,则判定数据不满足SQL,即被校验数据跟SQL不匹配;反之,则判定被校验数据与SQL匹配,并将最后的筛选结果存至缓存,以便后期获取查看。
本发明主要考虑的是利用Flink实现对单条json数据格式的校验。避免因SQL或数据格式不正确造成的大批量数据处理问题,同时,利用缓存作为数据来源和目的地,简单高效。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (2)

1.一种基于Flink实现数据格式校验的方法,其特征在于,
设定缓存为Flink job的数据源和目的地,自定义Flink对缓存的连接器,其目的是对缓存中的单条json数据进行处理和校验,并将结果发送至缓存;
以缓存作为flink的数据源和数据目的地,增加flink对缓存的连接器,实现从缓存中获取被校验的json数据,并将数据根据SQL进行转换、处理、筛选以及转发至缓存,最后在缓存中获取处理结果,以验证被校验数据是否满足SQL;
根据被校验的json数据获取可暂存该数据格式的数据表结构schema;
设定缓存做为Flink的外部数据源,将被校验的json数据暂存至缓存,并设置key为sourceData;
自定义Flink对缓存的连接器,通过该连接器可直接获取缓存中sourceData对应的数据,并在获取数据后,可直接断开连接;
创建流的执行环境,根据流的执行环境创建表环境,用于注册创建数据源和数据目的地;
在表环境中根据自定义的缓存连接器以及获取的schema注册一个临时数据表,将缓存中的json数据反序列化处理后暂存至该临时表中。
2.根据权利要求1所述的方法,其特征在于,
对该数据表中的数据执行SQL语句,判定数据表中的数据是否满足SQL,如果执行错误,则判定数据不满足SQL,即被校验数据跟SQL不匹配;反之,则判定被校验数据与SQL匹配,并将最后的筛选结果存至缓存,以便后期获取查看。
CN201911034885.6A 2019-10-29 2019-10-29 一种基于Flink实现数据格式校验的方法 Active CN110781647B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911034885.6A CN110781647B (zh) 2019-10-29 2019-10-29 一种基于Flink实现数据格式校验的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911034885.6A CN110781647B (zh) 2019-10-29 2019-10-29 一种基于Flink实现数据格式校验的方法

Publications (2)

Publication Number Publication Date
CN110781647A CN110781647A (zh) 2020-02-11
CN110781647B true CN110781647B (zh) 2023-07-04

Family

ID=69387174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911034885.6A Active CN110781647B (zh) 2019-10-29 2019-10-29 一种基于Flink实现数据格式校验的方法

Country Status (1)

Country Link
CN (1) CN110781647B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158891B (zh) * 2020-04-02 2020-07-07 武汉中科通达高新技术股份有限公司 基于Flink技术的分析任务处理方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293977A (zh) * 2015-05-15 2017-01-04 阿里巴巴集团控股有限公司 一种数据校验方法与设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600432B2 (en) * 2014-04-17 2017-03-21 International Business Machines Corporation Verifying runtime switch-over between multiple I/O protocols on shared I/O connection
US10324773B2 (en) * 2015-09-17 2019-06-18 Salesforce.Com, Inc. Processing events generated by internet of things (IoT)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293977A (zh) * 2015-05-15 2017-01-04 阿里巴巴集团控股有限公司 一种数据校验方法与设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨东盛.基于铁路数据服务平台的电务专业数据采集、共享及可视化研究.中国铁路.2019,正文第1节. *

Also Published As

Publication number Publication date
CN110781647A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
US10387236B2 (en) Processing data errors for a data processing system
US9122540B2 (en) Transformation of computer programs and eliminating errors
CN112287009A (zh) 接口调用和接口数据入库方法、装置、设备及存储介质
US20140344817A1 (en) Converting a hybrid flow
CN106919612B (zh) 一种上线结构化查询语言脚本的处理方法及装置
CN112052242A (zh) 数据查询方法、装置、电子设备及存储介质
CN111324526B (zh) 接口测试系统、方法和服务器
CN108984155A (zh) 数据处理流程设定方法和装置
CN110688544A (zh) 一种查询数据库的方法、设备及存储介质
CN111309751A (zh) 大数据处理方法及装置
CN110781647B (zh) 一种基于Flink实现数据格式校验的方法
US20160085659A1 (en) Base Line for Code Analysis
CN113238739A (zh) 一种插件开发和数据获取方法、装置、电子设备及介质
CN106843822B (zh) 一种执行代码生成方法及设备
CN106502842A (zh) 数据恢复方法及系统
JP2021140430A (ja) データベースマイグレーション方法、データベースマイグレーションシステム、及びデータベースマイグレーションプログラム
CN107273293B (zh) 大数据系统性能测试方法、装置及电子设备
CN115292327A (zh) 多表关联方法及装置、设备及存储介质
CN115048359A (zh) 一种多类型接入数据源的通用数据处理架构设计方法
CN111367791B (zh) 一种生成测试用例的方法、装置、介质和电子设备
CN109783477B (zh) 一种数据更新方法
CN113703739A (zh) 基于omiga引擎的跨语言融合计算方法、系统及终端
CN113377801A (zh) 数据检验方法、装置、电子设备及计算机存储介质
CN108415930B (zh) 一种数据解析方法及装置
CN113138767A (zh) 代码语言转换方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant after: Inspur cloud Information Technology Co.,Ltd.

Address before: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant before: Tidal Cloud Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant