CN111104464B - 一种数据同步修改方法、读取方法及系统、可读存储介质 - Google Patents

一种数据同步修改方法、读取方法及系统、可读存储介质 Download PDF

Info

Publication number
CN111104464B
CN111104464B CN201911414523.XA CN201911414523A CN111104464B CN 111104464 B CN111104464 B CN 111104464B CN 201911414523 A CN201911414523 A CN 201911414523A CN 111104464 B CN111104464 B CN 111104464B
Authority
CN
China
Prior art keywords
data
modification
tables
relational database
module
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
CN201911414523.XA
Other languages
English (en)
Other versions
CN111104464A (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.)
Chengdu School Spirit Technology Co ltd
Original Assignee
Chengdu School Spirit 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 Chengdu School Spirit Technology Co ltd filed Critical Chengdu School Spirit Technology Co ltd
Priority to CN201911414523.XA priority Critical patent/CN111104464B/zh
Publication of CN111104464A publication Critical patent/CN111104464A/zh
Application granted granted Critical
Publication of CN111104464B publication Critical patent/CN111104464B/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及非关系型数据库技术领域,具体涉及一种数据同步修改方法、读取方法及系统、可读存储介质;其中,该数据同步修改方法通过监听非关系型数据库中相关联的多个数据表中是否有数据表发生数据修改,若相关联的多个数据表中有数据表发生数据修改,则将数据表的修改数据同步修改至多个数据表中的其它数据表;而且,每组相关联的多个数据表分别通过一个对应的监听函数进行监听,每组相关联的多个数据表分别通过一个对应的同步修改函数进行同步修改。因此,本发明通过提供新的数据存储的表结构,即每组相关联的多个数据表分别对应一个监听函数和一个同步修改函数,解决了非关系型数据库的数据关联问题。

Description

