CN110781647A - 一种基于Flink实现数据格式校验的方法 - Google Patents
一种基于Flink实现数据格式校验的方法 Download PDFInfo
- Publication number
- CN110781647A CN110781647A CN201911034885.6A CN201911034885A CN110781647A CN 110781647 A CN110781647 A CN 110781647A CN 201911034885 A CN201911034885 A CN 201911034885A CN 110781647 A CN110781647 A CN 110781647A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- sql
- flink
- json
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于Flink实现数据格式校验的方法,属于物联网技术领域,本发明以缓存作为flink的数据源(source)和数据目的地(sink),增加flink对缓存的连接器,实现从缓存中获取被校验的json数据,并将数据根据SQL进行转换、处理、筛选以及转发至缓存,最后在缓存中获取处理结果,以验证被校验数据是否满足SQL。
Description
技术领域
本发明涉及物联网技术,涉及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 (8)
1.一种基于Flink实现数据格式校验的方法,其特征在于,
设定缓存为Flink job的数据源和目的地,自定义Flink对缓存的连接器,其目的是对缓存中的单条json数据进行处理和校验,并将结果发送至缓存。
2.根据权利要求1所述的方法,其特征在于,
以缓存作为flink的数据源和数据目的地,增加flink对缓存的连接器,实现从缓存中获取被校验的json数据,并将数据根据SQL进行转换、处理、筛选以及转发至缓存,最后在缓存中获取处理结果,以验证被校验数据是否满足SQL。
3.根据权利要求2所述的方法,其特征在于,
根据被校验的json数据获取可暂存该数据格式的数据表结构schema。
4.根据权利要求3所述的方法,其特征在于,
设定缓存做为Flink的外部数据源,将被校验的json数据暂存至缓存,并设置key为sourceData。
5.根据权利要求4所述的方法,其特征在于,
自定义Flink对缓存的连接器,通过该连接器可直接获取缓存中sourceData对应的数据,并在获取数据后,可直接断开连接。
6.根据权利要求5所述的方法,其特征在于,
创建流的执行环境,根据流的执行环境创建表环境,用于注册创建数据源和数据目的地。
7.根据权利要求6所述的方法,其特征在于,
在表环境中根据自定义的缓存连接器以及获取的schema注册一个临时数据表,将缓存中的json数据反序列化处理后暂存至该临时表中。
8.根据权利要求7所述的方法,其特征在于,
对该数据表中的数据执行SQL语句,判定数据表中的数据是否满足SQL,如果执行错误,则判定数据不满足SQL,即被校验数据跟SQL不匹配;反之,则判定被校验数据与SQL匹配,并将最后的筛选结果存至缓存,以便后期获取查看。
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 true CN110781647A (zh) | 2020-02-11 |
CN110781647B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158891A (zh) * | 2020-04-02 | 2020-05-15 | 武汉中科通达高新技术股份有限公司 | 基于Flink技术的分析任务处理方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150301970A1 (en) * | 2014-04-17 | 2015-10-22 | International Business Machines Corporation | Verifying runtime switch-over between multiple i/o protocols on shared i/o connection |
CN106293977A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种数据校验方法与设备 |
US20170083386A1 (en) * | 2015-09-17 | 2017-03-23 | Salesforce.Com, Inc. | PROCESSING EVENTS GENERATED BY INTERNET OF THINGS (IoT) |
-
2019
- 2019-10-29 CN CN201911034885.6A patent/CN110781647B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150301970A1 (en) * | 2014-04-17 | 2015-10-22 | International Business Machines Corporation | Verifying runtime switch-over between multiple i/o protocols on shared i/o connection |
CN106293977A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种数据校验方法与设备 |
US20170083386A1 (en) * | 2015-09-17 | 2017-03-23 | Salesforce.Com, Inc. | PROCESSING EVENTS GENERATED BY INTERNET OF THINGS (IoT) |
Non-Patent Citations (1)
Title |
---|
杨东盛: "基于铁路数据服务平台的电务专业数据采集、共享及可视化研究" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158891A (zh) * | 2020-04-02 | 2020-05-15 | 武汉中科通达高新技术股份有限公司 | 基于Flink技术的分析任务处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110781647B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9483387B1 (en) | Tree comparison functionality for services | |
US9529662B1 (en) | Dynamic rule-based automatic crash dump analyzer | |
CN105426292A (zh) | 一种游戏日志实时处理系统及方法 | |
US20140344817A1 (en) | Converting a hybrid flow | |
CN110750592B (zh) | 数据同步的方法、装置和终端设备 | |
CN110019116B (zh) | 数据追溯方法、装置、数据处理设备及计算机存储介质 | |
CN111309751A (zh) | 大数据处理方法及装置 | |
CN111240772B (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN104899134A (zh) | 域名注册服务器自动化测试系统和方法 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN113032256B (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
CN110781647B (zh) | 一种基于Flink实现数据格式校验的方法 | |
CN116088846A (zh) | 一种持续集成代码格式的处理方法、相关装置及设备 | |
CN113900944A (zh) | 一种应用于Flink SQL的逻辑验证方法和装置 | |
CN111552839B (zh) | 一种基于xml模板的对象转换方法 | |
WO2014142876A1 (en) | Kernel functionality checker | |
CN106293862B (zh) | 一种可扩展标记语言xml数据的解析方法和装置 | |
CN106502842A (zh) | 数据恢复方法及系统 | |
CN112883088A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN115795059A (zh) | 一种面向敏捷开发的威胁建模方法及系统 | |
CN106599244B (zh) | 通用的原始日志清洗装置及方法 | |
CN115048359A (zh) | 一种多类型接入数据源的通用数据处理架构设计方法 | |
US11144435B1 (en) | Test case generation for software development using machine learning | |
CN115705297A (zh) | 代码调用检测方法、装置、计算机设备以及存储介质 | |
US20210194824A1 (en) | Methods and systems for generating deployment architecture and template |
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 |
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. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |