A data model is an abstract model that organizes elements of data and standardizes how they relate to one another and to the properties of real-world entities. Common Data Model (CDM) is one example of a data model. CDM includes a set of standardized, extensible data schemas. This collection of predefined schemas includes entities, attributes, semantic metadata, and relationships. The schemas represent commonly used concepts and activities, such as “Account” and “Campaign,” to simplify the creation, aggregation, and analysis of data. Data stored in accordance with the Common Data Model provides semantic consistency across applications and deployments.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
A data model metadata editor is described herein that enables a user to create or modify data model metadata associated with data stored in one or more data files. The data model metadata editor may be integrated within a customer data platform. In an embodiment, the data model metadata editor makes it easy for a user to create and/or modify the data model metadata by implementing a graphical user interface (GUI) that prompts the user to provide input and make selections in a manner that accords with rules concerning what information such metadata must include and how the contents of such metadata should be organized and formatted. Furthermore, the data model metadata editor may perform syntax checking, validate such input and selections against the aforementioned rules, and flag any detected errors and/or potential problems to the user. Still further, the data model metadata editor may apply the metadata included in the data model metadata files (e.g., data schemas) to actual customer data and present the results to the user within the editor GUI so that the user can visually confirm that changes made to the data model metadata accord with the customer data. In this way, the metadata model editor both makes it easier for the user to create/modify the data model metadata and automatically ensures that the data model metadata is correct prior to ingestion of the data into the customer data platform.
Further features and advantages of the embodiments, as well as the structure and operation of various embodiments, are described in detail below with reference to the accompanying drawings. It is noted that the claimed subject matter is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.
The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate embodiments of the application and, together with the description, further explain the principles of the embodiments and to enable a person skilled in the relevant art(s) to make and use the embodiments.
The features and advantages of the embodiments described herein will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
The following detailed description discloses numerous example embodiments. The scope of the present patent application is not limited to the disclosed embodiments, but also encompasses combinations of the disclosed embodiments, as well as modifications to the disclosed embodiments.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
In the discussion, unless otherwise stated, adjectives such as “substantially” and “about” modifying a condition or relationship characteristic of a feature or features of an embodiment of the disclosure, are understood to mean that the condition or characteristic is defined to within tolerances that are acceptable for operation of the embodiment for an application for which it is intended.
The example embodiments described herein are provided for illustrative purposes and are not limiting. The examples described herein may be adapted to any type of method or system for securing access to computing resources of an accessory device. Further structural and operational embodiments, including modifications/alterations, will become apparent to persons skilled in the relevant art(s) from the teachings herein.
Numerous exemplary embodiments are described as follows. It is noted that any section/subsection headings provided herein are not intended to be limiting. Embodiments are described throughout this document, and any type of embodiment may be included under any section/subsection. Furthermore, embodiments disclosed in any section/subsection may be combined with any other embodiments described in the same section/subsection and/or a different section/subsection in any manner.
A data model is an abstract model that organizes elements of data and standardizes how they relate to one another and to the properties of real-world entities.
Common Data Model (CDM) is one example of a data model. CDM is an open source data model that includes a set of standardized, extensible data schemas. This collection of predefined schemas includes entities, attributes, semantic metadata, and relationships. The schemas represent commonly used concepts and activities, such as “Account” and “Campaign,” to simplify the creation, aggregation, and analysis of data. Data stored in accordance with the Common Data Model provides semantic consistency across applications and deployments.
Common Data Model utilizes a metadata system that enables structural consistency and semantic meaning to be uniformly applied to data, such as data stored in a data lake, using hierarchical namespaces and folders that contain schematized data in standard Common Data Model format. The standardized metadata and self-describing data facilitates metadata discovery and interoperability between data producers and data consumers.
Certain terms relating to CDM will now be defined.
Common Data Model folder: A folder in a data lake instance that conforms to specific, well-defined, and standardized metadata structures and self-describing data. These folders facilitate metadata discovery and interoperability between data producers and data consumers.
*.manifest.cdm.json: A metadata file in a folder in a data lake instance that follows the Common Data Model metadata format and potentially references other sub-manifests for nested solutions. The presence of this file in a folder implies that the folder is a Common Data Model folder.
*.model.json: A metadata file in a folder in a data lake instance that follows the Common Data Model metadata format. The presence of this file in a folder implies that the folder is a Common Data Model folder.
*.cdm.json: A metadata file in the Common Data Model folder. When such a file has a name <entity_name>.cdm.json, then it contains the metadata about the specific entity, its attributes, semantic meanings of entity and attributes. A *.cdm.json file can also represent a “definitions file” that can be imported into a manifest. Such definition files can contain shared definitions that can be referenced in <entity_name>.cdm.json files. For example, a file “extraTraits.cdm.json” can exist. A “default.manifest.cdm.json” file can have an “import” pointing to this file. Once imported, an entity “entity1.cdm.json” can use a declared trait “is.vacationing”.
Data producer: A service or application that creates data in Common Data Model folders in a data lake instance.
Data consumer: A service or application that consumes data in Common Data Model folders in a data lake instance.
Each Common Data Model folder contains the following elements: (a) either (i) the *.manifest.cdm.json file(s) and one or more *.cdm.json files or (ii) the model.json file; and (b) the data files.
The *.manifest.cdm.json file contains information about the content of Common Data Model folder, entities comprising the folder, and relationships and links to underlying data files. The *.manifest.cdm.json format allows for multiple manifests stored in the single folder providing an ability to scope data for different data consuming solutions for various personas or business perspectives. Each entity definition is in an individual file making managing, navigation, and discoverability of entity metadata easier and more intuitive. It is noted that there can be a “parent” manifest file and one or more sub-manifest files that are referenced by the “parent” manifest file, wherein each of these files follows the *.manifest.cdm.json naming format.
The *.cdm.json file contains the definition for each Common Data Model entity and location of data files for each entity.
The *.model.json metadata file contains semantic information about entity records and attributes, and links to underlying data files. The existence of this file indicates compliance with the Common Data Model metadata format. The file might include standard entities that provide more built-in, rich semantic metadata that applications can leverage.
The data files in a Common Data Model folder have a well-defined structure and format (subfolders are optional) and are referenced in the *.manifest.cdm.json file(s) or in the model.json file. These files are often formatted in accordance with the .csv format, but other formats may also be supported.
A customer data platform (such as Microsoft® Dynamics 365® Customer Insights) may enable users thereof to provide customer data thereto via a process sometimes referred to as data load and ingestion. For example, the customer data platform may enable administrators to load customer data from disparate data sources. Once all the customer data is loaded, the customer data platform may then perform operations on such customer data. For example, the customer data platform may standardize the data and apply artificial intelligence (AI) to automatically match and merge customer data from various data sources. A comprehensive customer profile may then be created and persisted. Organizations may then enrich customer profiles with brand affinity and interest information from other sources. AI and machine learning (ML) may then be applied to this persistent customer data to derive insights and key performance indicators (KPIs) that power personalized experiences and optimize business processes across all channels of engagement.
As noted above, the data load and ingestion process is a necessary prelude to the customer data platform performing operations on the customer data. In some scenarios, the customer data may already be formatted in the aforementioned CDM format and situated in a data lake that is accessible to the customer data platform. In such scenarios, an administrator may mount the customer data directly into the customer data platform through a reference to a CDM model.json file or a manifest.cdm.json file.
In a conventional implementation, the administrator must manually (e.g., using a text editor or code editor) create either the *.model.json file or the *manifest.cdm.json/*.cdm.json files that adhere to the CDM format and upload these to the data lake. The administrator can then mount these files into the customer data platform in the manner described above. However, if the administrator makes a mistake in preparing the model.json or *manifest.cdm.json/*cdm.json files that is detected only after ingestion, then she will have to download the relevant metadata file(s) from the data lake, make any necessary edits, re-upload the relevant metadata file(s) to the data lake, and then interact with the customer data platform to ingest the files again. This is a tedious process for the user. Also, having to ingest the data files multiple times wastes system resources (e.g., processing power, network bandwidth, etc.).
Furthermore, if errors in the *.model.json or *manifest.cdm.json/*.cdm.json files are not identified and corrected prior to ingestion, this can lead to various technical problems. For example, a data schema defined by the *.model.json or *manifest.cdm.json/*.cdm.json files may be out of synch with the actual customer data stored on the data lake, such that the customer data includes more or less columns than otherwise indicated by the data schema. This can lead to system errors during ingestion. As another example, there could be a data type mismatch (e.g., a string attribute may be marked as a numeric attribute) which could also cause system errors during ingestion. As yet another example, the *.model.json or *manifest.cdm.json/*cdm.json files may specify one or more incorrect data partitions or data partition patterns such that customer data files are missed during ingestion.
Additionally, even if ingestion completes successfully with an incorrect *.model.json or *manisfest.cdm.json/*.cdm.json file, any applications or services that will receive and process such data will utilize these metadata files, and in particular the data schemas defined therein, to interpret the customer data. Thus, these applications and services may encounter technical issues utilizing this data (e.g., exceptions and crashes) and/or produce incorrect outputs.
CDM attach utility 212 enables a user to mount customer data stored in CDM folder 218 stored on data lake 204 directly into customer data platform 202 through a reference to a CDM *.model.json file or a *.manifest.cdm.json file included in CDM folder 218.
CDM editor 214 is integrated within customer data platform 202. That is to say, the graphical user interface (GUI) of CDM editor 214 forms part of (or is otherwise accessible from within) a GUI of customer data platform 202. CDM editor 214 enables a user to create and/or edit the CDM *.model.json or *manifest.cdm.json/*.cdm.json files that are included in CDM folder 218. CDM editor 214 makes it easy for a user to create and/or modify the *.model.json or *manifest.cdm.json/*.cdm.json files by implementing a GUI that prompts the user to provide input and make selections in a manner that accords with rules concerning what information such files must include and how the contents of such files should be organized and formatted. Furthermore, CDM editor 214 may perform syntax checking, validate such input and selections against the aforementioned rules, and flag any detected errors and/or potential problems to the user. Still further, CDM editor 214 may apply the metadata included in the *.model.json or *manifest.cdm.json/*.cdm.json files (e.g., data schemas, partition location paths, partition location patterns) to actual customer data included in CDM folder 218 and present the results to the user within the GUI of CDM editor 214 so that the user can visually confirm that changes made to the data model metadata accord with the customer data. In this way, CDM editor 214 both makes it easier for the user to create/modify these files and automatically ensures that the CDM metadata included in such files is correct prior to data ingestion, thereby avoiding or minimizing the issues discussed above.
As further shown in
As also shown in
If the user interacts with “{ } JSON” GUI control 504 at the top of manifest menu 402, then CDM editor 214 will cause the raw JSON of the test.manifest.cdm.json file to be presented in a window within the GUI of CDM editor 214. The user can directly edit the JSON displayed within this window to modify the file, as opposed to using the guided menu-driven experience discussed herein. CDM editor 214 may update the JSON shown in the window to reflect changes made via the guided menu-driven experience and, likewise, CDM editor 214 may update the information shown as part of the guided menu-driven experience to reflect direct changes made to the JSON shown in the window.
As further shown in
As also shown in
The user may click on or otherwise interact with the “Edit” GUI control 604 at the top of entity menu 502 to begin the process of editing the currently selected entity in a guided manner.
The user may click on or otherwise interact with the “Delete” GUI control 606 at the top of entity menu 502 to delete the selected entity. A verification request may be presented to the user before the deletion is carried out.
If a user interacts with the “{ } JSON” control 608 at the top of entity menu 502, then CDM editor 214 will cause the raw JSON associated with the selected entity (in this case, Customer_Measure) to be presented in a window within the GUI of CDM editor 214. The user can directly edit the JSON displayed within this window to modify the entity, as opposed to using the guided menu-driven experience discussed herein. CDM editor 214 may update the JSON shown in the window to reflect changes the user has made via the guided menu-driven experience and, likewise, CDM editor 214 may update the information shown as part of the guided menu-driven experience to reflect changes made to the JSON shown in the window.
As further shown in
New entity form 1702 also includes a location data entry box 1706 via which the user can specify a location to be included in the new entity metadata. The location comprises a path and filename at which a data file (also referred to as a partition) associated with the entity may be found. New entity form 1702 further includes a “+ Partition location” button 1708 that the user may interact with to cause CDM editor 214 to add a location specified in location data entry box 1706 to the CDM metadata for the new entity. CDM editor 214 displays a list 1710 of partition locations that have been added for the new entity within new entity form 1702. In an embodiment, CDM editor 214 may validate a location added by the user by determining if the path and file exist prior to adding such location to the entity metadata. For example, CDM editor 214 may only allow a location to be added if both the path and file exist, in which case the location will be shown in list 1710; if the path and/or file do not exist, then CDM editor 214 may return an error message to the user.
As further shown in
New entity form 1702 also includes an “OK” button 1722 that the user may activate to complete the addition of the new entity, and a “cancel” button 1724 that the user may activate to cancel the process of adding a new entity.
As shown in
In an embodiment, CDM editor 214 enables a user to apply the currently edited version of the metadata (which as noted above exists in an interpreted form in local memory) to some or all of the data from one or more data files associated with the metadata, after which CDM editor 214 presents the user with visual feedback. For example, CDM editor 214 can apply a data schema associated with an entity to a sample of data from a data file associated with that entity and present the results to the user in a portion of (e.g., a window or panel within) the GUI of CDM editor 214. Thus, for example, the CDM editor 214 can present within the GUI a table showing how the attributes of the entity (as defined by the metadata) have been mapped to the data elements within the data sample to assist the user in determining if the data schema is correctly aligned with the underlying data.
As noted above, data model metadata associated with a CDM folder may exist in one file or may be distributed across multiple inter-related files. CDM editor 214 is capable of determining relationships (including but not limited to dependencies) between files and metadata elements (e.g., entities, attributes, etc.) referenced in such files and to update multiple files and/or metadata elements as necessary in order to implement a metadata change made by a user via CDM editor 214 described herein. This feature of CDM editor 214 makes creating and modifying the CDM metadata a far less intimidating and error-prone process for users.
In an embodiment, CDM editor 214 may be configured to present the user with automatic schema suggestions based, e.g., on an analysis of the files associated with the CDM folder for which metadata is being created/edited. For example, CDM editor 214 may be configured to recommend one or more of a manifest name, an entity name, an attribute name, an attribute data format, an entity location, an entity location pattern, or the like, based on analysis of the files associated with the CDM folder for which metadata is being created/edited.
In a further embodiment, CDM editor 214 may be configured to enable the user to transform data stored in the data files associated with the CDM metadata. For example, CDM editor 214 may present the user with one or more GUI controls that enables the user to apply transformations to the data that may include, for example, merging columns, formatting columns, clearing spaces, or the like.
In view of the foregoing it can be seen that aforementioned CDM editor may be configured to provide at least the following advantages/benefits: (1) enables users to seamlessly create and modify CDM metadata files through a “what-you-see-is-what-you-get” (WYSIWYG) interface; (2) provides syntax checking and validation of user input and selections made when creating or modifying CDM metadata; (3) enables changes to be made via both a guided menu-driven user interface and through an editing window that permits directed editing of metadata JSON, and reflects changes across both interfaces; (4) provides immediate visual feedback to the user concerning the impact of metadata changes (e.g., a list of data files targeted by a location or location pattern, a representation of how a data schema maps to a sample of data); and (5) provides automatic schema suggestions.
As shown in
At step 2404, CDM editor 214 presents a list of the identified objects within the GUI of CDM editor 214. For example, CDM editor 214 may present a list of identified entities within entity menu 502 of the GUI of CDM editor 214 as shown in
At step 2406, CDM editor 214 presents within the GUI a set of controls that enable a user to modify an object in the list of identified objects, add an object to the list of identified objects, and delete an object in the list of identified objects. For example, with continued reference to
At step 2408, a user of CDM editor 214 interacts with one or more of the GUI controls to modify an object in the list of identified objects, add an object to the list of identified objects, or delete an object in the list of identified objects. For example, the user may interact with any of the aforementioned GUI controls of CDM editor 214 to add, modify or delete an entity, an attribute of an entity, an entity partition location, or an entity partition location pattern. By way of example, the discussion of
At step 2410, in response to the user interaction with the one or more of the GUI controls to modify an object in the list of identified objects, add an object to the list of identified objects, or delete an object in the list of identified objects, CDM editor 214 applies the modification of the object, the addition of the object, or the deletion of the object to the data model metadata. For example, CDM editor 214 may apply the modification of the object, the addition of the object, or the deletion of the object to the locally-stored copy of the data model metadata, which can then be saved back to data lake 204 by clicking on “save” button 802. CDM editor 214 may apply the modification of the object, the addition of the object, or the deletion of the object to the data model metadata by updating a plurality of inter-related data model metadata files, such as one or more *.manifest.cdm.json files and/or one or more *.cdm.json files.
At step 2412, in further response to the user interaction with the one or more of the GUI controls to modify an object in the list of identified objects, add an object to the list of identified objects, or delete an object in the list of identified objects, CDM editor 214 updates the list within the GUI to reflect the modification of the object, the addition of the object, or the deletion of the object. For example, CDM editor 214 may update entity menu 502 of the GUI of CDM editor 214 to reflect the addition, modification or deletion of an entity and may update attribute menu 602 of the GUI of CDM to reflect the addition, modification, or deletion of an attribute as was previously described. CDM editor 214 may likewise be configured to update a list of entity partition locations or a list of entity partition location patterns to reflect an addition/modification/deletion.
In an embodiment, the method of flowchart 2400 may further include presenting within the GUI of CDM editor 214 a value of a property associated with each of the identified objects. For example, the property may comprise one of a manifest name (e.g., test.manifest.cdm.json as shown in manifest menu 402 of
In a further embodiment, the method of flowchart 2400 may further include enabling the user to assign a value to a property of one of the identified objects or of an object to be added to the list of identified objects by only allowing the user to select from among a set of valid values for the property as specified by the rules associated with the data model metadata. For example, as discussed above in reference to
In another embodiment, the method of flowchart 2400 further comprises enabling the user to input a value of a property of one of the identified objects or of an object to be added to the list of identified objects and, responsive to the user inputting the value of the property, performing one or more of syntax checking the value or validating the value based on the rules associated with the data model metadata. For example, as discussed above, CDM editor 214 may perform syntax checking or validation of values of properties input by the user pursuant to adding or modifying an entity or attribute.
One manner in which step 2500 may be carried out is shown as step 2600 of
Another manner in which step 2500 may be carried out is shown as step 2700 of
As shown in
In step 2804, CDM editor 214 presents a second set of GUI controls to enable the user to modify the object in the list of identified objects, add the object to the list of identified objects, or delete the object in the list of identified objects by enabling the user to edit the data model metadata in an editing window. Thus, as described above, CDM editor 214 presents a variety of controls that enable the user to modify a manifest, entities, and attributes by directly editing the raw (unparsed and uninterpreted) data model metadata in an editing window. With continued reference to
In step 2806, CDM editor 214 reflects changes to the data model metadata made via the menu driven interface in the editing window and reflects changes to the data model metadata made through the editing window in the menu driven interface. Thus, as described above, CDM editor 214 is configured to reflect any changes made to entities and attributes via the menu-driven interface in the editing windows that display manifest and entity JSON and likewise is configured to reflect any changes made to entities and attributes via the editing windows in the menu-driven interface.
In an embodiment, the method of flowchart 2400 may further include presenting data model metadata suggestions via the GUI. For example, CDM editor 214 may be configured to present suggested property values to a user pursuant to the user adding or updating an entity or attribute. The suggested property values may comprise one or more of: a suggested manifest name; a suggested entity name; a suggested entity partition location path; a suggested entity partition location pattern; a suggested attribute name; or a suggested attribute data format. In an embodiment, CDM editor 214 may be configured to analyze one or more of the metadata files in CDM folder 218 (e.g., *.model.json, one or more *.manifest.cdm.json files, and/or one or more *.cdm.json files) to determine suggested property values.
In the foregoing description, the data model metadata that is edited using CDM editor 214 is Common Data Model (CDM) metadata. However, the techniques described herein are equally applicable to editing metadata associated with any data model that organizes elements of data and standardizes how they relate to one another and to the properties of real-world entities. Furthermore, although the data model metadata described herein is formatted in accordance with JavaScript Object Notation (JSON), it is to be understood that such data model metadata may be represented using any of a wide variety of formats, including other data interchange formats such as Extensible Markup Language (XML) or Comma-Separated Values (CSV).
Each of customer data platform 202, CDM attach utility 212, CDM editor 214, other customer data platform functionality 216, and data lake 204 of
For instance, in an embodiment, one or more, in any combination, of customer data platform 202, CDM attach utility 212, CDM editor 214, other customer data platform functionality 216, and data lake 204 of
As shown in
System 2900 also has one or more of the following drives: a hard disk drive 2914 for reading from and writing to a hard disk, a magnetic disk drive 2916 for reading from or writing to a removable magnetic disk 2918, and an optical disk drive 2920 for reading from or writing to a removable optical disk 2922 such as a CD ROM, DVD ROM, BLU-RAY™ disk or other optical media. Hard disk drive 2914, magnetic disk drive 2916, and optical disk drive 2920 are connected to bus 2906 by a hard disk drive interface 2924, a magnetic disk drive interface 2926, and an optical drive interface 2928, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computer. Although a hard disk, a removable magnetic disk and a removable optical disk are described, other types of computer-readable memory devices and storage structures can be used to store data, such as flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROM), and the like.
A number of program modules or components may be stored on the hard disk, magnetic disk, optical disk, ROM, or RAM. These program modules include an operating system 2930, one or more application programs 2932, other program modules 2934, and program data 2936. In accordance with various embodiments, the program modules may include computer program logic that is executable by processing unit 2902 to perform any or all the functions and features of customer data platform 202, CDM attach utility 212, CDM editor 214, other customer data platform functionality 216, and data lake 204 of
A user may enter commands and information into system 2900 through input devices such as a keyboard 2938 and a pointing device 2940. Other input devices (not shown) may include a microphone, joystick, game controller, scanner, or the like. In one embodiment, a touch screen is provided in conjunction with a display 2944 to allow a user to provide user input via the application of a touch (as by a finger or stylus for example) to one or more points on the touch screen. These and other input devices are often connected to processing unit 2902 through a serial port interface 2942 that is coupled to bus 2906, but may be connected by other interfaces, such as a parallel port, game port, or a Universal Serial Bus (USB). Such interfaces may be wired or wireless interfaces.
A display 2944 is also connected to bus 2906 via an interface, such as a video adapter 2946. In addition to display 2944, system 2900 may include other peripheral output devices (not shown) such as speakers and printers.
System 2900 is connected to a network 2948 (e.g., a local area network or wide area network such as the Internet) through a network interface or adapter 2950, a modem 2952, or other suitable means for establishing communications over the network. Modem 2952, which may be internal or external, is connected to bus 2906 via serial port interface 2942. As used herein, the terms “computer program medium,” “computer-readable medium,” and “computer-readable storage medium” are used to generally refer to memory devices or storage structures such as the hard disk associated with hard disk drive 2914, removable magnetic disk 2918, removable optical disk 2922, as well as other memory devices or storage structures such as flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROM), and the like. Such computer-readable storage media are distinguished from and non-overlapping with communication media (do not include communication media). Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wireless media such as acoustic, RF, infrared, and other wireless media. Embodiments are also directed to such communication media.
As noted above, computer programs and modules (including application programs 2932 and other program modules 2934) may be stored on the hard disk, magnetic disk, optical disk, ROM, or RAM. Such computer programs may also be received via network interface 2950, serial port interface 2942, or any other interface type. Such computer programs, when executed or loaded by an application, enable system 2900 to implement features of embodiments of the present methods and systems described herein. Accordingly, such computer programs represent controllers of the system 2900.
Embodiments are also directed to computer program products comprising software stored on any computer useable medium. Such software, when executed in one or more data processing devices, causes a data processing device(s) to operate as described herein. Embodiments of the present methods and systems employ any computer-useable or computer-readable medium, known now or in the future. Examples of computer-readable mediums include but are not limited to memory devices and storage structures such as RAM, hard drives, floppy disks, CD ROMs, DVD ROMs, zip disks, tapes, magnetic storage devices, optical storage devices, MEMs, nanotechnology-based storage devices, and the like.
A system is described herein for creating or modifying data model metadata associated with data stored in one or more data files. The system includes at least one processing circuit; and memory connected to the at least one processing circuit, the memory storing computer program instructions. The computer program instructions are executable by the at least one processing circuit to: parse the data model metadata based on rules associated therewith to identify objects included therein; present a list of the identified objects within a graphical user interface (GUI); present within the GUI a set of controls that enable a user to modify an object in the list of identified objects, add an object to the list of identified objects, and delete an object in the list of identified objects; and responsive to interaction by the user with one or more of the GUI controls to modify an object in the list of identified objects, add an object to the list of identified objects, or delete an object in the list of identified objects: apply the modification of the object, the addition of the object, or the deletion of the object to the data model metadata; and update the list within the GUI to reflect the modification of the object, the addition of the object, or the deletion of the object.
In one embodiment of the foregoing system, the data model metadata comprises Common Data Model (CDM) metadata.
In another embodiment of the foregoing system, the identified objects comprise one or more of a manifest, an entity, an attribute, an entity partition location, or an entity partition location pattern.
In yet another embodiment of the foregoing system, the data model metadata comprises one or more files formatted in accordance with a data interchange format. The data interchange format may be one of JavaScript Objection Notation (JSON), Extensible Markup Language (XML), or Comma-Separated Values (CSV).
In still another embodiment of the foregoing system, the computer program instructions are further executable by the at least one processing circuit to present within the GUI a value of a property associated with each of the identified objects. The property may comprise one of a manifest name, an entity name, an attribute name, an attribute data format, a location of a partition location path, or a root location, pattern, or type of a partition location pattern.
In a further embodiment of the foregoing system, the computer program instructions are further executable by the at least one processing circuit to: enable the user to assign a value to a property of one of the identified objects or of an object to be added to the list of identified objects by only allowing the user to select from among a set of valid values for the property as specified by the rules associated with the data model metadata. The property may comprise, for example, a data format value of an attribute.
In a still further embodiment of the foregoing system, the computer program instructions are further executable by the at least one processing circuit to: enable the user to input a value of a property of one of the identified objects or of an object to be added to the list of identified objects; and responsive to the user inputting the value of the property, perform one or more of syntax checking the value or validating the value based on the rules associated with the data model metadata.
In an additional embodiment of the foregoing system, the computer program instructions are further executable by the at least one processing circuit to: enable the user to validate the modification of the object, the addition of the object or the deletion of the object by presenting to the user via the GUI at least one result of the modification of the object, the addition of the object, or the deletion of the object. Presenting to the user via the GUI the at least one result of the modification of the object, the addition of the object, or the deletion of the object may comprise: presenting to the user via the GUI a list of data files identified based on a user-provided value for a partition location path of an entity or for a partition location pattern of an entity. Presenting to the user via the GUI the at least one result of the modification of the object, the addition of the object, or the deletion of the object may also comprise: presenting to the user via the GUI a sample of data from the data stored in the one or more data files that is organized and formatted based at least in part on the modification of the object, the addition of the object, or the deletion of the object.
In another embodiment of the foregoing system, the computer program instructions are executable by the at least one processing circuit to: present a first set of GUI controls to enable the user to modify the object in the list of identified objects, add the object to the list of identified objects, or delete the object in the list of identified objects through a menu-driven interface; present a second set of GUI controls to enable the user to modify the object in the list of identified objects, add the object to the list of identified objects, or delete the object in the list of identified objects by enabling the user to edit the data model metadata in an editing window; and reflect changes to the data model metadata made via the menu driven interface in the editing window and reflect changes to the data model metadata made through the editing window in the menu driven interface.
In yet another embodiment of the foregoing system, the computer program instructions are executable by the at least one processing circuit to apply the modification of the object, the addition of the object, or the deletion of the object to the data model metadata by updating a plurality of inter-related data model metadata files.
In still another embodiment of the foregoing system, the computer program instructions are further executable by the at least one processing circuit to present data model metadata suggestions via the GUI, the data model metadata suggestions comprising one or more of: a suggested manifest name; a suggested entity name; a suggested entity partition location path; a suggested entity partition location pattern; a suggested attribute name; or a suggested attribute data format. The computer program instructions may be executable by the at least one processing circuit to present the data model metadata suggestions based on an analysis of one or more data model metadata files.
A computer-implemented method is also described herein for creating or modifying data model metadata associated with data stored in one or more data files. The method includes: parsing the data model metadata based on rules associated therewith to identify objects included therein; presenting a list of the identified objects within a graphical user interface (GUI); presenting within the GUI a set of controls that enable a user to modify an object in the list of identified objects, add an object to the list of identified objects, and delete an object in the list of identified objects; and responsive to interaction by the user with one or more of the GUI controls to modify an object in the list of identified objects, add an object to the list of identified objects, or delete an object in the list of identified objects: applying the modification of the object, the addition of the object, or the deletion of the object to the data model metadata; and updating the list within the GUI to reflect the modification of the object, the addition of the object, or the deletion of the object.
In one embodiment of the foregoing method, the data model metadata comprises Common Data Model (CDM) metadata.
In another embodiment of the foregoing method, the identified objects comprise one or more of a manifest, an entity, an attribute, an entity partition location, or an entity partition location pattern.
In yet another embodiment of the foregoing method, the data model metadata comprises one or more files formatted in accordance with a data interchange format. The data interchange format may be one of JavaScript Objection Notation (JSON), Extensible Markup Language (XML), or Comma-Separated Values (CSV).
In still another embodiment of the foregoing method, the method further comprises presenting within the GUI a value of a property associated with each of the identified objects. The property may comprise one of a manifest name, an entity name, an attribute name, an attribute data format, a location of a partition location path, or a root location, pattern, or type of a partition location pattern.
In a further embodiment of the foregoing method, the method further comprises: enabling the user to assign a value to a property of one of the identified objects or of an object to be added to the list of identified objects by only allowing the user to select from among a set of valid values for the property as specified by the rules associated with the data model metadata. The property may comprise, for example, a data format value of an attribute.
In a still further embodiment of the foregoing method, the method further comprises: enabling the user to input a value of a property of one of the identified objects or of an object to be added to the list of identified objects; and responsive to the user inputting the value of the property, performing one or more of syntax checking the value or validating the value based on the rules associated with the data model metadata.
In an additional embodiment of the foregoing method, the method further comprises: enabling the user to validate the modification of the object, the addition of the object, or the deletion of the object by presenting to the user via the GUI at least one result of the modification of the object, the addition of the object, or the deletion of the object. Presenting to the user via the GUI at least one result of the modification of the object, the addition of the object, or the deletion of the object may comprise: presenting to the user via the GUI a list of data files identified based on a user-provided value for a partition location path of an entity or for a partition location pattern of an entity. Presenting to the user via the GUI at least one result of the modification of the object, the addition of the object, or the deletion of the object may also comprise: presenting to the user via the GUI a sample of data from the data stored in the one or more data files that is organized and formatted based at least in part on the modification of the object, the addition of the object, or the deletion of the object.
In another embodiment of the foregoing method, the method further comprises: presenting a first set of GUI controls to enable the user to modify the object in the list of identified objects, add the object to the list of identified objects, or delete the object in the list of identified objects through a menu-driven interface; presenting a second set of GUI controls to enable the user to modify the object in the list of identified objects, add the object to the list of identified objects, or delete the object in the list of identified objects by enabling the user to edit the data model metadata in an editing window; and reflecting changes to the data model metadata made via the menu driven interface in the editing window and reflecting changes to the data model metadata made through the editing window in the menu driven interface.
In yet another embodiment of the foregoing method, applying the modification of the object, the addition of the object, or the deletion of the object to the data model metadata comprises updating a plurality of inter-related data model metadata files.
In still another embodiment of the foregoing method, the method further comprises presenting data model metadata suggestions via the GUI, the data model metadata suggestions comprising one or more of: a suggested manifest name; a suggested entity name; a suggested entity partition location path; a suggested entity partition location pattern; a suggested attribute name; or a suggested attribute data format. Presenting the data model metadata suggestions may comprise presenting data model metadata suggestions based on an analysis of one or more data model metadata files.
A computer program product is also described herein. The computer program product comprises a computer-readable storage medium having computer program logic recorded thereon that is executable by at least one processing circuit of a computing device to cause the at least one processing circuit to perform operations for creating or modifying data model metadata associated with data stored in one or more data files, the operations comprising: parsing the data model metadata based on rules associated therewith to identify objects included therein; presenting a list of the identified objects within a graphical user interface (GUI); presenting within the GUI a set of controls that enable a user to modify an object in the list of identified objects, add an object to the list of identified objects, and delete an object in the list of identified objects; and responsive to interaction by the user with one or more of the GUI controls to modify an object in the list of identified objects, add an object to the list of identified objects, or delete an object in the list of identified objects: applying the modification of the object, the addition of the object, or the deletion of the object to the data model metadata; and updating the list within the GUI to reflect the modification of the object, the addition of the object, or the deletion of the object.
In one embodiment of the foregoing computer program product, the data model metadata comprises Common Data Model (CDM) metadata.
In another embodiment of the foregoing computer program product, the identified objects comprise one or more of a manifest, an entity, an attribute, an entity partition location, or an entity partition location pattern.
In yet another embodiment of the foregoing computer program product, the data model metadata comprises one or more files formatted in accordance with a data interchange format. The data interchange format may be one of JavaScript Objection Notation (JSON), Extensible Markup Language (XML), or Comma-Separated Values (CSV).
In still another embodiment of the foregoing computer program product, the operations further comprise: presenting within the GUI a value of a property associated with each of the identified objects. The property may comprise one of a manifest name, an entity name, an attribute name, an attribute data format, a location of a partition location path, or a root location, pattern, or type of a partition location pattern.
In a further embodiment of the foregoing computer program product, the operations further comprise: enabling the user to assign a value to a property of one of the identified objects or of an object to be added to the list of identified objects by only allowing the user to select from among a set of valid values for the property as specified by the rules associated with the data model metadata. The property may comprise, for example, a data format value of an attribute.
In a still further embodiment of the foregoing computer program product, the operations further comprise: enabling the user to input a value of a property of one of the identified objects or of an object to be added to the list of identified objects; and responsive to the user inputting the value of the property, performing one or more of syntax checking the value or validating the value based on the rules associated with the data model metadata.
In a yet further embodiment of the foregoing computer program product, the operations further comprise: enabling the user to validate the modification of the object, the addition of the object, or the deletion of the object by presenting to the user via the GUI at least one result of the modification of the object, the addition of the object, or the deletion of the object. Presenting to the user via the GUI at least one result of the modification of the object, the addition of the object, or the deletion of the object may comprise: presenting to the user via the GUI a list of data files identified based on a user-provided value for a partition location path of an entity or for a partition location pattern of an entity. Presenting to the user via the GUI at least one result of the modification of the object, the addition of the object, or the deletion of the object may also comprise: presenting to the user via the GUI a sample of data from the data stored in the one or more data files that is organized and formatted based at least in part on the modification of the object, the addition of the object, or the deletion of the object.
In an additional embodiment of the foregoing computer program product, the operations further comprise: presenting a first set of GUI controls to enable the user to modify the object in the list of identified objects, add the object to the list of identified objects, or delete the object in the list of identified objects through a menu-driven interface; presenting a second set of GUI controls to enable the user to modify the object in the list of identified objects, add the object to the list of identified objects, or delete the object in the list of identified objects by enabling the user to edit the data model metadata in an editing window; and reflecting changes to the data model metadata made via the menu driven interface in the editing window and reflecting changes to the data model metadata made through the editing window in the menu driven interface.
In another embodiment of the foregoing computer program product, applying the modification of the object, the addition of the object, or the deletion of the object to the data model metadata comprises updating a plurality of inter-related data model metadata files.
In yet another embodiment of the foregoing computer program product, the operations further comprise presenting data model metadata suggestions via the GUI, the data model metadata suggestions comprising one or more of: a suggested manifest name; a suggested entity name; a suggested entity partition location path; a suggested entity partition location pattern; a suggested attribute name; or a suggested attribute data format. Presenting the data model metadata suggestions may comprise presenting data model metadata suggestions based on an analysis of one or more data model metadata files.
While various embodiments of the present methods and systems have been described above, they have been presented by way of example only, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the methods and systems. Thus, the breadth and scope of the present methods and systems should not be limited by any of the above-described exemplary embodiments but should be defined only in accordance with the following claims and their equivalents.
This application claims priority to U.S. Provisional Patent Application Ser. No. 63/180,988, filed Apr. 28, 2021, the entirety of which is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
63180988 | Apr 2021 | US |