一种数据同步修改方法、读取方法及系统、可读存储介质
技术领域
本发明涉及非关系型数据库技术,具体涉及一种非关系型数据库的数据同步修改方法、读取方法及系统、可读存储介质,尤其适用于SaaS平台。
背景技术
SaaS是Software as a service的缩写,其含义是软件即服务,是21世纪开始大量出现的一种全新的软件模式。SaaS通过Internet提供软件服务,SaaS平台提供方将软件部署在平台的服务器上,SaaS平台使用方可以根据实际的需求,向SaaS平台提供方购买所需要的软件服务,即可通过Internet使用其购买的软件服务。
传统的SaaS平台多采用常见的关系型数据库,如MySQL、Oracle、PostgreSQL等。上述传统的关系型数据库发展多年,有高度完备的查询语法和良好的处理效率,同时关系型数据库能很好的保持数据一致性,数据间的关联性也极强,再加上事务的特性,使得关系型数据库在SaaS领域有着不可替代的地位。
但随着SaaS平台数据量逐渐增加,传统的关系型数据库的弊端也渐渐暴露,如读取效率变慢、数据高度耦合、维护困难等问题,而非关系型数据库的出现能够很好的解决这些问题,目前SaaS平台的数据库也逐渐转向使用非关系型数据库,在实际运行是,如果数据量过于庞大,甚至达到数以亿计的量级,这时非关系型数据库的性能也将明显下降,同时由于SaaS平台的数据关联性都比较强,而非关系型数据库本身不能做到像关系型数据库那样关联数据,如何解决数据关联问题以及大数据量的读取效率问题,成为了当前SaaS平台亟待解决的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于:提供一种解决非关系型数据库的数据关联问题的数据同步修改方法。
为实现上述目的,本发明提供的一种数据同步修改方法,其特征在于,包括:
监听非关系型数据库中相关联的多个数据表中是否有数据表发生数据修改;其中,每组相关联的多个数据表分别通过一个对应的监听函数进行监听;
若相关联的多个数据表中有数据表发生数据修改,则将所述数据表的修改数据同步修改至所述多个数据表中的其它数据表;其中,每组相关联的多个数据表分别通过一个对应的同步修改函数进行同步修改。
基于统一发明构思,本发明一种数据同步修改系统,其包括:
监听模块,用于运行非关系型数据库中每组相关联的多个数据表所对应的监听函数,以监听每组相关联的多个数据表中是否有数据表发生数据修改;
同步修改模块,用于在所述监听模块监听到有数据表发生数据修改,则将所述数据表的修改数据同步修改至与其相关联的其它数据表。
为在解决非关系型数据库的数据关联问题的基础上,进一步解决非关系型数据库大数据量的读取效率不高的问题。本发明还提供一种数据读取方法,其包括:
将非关系型数据库中数据表的数据映射至内存中,作为内存的缓存数据;
读取所述内存中的缓存数据,以获取所述非关系型数据库中数据表的数据;
而且,所述非关系型数据库中数据表的数据采用如权利要求1所述的数据同步修改方法进行数据同步修改。
进一步地,本发明数据读取方法还包括:定期检验所述内存中的缓存数据与非关系型数据库中对应数据表的数据是否一致;若不一致,则更新所述内存中的缓存数据。
基于同一发明构思,本发明还提供一种数据存储系统,其包括:
数据存储模块,用于存储非关系型数据库;
监听模块,用于运行所述非关系型数据库中每组相关联的多个数据表所对应的监听函数,以监听每组相关联的多个数据表中是否有数据表发生数据修改;
同步修改模块,用于在所述监听模块监听到有数据表发生数据修改,则将所述数据表的修改数据同步修改至与其相关联的其它数据表。
基于同一发明构思,本发明还提供一种数据服务系统,其包括:
内存模块,用于缓存数据;
数据存储模块,用于存储非关系型数据库;
监听模块,用于运行所述非关系型数据库中每组相关联的多个数据表所对应的监听函数,以监听每组相关联的多个数据表中是否有数据表发生数据修改;
同步修改模块,用于在所述监听模块监听到有数据表发生数据修改,则将所述数据表的修改数据同步修改至与其相关联的其它数据表;
映射模块,用于将所述非关系型数据库中数据表的数据映射至所述内存模块中,作为所述内存的缓存数据。
进一步地,本发明的数据服务系统还包括:
更新模块,用于定期检验所述内存模块中的缓存数据与所述非关系型数据库中对应数据表的数据是否一致;若不一致,则更新所述内存模块中的缓存数据。
本发明还提供一种可读存储介质,其上存储有一个或多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时本发明的数据同步修改方法,或实现本发明的数据读取方法。
与现有技术相比,本发明的有益效果:
1、本发明的数据同步修改方法,通过监听非关系型数据库中相关联的多个数据表中是否有数据表发生数据修改,若相关联的多个数据表中有数据表发生数据修改,则将数据表的修改数据同步修改至多个数据表中的其它数据表;而且,每组相关联的多个数据表分别通过一个对应的监听函数进行监听,每组相关联的多个数据表分别通过一个对应的同步修改函数进行同步修改。因此,本发明通过提供新的数据存储的表结构,即每组相关联的多个数据表分别对应一个监听函数和一个同步修改函数,解决了非关系型数据库的数据关联问题。
2、本发明的数据读取方法,首先将非关系型数据库中数据表的数据映射至内存中,作为内存的缓存数据;通过读取内存中的缓存数据,以获取非关系型数据库中数据表的数据;而且,该非关系型数据库中数据表的数据采用本发明的数据同步修改方法进行数据同步修改。因此,本发明在解决非关系型数据库的数据关联问题的基础上,还通过将非关系型数据库的数据映射至内存中,提高读取效率。
附图说明
图1为本发明数据同步修改方法的流程图;
图2为本发明数据存储系统的结构示意图;
图3为本发明数据存储结构的示意图;
图4为本发明数据读取方法的流程示意图;
图5为本发明数据读取方法的一种实施例的流程示意图;
图6为本发明数据服务系统的结构示意图;
图7为本发明数据服务系统的一种实施例的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
如图1所示,本发明数据同步修改方法包括以下步骤:
监听非关系型数据库中相关联的多个数据表中是否有数据表发生数据修改;其中,每组相关联的多个数据表分别通过一个对应的监听函数进行监听;
若相关联的多个数据表中有数据表发生数据修改,则将所述数据表的修改数据同步修改至所述多个数据表中的其它数据表;其中,每组相关联的多个数据表分别通过一个对应的同步修改函数进行同步修改。
具体的,在非关系型数据库中,多次存储关联数据是非关系型数据库实现数据关联的常用方式,如图3所示的数据存储结构,该结构包括:所述结构包括:数据表A,数据表B,数据表C。其中,数据表A存储独立的信息,数据表B存储独立的信息,数据表C存储自己的信息,同时包括了数据表A和数据表B的信息。
以学生课程管理为例,但不仅仅局限于学生课程管理,数据表A存储课程信息,如课程内容,上课时间,上课地点等信息。数据表B存储教师信息,如教师姓名,教师年龄,教师性别,教师联系方式,教师简介等。数据表C存储学生信息,如学生姓名,学生年龄,学生性别,学生年级,学生家长姓名,学生家长联系方式等。
为了达到数据关联的效果,在数据表C中还会存储数据表A的课程信息,课程信息中又会包括数据表B中上课老师的信息。因此,修改发起方即为数据表A和数据表B,修改接收方即为数据表C,当数据表A和数据表B发生修改时,需要相应地同步修改数据表C中的数据。
在上述数据存储模块中,数据表C中存储了数据表A和数据表C的信息,如果监听函数监听到数据表A和数据表B中的数据发生了修改,则调用同步修改函数,同步修改数据表C中存储的数据表A和数据表B信息。
因此,本发明采用新的数据存储的表结构,且每组相关联的多个数据表分别对应一个监听函数和一个同步修改函数,解决了非关系型数据库的数据关联问题。
如图2所示,本发明的数据同步修改系统包括监听模块和同步修改模块。其中,监听模块用于运行非关系型数据库中每组相关联的多个数据表所对应的监听函数,以监听每组相关联的多个数据表中是否有数据表发生数据修改;同步修改模块用于在监听模块监听到有数据表发生数据修改,则将所述数据表的修改数据同步修改至与其相关联的其它数据表。
再如图2所示,本发明的数据存储系统包括:
数据存储模块,用于存储非关系型数据库;
监听模块,用于运行所述非关系型数据库中每组相关联的多个数据表所对应的监听函数,以监听每组相关联的多个数据表中是否有数据表发生数据修改;
同步修改模块,用于在所述监听模块监听到有数据表发生数据修改,则将所述数据表的修改数据同步修改至与其相关联的其它数据表。
具体的,本发明的数据存储系统是适用于非关系型数据库的数据存储,其中,数据存储模块具体的为服务器的存储硬盘,而监听模块和同步修改模块作为数据存储管理软件中的相应的功能模块,这些功能模块可以通过相应的程序模块来实现相应的功能。
在解决非关系型数据库的数据关联问题的基础上,为了进一步解决非关系型数据库大数据量的读取效率不高的问题。如图4所示,本发明还提供一种数据读取方法,其包括:
将非关系型数据库中数据表的数据映射至内存中,作为内存的缓存数据;
通过读取所述内存中的缓存数据,以获取所述非关系型数据库中数据表的数据;
而且,所述非关系型数据库中数据表的数据采用本发明数据同步修改方法进行数据同步修改。
进一步地,如图5所示,本发明数据读取方法还包括:定期检验内存中的缓存数据与非关系型数据库中对应数据表的数据是否一致;若不一致,则更新所述内存中的缓存数据。更新内存中的缓存数据后,下一次读取的内存中的缓存数据即可更新后的缓存数据。
如图6所示,基于同一发明构思,本发明还提供一种数据服务系统,其包括:
内存模块,用于缓存数据;
数据存储模块,用于存储非关系型数据库;
监听模块,用于运行所述非关系型数据库中每组相关联的多个数据表所对应的监听函数,以监听每组相关联的多个数据表中是否有数据表发生数据修改;
同步修改模块,用于在所述监听模块监听到有数据表发生数据修改,则将所述数据表的修改数据同步修改至与其相关联的其它数据表;
映射模块,用于将所述非关系型数据库中数据表的数据映射至所述内存模块中,作为所述内存的缓存数据。
进一步地,如图7所示,本发明的数据服务系统还包括:
更新模块,用于定期检验所述内存模块中的缓存数据与所述非关系型数据库中对应数据表的数据是否一致;若不一致,则更新所述内存模块中的缓存数据。
具体的,本发明的数据服务系统是适用于非关系型数据库的数据存储与数据读取,尤其适用于SaaS平台。其中,数据存储模块具体为服务器的存储硬盘,内存模块具体为服务器的内存条,而监听模块、同步修改模块、映射模块和更新模块均作为数据存储管理软件中的相应的功能模块,这些功能模块可以通过相应的程序模块来实现相应的功能。
本发明还提供一种可读存储介质,如ROM存储设备、移动硬盘、U盘或者光盘等存储器,将一个或多个程序写入存储器中,并一个或多个处理器来执行该存储器中的程序。如此当该存储器中的程序被处理器执行时实现本发明的数据同步修改方法,或实现本发明的数据读取方法。

