CN117520564A - 基于Flink的知识图谱持续动态构建方法、装置及存储介质 - Google Patents
基于Flink的知识图谱持续动态构建方法、装置及存储介质 Download PDFInfo
- Publication number
- CN117520564A CN117520564A CN202311628862.4A CN202311628862A CN117520564A CN 117520564 A CN117520564 A CN 117520564A CN 202311628862 A CN202311628862 A CN 202311628862A CN 117520564 A CN117520564 A CN 117520564A
- Authority
- CN
- China
- Prior art keywords
- data source
- flink
- target
- sql
- connector
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000010276 construction Methods 0.000 title claims description 23
- 230000006870 function Effects 0.000 claims abstract description 75
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000013507 mapping Methods 0.000 claims abstract description 22
- 238000013506 data mapping Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 39
- 238000013500 data storage Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 241000475481 Nebula Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请揭示了基于Flink的知识图谱持续动态构建方法,装置及存储介质。该方法的主要步骤包括配置结构化、半结构化和非结构化数据源的连接信息,使用Flink‑sql连接器和UDF函数连接至目标图数据库,创建图空间和定义实体关系,以及通过虚拟表将不同数据源的数据存储于分布式计算集群中。随后,预先配置好的数据映射规则被执行,将虚拟表中的数据映射至目标图数据库。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及基于Flink的知识图谱持续动态构建方法、装置及存储介质。
背景技术
随着企业知识管理的不断深化和信息技术的飞速发展,知识图谱已经成为企业智能化管理和创新的核心工具。作为一种高度结构化的知识表示模型,知识图谱能够有效整合和关联企业内部的大量信息,为决策提供支持、促进团队协作、并推动创新发展。
然而,传统的知识图谱构建方法却存在一系列挑战。这些方法通常依赖于批量处理结构化和非结构化数据,导致在数据更新或新增时需要重新构建整个知识图谱,进而引发了重复的劳动和构建过程的延迟。这不仅浪费了大量时间和资源,还难以满足企业对知识图谱实时性的迫切需求。
在传统方法中,构建周期长、劳动繁琐,难以应对知识持续演进的业务需求。企业知识并非静止不变,而是不断发展和演化的,因此需要一种更灵活、高效、实时的构建方法来满足知识图谱持续演进的需求。这些问题共同限制了知识图谱在实际业务中的广泛应用,使得企业难以充分挖掘和利用自身的知识资产。
针对这些挑战和问题,本申请提出了一种基于Flink的知识图谱持续构建方法。通过充分利用数据处理引擎的实时处理能力,以及提供各类连接器和函数,使得知识图谱的构建过程更加灵活、高效、并能够实现实时构建。这种创新性的解决方案不仅克服了传统方法中的种种不足,而且为企业知识图谱的应用效果提供了全新的可能性。通过持续演进的知识图谱,企业将更好地适应变化的业务环境,从而提升竞争力和推动创新发展。
发明内容
为了解决上述技术问题,本申请提供了基于Flink的知识图谱持续动态构建方法、装置及存储介质,下面对本申请中的技术方案进行描述:
本申请第一方面提供了一种基于Flink的知识图谱持续动态构建方法,所述方法包括:
配置结构化数据源、半结构化数据源以及非结构化数据源的数据源连接信息;
对所述结构化数据源,配置第一Flink-sql连接器,对所述半结构化数据源配置第二Flink-sql连接器;
对所述非结构化数据源,调用Flink-sql中的目标UDF函数;
基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,根据所述连接信息分别将所述结构化数据源、半结构化数据源以及非结构化数据源连接至目标图数据库;
在所述目标图数据库中创建图空间以及定义实体和实体关系;
基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,创建虚拟表,并存储至分布式计算集群中;
基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,将所述结构化数据源、半结构化数据源以及非结构化数据源的数据存储至所述虚拟表中;
执行预先配置好的数据映射规则,将所述虚拟表中的数据映射至所述目标图数据库中。
可选的,所述基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,根据所述连接信息分别将所述结构化数据源、半结构化数据源以及非结构化数据源连接至目标图数据库包括:
在各个连接器中配置目标图数据库的图数据库连接信息;
根据所述目标图数据库连接信息,各个连接器通过Flink的流处理引擎与图数据库建立连接;
通过Flink的流处理引擎,将结构化数据源、半结构化数据源和非结构化数据源的数据流整合。
可选的,所述对所述非结构化数据源,调用Flink-sql中的目标UDF函数包括:
生成自定义UDF函数;
在所述Flink-sql注册所述自定义UDF函数;
通过DataStream API调用所述自定义UDF函数。
可选的,所述基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,创建虚拟表,并存储至分布式计算集群中包括:
对于结构化数据源,使用所述第一Flink-sql连接器创建第一数据源表格;
对于半结构化数据源,使用所述第二Flink-sql连接器创建第二数据源表格;
对于非结构化数据,基于所述目标UDF函数注册第三数据源表格;
注册目标表格,所述目标表格用于存储目标图数据库的信息以及配置参数;
基于所述第一数据源表格、第二数据源表格以及第三数据源表格,使用CREATEVIEW语句注册虚拟表,并将所述虚拟表分区存储至分布式计算集群的各个目标节点中。
本申请第二方面提供了一种基于Flink的知识图谱持续动态构建装置,包括:
数据源配置单元,用于配置结构化数据源、半结构化数据源以及非结构化数据源的数据源连接信息;
连接器配置单元,用于对所述结构化数据源,配置第一Flink-sql连接器,对所述半结构化数据源配置第二Flink-sql连接器;
函数配置单元,用于对所述非结构化数据源,调用Flink-sql中的目标UDF函数;
连接单元,用于基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,根据所述连接信息分别将所述结构化数据源、半结构化数据源以及非结构化数据源连接至目标图数据库;
图空间定义单元,用于在所述目标图数据库中创建图空间以及定义实体和实体关系;
虚拟表创建单元,用于基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,创建虚拟表,并存储至分布式计算集群中;
数据存储单元,用于基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,将所述结构化数据源、半结构化数据源以及非结构化数据源的数据存储至所述虚拟表中;
数据映射单元,用于执行预先配置好的数据映射规则,将所述虚拟表中的数据映射至所述目标图数据库中。
本申请第三方面提供了一种基于Flink的知识图谱持续动态构建装置,所述装置包括:
处理器、存储器、输入输出单元以及总线;
所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
所述存储器保存有程序,所述处理器调用所述程序以执行第一方面以及第一方面中任一项可选的所述方法。
本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时执行第一方面以及第一方面中任一项可选的所述方法。
从以上技术方案可以看出,本申请具有以下优点:
1、通过使用Flink的流处理引擎,该方法能够实现知识图谱的实时构建。一旦企业的知识发生更新或新增,系统会无感知地将更新或新增的知识及时构建到知识图谱中,无需用户手动进行构建操作,保证了知识图谱的实时性。
2、提供了配置多种数据源的连接信息的能力,包括结构化数据源、半结构化数据源和非结构化数据源。通过配置Flink-sql连接器和调用UDF函数,实现了对不同类型数据源的适配,使得方法具有良好的灵活性和可扩展性。
3、通过将虚拟表存储至分布式计算集群中,使得方法能够充分利用大数据处理的优势,处理海量数据而不受性能影响,实现了对大规模知识图谱的构建和管理。
4、引入了各类Flink-sql连接器,增强了图谱构建任务的可配置性。用户可以根据实际需求选择合适的连接器和配置参数,以适应不同的数据源和构建场景。
5、提供了Flink-sql的UDF函数,特别用于处理非结构化数据(文本、视频)。通过UDF函数,能够在Flink框架中对文本、视频类数据进行特征提取,将其转化为结构化数据,为知识图谱的构建提供了更多的数据来源。
通过监控知识是否更新或新增的状态,使得知识图谱的构建能够持续动态进行,避免了重复劳动和构建延迟,满足了企业知识持续演进的需求。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请中提供的基于Flink的知识图谱持续动态构建方法的一个实施例流程示意图;
图2为本申请中步骤S106的一个实施例流程示意图;
图3为本申请中提供的基于Flink的知识图谱持续动态构建装置的一个实施例结构示意图;
图4为本申请中提供的基于Flink的知识图谱持续动态构建装置的另一个实施例结构示意图。
具体实施方式
需要说明的是,本申请提供的方法,可以应用于终端也可以应用于系统,还可以应用于服务器上,例如终端可以是智能手机或电脑、平板电脑、智能电视、智能手表、便携计算机终端也可以是台式计算机等固定终端。为方便阐述,本申请中以终端为执行主体进行举例说明。
请参阅图1,本申请首先提供了一个基于Flink的知识图谱持续动态构建方法的实施例,该实施例包括:
S101、配置结构化数据源、半结构化数据源以及非结构化数据源的数据源连接信息;
在这一步骤中,需要提供对结构化、半结构化和非结构化数据源的连接信息。这包括数据库的连接字符串、用户名、密码等信息。对于结构化数据源,比如PostgreSQL或MySQL,连接信息可能包括主机地址、端口号、数据库名称等。对于半结构化数据源,比如MongoDB或Kafka,连接信息可能包括主机地址、端口号、topic名称等。非结构化数据源,如文本和视频,可能需要提供数据存储路径或访问方式。
在一个具体的实施例中,可以提供一个用户友好的配置界面,通过图形化方式收集用户对数据源的连接信息。用户可以在界面中填写相关信息,如主机地址、端口号、数据库名称、用户名、密码等。这样的配置界面可以使用Web应用程序或桌面应用程序实现。
允许用户通过配置文件的方式提供连接信息。用户可以编辑一个特定格式的文本文件,其中包含了结构化、半结构化和非结构化数据源的连接信息。这个文件可以由用户手动创建或由系统提供模板。
对于一些命令行工具或脚本,可以通过命令行参数来传递连接信息。用户在运行程序时直接在命令行中指定连接信息,例如:
./data-import-tool--host=localhost--port=5432--database=mydb--username=user--password=pass
使用环境变量来传递连接信息。这种方式适用于一些部署在容器环境或云平台上的应用程序,用户可以在环境变量中设置连接信息。
在实际应用中,可以采用以上的一种或多种方式,具体选择取决于系统的架构、用户使用场景以及安全性考虑。需要确保用户提供的连接信息能够被安全地传递和存储,并对敏感信息采取适当的加密或保护措施。
S102、对所述结构化数据源,配置第一Flink-sql连接器,对所述半结构化数据源配置第二Flink-sql连接器;
在这一步骤中,需要根据所述结构化和半结构化数据源的类型,配置相应的Flink-sql连接器。这些连接器可以是预先定义的或用户自定义的,用于从不同的数据源中读取数据。例如,对于结构化数据源,可能配置一个使用CDC(Change Data Capture)技术的连接器,而对于半结构化数据源,可能配置一个特定于该数据源类型的连接器。
实现这一步骤的具体方式可以有多种。以下是一种可能的实现方法:
首先,定义一个连接器接口,用于连接不同类型的数据源。这个接口可以包括方法用于初始化连接、读取数据等操作。例如:
创建一个实现了连接器接口的结构化数据源连接器。这个连接器可以根据CDC技术配置,以便实现实时的数据变更捕获。下面提供一个示例代码:
类似地,创建一个半结构化数据源连接器的实现。这个连接器可以依据特定于该数据源类型的配置。
在系统配置中,指定使用哪个连接器处理哪个类型的数据源。这可以通过配置文件、数据库记录或其他配置机制完成。在系统运行时,根据配置动态加载所需的连接器。可以使用Java的反射机制或其他动态加载技术。
上述几个示例中使用了Java语言,实际实现可以根据所使用的编程语言和Flink的版本进行调整。在Flink中,还可以使用Flink的Table API和DataStream API来实现这些连接器
S103、对所述非结构化数据源,调用Flink-sql中的目标UDF函数;
在这一步骤中,用户调用Flink-sql中的目标UDF函数,对非结构化数据源进行处理。这可能涉及到文本处理、视频处理等操作,以将非结构化数据转化为结构化数据,方便后续的处理和存储。
该步骤中,需要创建和注册Flink UDF函数,然后在Flink SQL中调用这些函数来处理非结构化数据。
具体的,首先,需要实现一个或多个FlinkUDF函数,用于处理非结构化数据。这些函数可能包括文本处理、视频处理等逻辑。
下面提供一个创建Flink UDF函数的代码示例:
在Flink程序中注册所创建的UDF函数,以便后续在SQL中使用。然后在FlinkSQL中,通过调用注册的UDF函数来处理非结构化数据。
下面提供一个调用Flink UDF函数的代码示例:
上述示例中,unstructuredText和unstructuredVideo是非结构化数据源中的字段,processedText和processedVideo是处理后的结构化数据。
处理后的结果可以存储到虚拟表中,供后续步骤使用,这个实现过程基于Flink的Table API和FlinkSQL。
在步骤S103中,调用FlinkSQL中的目标UDF函数对非结构化数据源进行处理带来了一些好处:
非结构化数据通常包含不同格式和形式的信息,例如文本或视频数据。通过调用目标UDF函数,可以将这些非结构化数据标准化为结构化的格式,便于后续处理和分析。
使用UDF函数将处理逻辑封装在函数内,提高了代码的可读性和维护性。这使得处理非结构化数据的逻辑更易于理解和调试。
使用UDF函数的方式使得处理逻辑与主处理流程解耦,提高了系统的灵活性和可扩展性。如果需要添加或修改处理逻辑,可以在不影响主要流程的情况下进行。
不同的非结构化数据源可能需要不同的处理逻辑。通过定义不同的UDF函数,可以适应各种非结构化数据源的处理需求,而无需修改主要处理流程。
FlinkSQL提供了一种声明式的SQL抽象,让用户能够以更直观的方式定义数据处理流程。通过在SQL中调用UDF函数,将业务逻辑嵌入SQL查询,使得整个数据处理过程更加紧凑和易管理。
S104、基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,根据所述连接信息分别将所述结构化数据源、半结构化数据源以及非结构化数据源连接至目标图数据库;
在这一步骤中,系统利用配置好的Flink-sql连接器和UDF函数,根据连接信息连接至不同类型的数据源。即系统开始获取结构化、半结构化和非结构化数据,并准备将这些数据存储至目标图数据库。
该步骤中,首先需要选择一个选择适合的图数据库,例如,可以选择开源图数据库如Neo4j、JanusGraph,或者云服务提供的图数据库。
获取图数据库的连接信息,包括图数据库的地址、端口、用户名、密码等。这些信息通常由图数据库提供,并可在其官方文档中找到。
根据所选图数据库,配置Flink-sql连接器,使其能够与图数据库进行通信。Flink提供了一些图数据库连接器,例如,如果使用的是Nebula Graph,可以使用Nebula-Connector,如果是Neo4j,可以考虑使用Neo4j-Connector。如果没有现成的连接器,可以自定义一个适配器。在Flink-sql中使用配置的连接器,并提供图数据库的连接信息。这可以通过类似以下的语句实现:
在Flink-sql中执行相应的SQL操作,例如,将结构化数据写入图数据库中,或从图数据库中读取数据。
下面提供一个该步骤的另一个可选的实施例,该可选的实施例中,该步骤可以包括:
在各个连接器中配置目标图数据库的图数据库连接信息;
根据所述目标图数据库连接信息,各个连接器通过Flink的流处理引擎与图数据库建立连接;
通过Flink的流处理引擎,将结构化数据源、半结构化数据源和非结构化数据源的数据流整合。
该可选的实施例中,在第一Flink-sql连接器、第二Flink-sql连接器以及目标UDF函数中,需要配置与目标图数据库的连接信息,包括图数据库的地址、端口、认证信息等。这确保了连接器和函数能够正确地与目标图数据库通信。
各个连接器通过配置好的图数据库连接信息,利用Flink的流处理引擎与目标图数据库建立连接。这可能涉及到图数据库提供的连接器或者通过自定义适配器来实现连接。通过Flink的流处理引擎,结构化数据源、半结构化数据源和非结构化数据源的数据流被整合。这可以通过Flink的DataStreamAPI进行实现,将不同数据源的数据以流的形式传输到Flink中,然后进行统一的处理和操作。
S105、在所述目标图数据库中创建图空间以及定义实体和实体关系;
在目标图数据库中创建图空间并定义实体和实体关系的Schema是图数据库构建过程中的关键步骤。
该步骤中,首先创建图空间(Graph Space),图数据库中的图空间是用于存储图数据的逻辑隔离区域。不同的图数据库可能有不同的术语,例如,对于Nebula Graph,图空间称为Namespace。在这一步,通过执行相应的命令或API调用,在图数据库中创建一个新的图空间。
在创建的图空间中,定义图中的实体,以及每个实体的属性。实体可以看作是图中的节点,而属性是节点具有的特征或信息。例如,在一个社交网络图中,用户可以是一个实体,而用户的属性可能包括用户名、年龄等。
下面提供一个示例:
CREATE TAG Person(name string,age int);
该示例中,创建了一个名为"Person"的实体,该实体包含了"name"和"age"两个属性。
在图数据库中,关系用于连接实体,形成图的边。定义关系类型,明确图中实体之间的关联关系。
下面提供一个示例:
CREATE EDGE Knows(weight double);
这里创建了一个名为"Knows"的关系类型,该关系类型包含了一个权重属性"weight"。
一旦Schema定义完成,可以通过插入和更新操作将数据导入图数据库。进一步可以通过步骤S107中的虚拟表中的数据映射到定义好的实体和关系上。
S106、基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,创建虚拟表,并存储至分布式计算集群中;
在这一步骤中,系统使用Flink-sql连接器和UDF函数创建虚拟表,并将这些虚拟表存储至分布式计算集群中。虚拟表用于存储从不同数据源获取的数据,为后续的数据映射做准备。
在FlinkSQL中,通过使用相应的Flink-sql连接器,连接到结构化和半结构化数据源,配置连接信息,以便Flink可以从这些数据源读取数据。对于非结构化数据源,调用相应的UDF函数进行数据处理。例如文本处理、视频处理等操作,以将非结构化数据转换为结构化数据。
使用FlinkSQL创建虚拟表,将连接的数据源定义为虚拟表,并可以对表进行一些处理操作。
下面提供一个创建虚拟表的实例:
在上述示例中,创建了一个虚拟表VirtualTable,通过连接StructuredSourceTable和SemiStructuredSourceTable,并在WHERE子句中添加了过滤条件。
Flink可以运行在分布式计算集群上,可以使用Flink提供的存储插件将虚拟表的数据存储到分布式文件系统(如HDFS)或其他存储系统中。
S107、基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,将所述结构化数据源、半结构化数据源以及非结构化数据源的数据存储至所述虚拟表中;
在这一步骤中,系统将从结构化、半结构化和非结构化数据源获取的数据存储至相应的虚拟表中。这可能需要进行数据清洗、转换和标准化等操作,以确保数据的一致性和符合目标图数据库Schema。
在将从结构化、半结构化和非结构化数据源获取的数据存储至相应的虚拟表中的步骤中,需要进行数据清洗、转换和标准化等操作,以确保数据的一致性和符合目标图数据库的Schema。以下是具体的实现步骤:
对从不同数据源获取的数据进行清洗和转换,确保数据的质量和一致性。这包括以下操作:
处理缺失值,填充默认值或使用插值等方法。
将数据类型转换为目标虚拟表的定义,确保数据类型的一致性。
对于日期、时间等字段,进行格式化以符合目标Schema。
去除或合并重复的数据记录。
将不同数据源的数据标准化为目标虚拟表的格式和结构。这包括统一字段命名、单位转换、标准编码等操作。
使用FlinkSQL对清洗和转换后的数据进行进一步处理,以满足虚拟表的定义。可以使用SQL查询语句对数据进行筛选、聚合、连接等操作。
下面提供一个代码示例:
--例:对结构化数据进行筛选和聚合
这个例子中,通过SQL查询对结构化数据进行了筛选和聚合操作,将结果插入到虚拟表中。
最终,将清洗、转换后的数据存储至相应的虚拟表中。这可以通过FlinkSQL中的INSERT INTO语句实现。
S108、执行预先配置好的数据映射规则,将所述虚拟表中的数据映射至所述目标图数据库中。
在这一步骤中,系统执行预先配置好的数据映射规则,将虚拟表中的数据映射至目标图数据库。这包括将虚拟表中的字段映射为图数据库中的实体、关系类型和属性,确保数据正确、完整地存储至图数据库中。
具体的,需要预先定义数据映射规则,明确虚拟表中的哪些字段将映射为图数据库中的实体、关系类型和属性。这可以通过配置文件、元数据管理系统或专门的映射规则工具来实现。
使用FlinkSQL执行数据映射规则。例如将虚拟表中的字段按照映射规则进行转换,以生成符合图数据库要求的数据格式。
下面提供一个代码示例:
--例:执行映射规则,将虚拟表中的数据映射至图数据库
在上述例子中,通过SQL查询将虚拟表中的数据按照映射规则转换为图数据库中的实体和关系,并插入到图数据库中。
使用图数据库提供的API或连接器,将映射后的数据存储至目标图数据库。包括调用图数据库的插入接口、导入工具等方式,将数据传输至图数据库中。
该步骤中,通过预先配置好的映射规则,确保了虚拟表中的数据能够准确、一致地映射至目标图数据库。这有助于避免数据在映射过程中的错误或丢失,提高了数据的质量和一致性。映射规则的预先配置使系统更具灵活性。在数据模型或映射需求发生变化时,可以通过简单地修改映射规则而不需要修改系统整体结构,从而降低了维护和更新的成本。通过将映射规则作为配置的一部分,系统具有良好的可扩展性。当需要添加新的数据源或调整映射策略时,可以通过修改配置而不必修改代码,简化了系统的扩展和维护。可以设计映射规则,使得数据映射至目标图数据库的过程具有实时性。这样,一旦虚拟表中的数据发生变化,即可触发实时的映射操作,确保知识图谱能够及时反映企业内部知识的变化。预先配置的映射规则减少了人工手动操作的需求,降低了出错的可能性,提高了系统的自动化程度。
参阅图2,对于创建虚拟表,本申请还提供了一个更为具体的实施例,该实施例包括:
S201、对于结构化数据源,使用所述第一Flink-sql连接器创建第一数据源表格;
S202、对于半结构化数据源,使用所述第二Flink-sql连接器创建第二数据源表格;
S203、对于非结构化数据,基于所述目标UDF函数注册第三数据源表格;
S204、注册目标表格,所述目标表格用于存储目标图数据库的信息以及配置参数;
S205、基于所述第一数据源表格、第二数据源表格以及第三数据源表格,使用CREATE VIEW语句注册虚拟表,并将所述虚拟表分区存储至分布式计算集群的各个目标节点中。
该实施例中,对于结构化数据源,使用第一Flink-sql连接器创建第一数据源表格,这包括定义表格的结构、字段、索引等信息。对于半结构化数据源,使用第二Flink-sql连接器创建第二数据源表格,同样需要定义表格的结构以适应半结构化数据的特性。对于非结构化数据源,基于目标UDF函数注册第三数据源表格,这包括定义表格的结构和调用目标UDF函数的方式。
注册目标表格,用于存储目标图数据库的信息以及配置参数。这包括目标图数据库的连接信息、图数据库的模式定义等。注册目标表格的过程可以使用Flink-sql的DDL语句,具体语法根据所使用的目标存储系统而定。
基于第一、第二和第三数据源表格,使用CREATE VIEW语句注册虚拟表。这样的虚拟表可以视为对数据源表格的抽象,方便后续的查询和操作。
将虚拟表分区存储至分布式计算集群的各个目标节点中,以确保数据的分布式存储和高可用性。可以基于计算集群的管理工具和数据分区策略的配置。
该实施例通过创建数据源表格、注册目标表格、使用CREATE VIEW语句注册虚拟表,并将虚拟表分区存储至分布式计算集群的各个目标节点中,实现了在分布式计算环境中存储和管理数据的过程。这样的设计使得数据可以高效地被分布式计算集群利用,并为后续的数据映射和图数据库操作提供了基础。
上述实施例对本申请中的基于Flink的知识图谱持续动态构建方法的具体实现方式进行了详细的描述,下面对本申请中所涉及的装置进行详细描述:
参阅图3,本申请首先提供了一种基于Flink的知识图谱持续动态构建装置的实施例,该实施例包括:
数据源配置单元301,用于配置结构化数据源、半结构化数据源以及非结构化数据源的数据源连接信息;
连接器配置单元302,用于对所述结构化数据源,配置第一Flink-sql连接器,对所述半结构化数据源配置第二Flink-sql连接器;
函数配置单元303,用于对所述非结构化数据源,调用Flink-sql中的目标UDF函数;
连接单元304,用于基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,根据所述连接信息分别将所述结构化数据源、半结构化数据源以及非结构化数据源连接至目标图数据库;
图空间定义单元305,用于在所述目标图数据库中创建图空间以及定义实体和实体关系;
虚拟表创建单元306,用于基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,创建虚拟表,并存储至分布式计算集群中;
数据存储单元307,用于基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,将所述结构化数据源、半结构化数据源以及非结构化数据源的数据存储至所述虚拟表中;
数据映射单元308,用于执行预先配置好的数据映射规则,将所述虚拟表中的数据映射至所述目标图数据库中。
可选的,连接单元304具体用于:
在各个连接器中配置目标图数据库的图数据库连接信息;
根据所述目标图数据库连接信息,各个连接器通过Flink的流处理引擎与图数据库建立连接;
通过Flink的流处理引擎,将结构化数据源、半结构化数据源和非结构化数据源的数据流整合。
可选的,函数配置单元303具体用于:
生成自定义UDF函数;
在所述Flink-sql注册所述自定义UDF函数;
通过DataStream API调用所述自定义UDF函数。
虚拟表创建单元306具体用于:
对于结构化数据源,使用所述第一Flink-sql连接器创建第一数据源表格;
对于半结构化数据源,使用所述第二Flink-sql连接器创建第二数据源表格;
对于非结构化数据,基于所述目标UDF函数注册第三数据源表格;
注册目标表格,所述目标表格用于存储目标图数据库的信息以及配置参数;
基于所述第一数据源表格、第二数据源表格以及第三数据源表格,使用CREATEVIEW语句注册虚拟表,并将所述虚拟表分区存储至分布式计算集群的各个目标节点中。
参阅图4,本申请还提供了一种基于Flink的知识图谱持续动态构建装置,包括:
处理器401、存储器402、输入输出单元403、总线404;
处理器401与存储器402、输入输出单元403以及总线404相连;
存储器402保存有程序,处理器401调用程序以执行如上任一方法。
本申请还涉及一种计算机可读存储介质,计算机可读存储介质上保存有程序,当程序在计算机上运行时,使得计算机执行如上任一方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (7)
1.一种基于Flink的知识图谱持续动态构建方法,其特征在于,所述方法包括:
配置结构化数据源、半结构化数据源以及非结构化数据源的数据源连接信息;
对所述结构化数据源,配置第一Flink-sql连接器,对所述半结构化数据源配置第二Flink-sql连接器;
对所述非结构化数据源,调用Flink-sql中的目标UDF函数;
基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,根据所述连接信息分别将所述结构化数据源、半结构化数据源以及非结构化数据源连接至目标图数据库;
在所述目标图数据库中创建图空间以及定义实体和实体关系;
基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,创建虚拟表,并存储至分布式计算集群中;
基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,将所述结构化数据源、半结构化数据源以及非结构化数据源的数据存储至所述虚拟表中;
执行预先配置好的数据映射规则,将所述虚拟表中的数据映射至所述目标图数据库中。
2.根据权利要求1中所述的基于Flink的知识图谱持续动态构建方法,其特征在于,所述基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,根据所述连接信息分别将所述结构化数据源、半结构化数据源以及非结构化数据源连接至目标图数据库包括:
在各个连接器中配置目标图数据库的图数据库连接信息;
根据所述目标图数据库连接信息,各个连接器通过Flink的流处理引擎与图数据库建立连接;
通过Flink的流处理引擎,将结构化数据源、半结构化数据源和非结构化数据源的数据流整合。
3.根据权利要求1中所述的基于Flink的知识图谱持续动态构建方法,其特征在于,所述对所述非结构化数据源,调用Flink-sql中的目标UDF函数包括:
生成自定义UDF函数;
在所述Flink-sql注册所述自定义UDF函数;
通过DataStream API调用所述自定义UDF函数。
4.根据权利要求1中所述的基于Flink的知识图谱持续动态构建方法,其特征在于,所述基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,创建虚拟表,并存储至分布式计算集群中包括:
对于结构化数据源,使用所述第一Flink-sql连接器创建第一数据源表格;
对于半结构化数据源,使用所述第二Flink-sql连接器创建第二数据源表格;
对于非结构化数据,基于所述目标UDF函数注册第三数据源表格;
注册目标表格,所述目标表格用于存储目标图数据库的信息以及配置参数;
基于所述第一数据源表格、第二数据源表格以及第三数据源表格,使用CREATE VIEW语句注册虚拟表,并将所述虚拟表分区存储至分布式计算集群的各个目标节点中。
5.一种基于Flink的知识图谱持续动态构建装置,其特征在于,包括:
数据源配置单元,用于配置结构化数据源、半结构化数据源以及非结构化数据源的数据源连接信息;
连接器配置单元,用于对所述结构化数据源,配置第一Flink-sql连接器,对所述半结构化数据源配置第二Flink-sql连接器;
函数配置单元,用于对所述非结构化数据源,调用Flink-sql中的目标UDF函数;
连接单元,用于基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,根据所述连接信息分别将所述结构化数据源、半结构化数据源以及非结构化数据源连接至目标图数据库;
图空间定义单元,用于在所述目标图数据库中创建图空间以及定义实体和实体关系;
虚拟表创建单元,用于基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,创建虚拟表,并存储至分布式计算集群中;
数据存储单元,用于基于所述第一Flink-sql连接器、第二Flink-sql连接器以及所述目标UDF函数,将所述结构化数据源、半结构化数据源以及非结构化数据源的数据存储至所述虚拟表中;
数据映射单元,用于执行预先配置好的数据映射规则,将所述虚拟表中的数据映射至所述目标图数据库中。
6.一种基于Flink的知识图谱持续动态构建装置,其特征在于,所述装置包括:
处理器、存储器、输入输出单元以及总线;
所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
所述存储器保存有程序,所述处理器调用所述程序以执行如权利要求1至4任一项所述方法。
7.一种计算机可读存储介质,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时执行如权利要求1至4中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311628862.4A CN117520564A (zh) | 2023-11-30 | 2023-11-30 | 基于Flink的知识图谱持续动态构建方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311628862.4A CN117520564A (zh) | 2023-11-30 | 2023-11-30 | 基于Flink的知识图谱持续动态构建方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117520564A true CN117520564A (zh) | 2024-02-06 |
Family
ID=89743660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311628862.4A Pending CN117520564A (zh) | 2023-11-30 | 2023-11-30 | 基于Flink的知识图谱持续动态构建方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117520564A (zh) |
-
2023
- 2023-11-30 CN CN202311628862.4A patent/CN117520564A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8712965B2 (en) | Dynamic report mapping apparatus to physical data source when creating report definitions for information technology service management reporting for peruse of report definition transparency and reuse | |
CN110837492B (zh) | 一种多源数据统一sql提供数据服务的方法 | |
US5787437A (en) | Method and apparatus for shared management information via a common repository | |
US7516157B2 (en) | Relational directory | |
US9251222B2 (en) | Abstracted dynamic report definition generation for use within information technology infrastructure | |
CN107943945B (zh) | 一种大数据分析开发平台中异构算子管理方法 | |
US10521442B1 (en) | Hierarchical value-based governance architecture for enterprise data assets | |
US8037039B2 (en) | Runtime class database operation | |
WO2006026659A2 (en) | Services oriented architecture for data integration services | |
US9201700B2 (en) | Provisioning computer resources on a network | |
CN111625510A (zh) | 一种基于云映射的多源数据共享系统及方法 | |
CN103559189B (zh) | 基于元数据集成模型的电力仿真培训资源管理系统及方法 | |
KR100529661B1 (ko) | 오브젝트 통합 관리 시스템 | |
US11100098B2 (en) | Systems and methods for providing multilingual support for data used with a business intelligence server | |
CN102708203A (zh) | 一种基于xml元数据的数据库动态管理方法 | |
CN113157723B (zh) | 一种面向Hyperledger Fabric的SQL访问方法 | |
CN107977446A (zh) | 一种基于数据分区的内存网格数据加载方法 | |
CN115017182A (zh) | 一种可视化的数据分析方法及设备 | |
WO2004038607A2 (en) | A knowledge repository system for computing devices | |
CN114218218A (zh) | 基于数据仓库的数据处理方法、装置、设备及存储介质 | |
CN110889013B (zh) | 一种基于xml的数据关联方法、装置、服务器及存储介质 | |
US11615061B1 (en) | Evaluating workload for database migration recommendations | |
CN106599241A (zh) | 一种gis软件中针对大数据的可视化管理方法 | |
CN113934713A (zh) | 一种订单数据索引方法、系统、计算机设备以及存储介质 | |
WO2023151239A1 (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 |