Claims (8)

1.一种数据同步修改方法,其特征在于,包括:
监听非关系型数据库中相关联的多个数据表中是否有数据表发生数据修改;其中,每组相关联的多个数据表分别通过一个对应的监听函数进行监听;
若相关联的多个数据表中有数据表发生数据修改,则将所述数据表的修改数据同步修改至所述多个数据表中的其它数据表;其中,每组相关联的多个数据表分别通过一个对应的同步修改函数进行同步修改。
2.一种数据同步修改系统,其特征在于,包括:
监听模块,用于运行非关系型数据库中每组相关联的多个数据表分别分别所对应的一个监听函数,以监听每组相关联的多个数据表中是否有数据表发生数据修改;
同步修改模块,用于在所述监听模块监听到有数据表发生数据修改,则将所述数据表的修改数据同步修改至与其相关联的其它数据表。
3.一种数据读取方法,其特征在于,包括:
将非关系型数据库中数据表的数据映射至内存中,作为内存的缓存数据;
读取所述内存中的缓存数据,以获取所述非关系型数据库中数据表的数据;
而且,所述非关系型数据库中数据表的数据采用如权利要求1所述的数据同步修改方法进行数据同步修改。
4.如权利要求3所述的数据读取方法,其特征在于,包括:定期检验所述内存中的缓存数据与非关系型数据库中对应数据表的数据是否一致;若不一致,则更新所述内存中的缓存数据。
5.一种数据存储系统,其特征在于,包括:
数据存储模块,用于存储非关系型数据库;
监听模块,用于运行所述非关系型数据库中每组相关联的多个数据表分别所对应的一个监听函数,以监听每组相关联的多个数据表中是否有数据表发生数据修改;
同步修改模块,用于在所述监听模块监听到有数据表发生数据修改,则将所述数据表的修改数据同步修改至与其相关联的其它数据表。
6.一种数据服务系统,其特征在于,包括:
内存模块,用于缓存数据;
数据存储模块,用于存储非关系型数据库;
监听模块,用于运行所述非关系型数据库中每组相关联的多个数据表分别所对应的一个监听函数,以监听每组相关联的多个数据表中是否有数据表发生数据修改;
同步修改模块,用于在所述监听模块监听到有数据表发生数据修改,则将所述数据表的修改数据同步修改至与其相关联的其它数据表;
映射模块,用于将所述非关系型数据库中数据表的数据映射至所述内存模块中,作为所述内存的缓存数据。
7.如权利要求6所述的数据服务系统,其特征在于,还包括:
更新模块,用于定期检验所述内存模块中的缓存数据与所述非关系型数据库中对应数据表的数据是否一致;若不一致,则更新所述内存模块中的缓存数据。
8.一种可读存储介质,其上存储有一个或多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时实现权利要求1所述的数据同步修改方法,或实现权利要求3或4所述的数据读取方法。
CN201911414523.XA 2019-12-31 2019-12-31 一种数据同步修改方法、读取方法及系统、可读存储介质 Active CN111104464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911414523.XA CN111104464B (zh) 2019-12-31 2019-12-31 一种数据同步修改方法、读取方法及系统、可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911414523.XA CN111104464B (zh) 2019-12-31 2019-12-31 一种数据同步修改方法、读取方法及系统、可读存储介质

Publications (2)

Publication Number Publication Date
CN111104464A CN111104464A (zh) 2020-05-05
CN111104464B true CN111104464B (zh) 2023-07-04

Family

ID=70425864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911414523.XA Active CN111104464B (zh) 2019-12-31 2019-12-31 一种数据同步修改方法、读取方法及系统、可读存储介质

Country Status (1)

Country Link
CN (1) CN111104464B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325037A (zh) * 2018-08-17 2019-02-12 中国平安人寿保险股份有限公司 一种针对海量数据的数据同步方法、存储介质和服务器
CN110059092A (zh) * 2019-04-22 2019-07-26 广州市品高软件股份有限公司 基于区块链的关系型数据库的数据写入方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8261189B2 (en) * 2005-11-30 2012-09-04 International Business Machines Corporation Database monitor replay
CN106557592A (zh) * 2016-12-02 2017-04-05 中铁程科技有限责任公司 数据同步方法、装置及服务器集群
CN107885824A (zh) * 2017-11-07 2018-04-06 北京锐安科技有限公司 一种数据读写方法及系统
CN110347672A (zh) * 2019-05-27 2019-10-18 深圳壹账通智能科技有限公司 数据表关联更新的验证方法及装置、电子设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325037A (zh) * 2018-08-17 2019-02-12 中国平安人寿保险股份有限公司 一种针对海量数据的数据同步方法、存储介质和服务器
CN110059092A (zh) * 2019-04-22 2019-07-26 广州市品高软件股份有限公司 基于区块链的关系型数据库的数据写入方法及系统

Also Published As

Publication number Publication date
CN111104464A (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
US9521052B1 (en) Methods, systems, and computer readable mediums for utilizing application programming interfaces for accessing key performance indicator information
US9418094B2 (en) Method and apparatus for performing multi-stage table updates
WO2016004813A1 (zh) 数据存储方法、查询方法及设备
CN104899295B (zh) 一种异构数据源数据关联分析方法
US10860562B1 (en) Dynamic predicate indexing for data stores
CN104519103B (zh) 网络数据的同步处理方法、服务器及相关系统
CN109815344B (zh) 基于参数共享的网络模型训练系统、方法、装置和介质
CN104572856A (zh) 一种服务起源数据的融合存储方法
CN110837520A (zh) 一种数据处理方法、平台及系统
CN111651519B (zh) 数据同步方法、数据同步装置、电子设备及存储介质
CN111666344B (zh) 异构数据同步方法及装置
WO2020215799A1 (zh) 基于日志分析的MongoDB数据迁移监控方法及装置
CN111367924A (zh) 数据同步方法、装置、电子设备、存储介质
CN111104464B (zh) 一种数据同步修改方法、读取方法及系统、可读存储介质
CN106528803A (zh) 一种MongoDB数据库对象复制延迟监控方法和装置
CA2974984A1 (en) Method and system for analysis of user data based on social network connections
CN105528274A (zh) 一种优化加速的磁盘监控方法及系统
US11475017B2 (en) Asynchronous data enrichment for an append-only data store
CN111949728A (zh) 一种动态数据差异比对方法与系统
CN113220726A (zh) 一种数据质量检测方法及系统
CN111913973A (zh) 一种数据同步方法、装置及存储介质
CN105205168A (zh) 一种基于Redis数据库的曝光系统及其操作方法
CN113448950B (zh) 一种基于数据量的本地化硬件部署方法
US20240171827A1 (en) Bullet-screen comment processing method and system
CN116756247B (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
GR01 Patent grant
GR01 Patent grant