mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2026-01-06 12:36:56 +00:00
shahsank3t published a site update
This commit is contained in:
parent
bb9137630b
commit
da3037bcd6
@ -7,7 +7,7 @@ OpenMetadata takes the **schema-first** approach to model metadata as a Single S
|
||||
* Easy to describe the structure and semantics of metadata models with readable documentation that is both human and machine consumable.
|
||||
* Common types can be developed once and can be reused as building blocks in other schemas and become the basis of vocabulary development.
|
||||
* Models can include structural validation, such as required/optional fields, default values, allowed values, regex that not only serve as automated testing and validation but also as documentation of API contract.
|
||||
* A rich set of tools are available that supports JSON schema support for generating code and validation from JSON schema in various languages, reducing the manual boilerplate coding.
|
||||
* A rich set of tools are availble that supports JSON schema support for generating code and validation from JSON schema in various languages, reducing the manual boilerplate coding.
|
||||
* Supports rich formats to convert schema types into native standard types during code generation, such as URI, date, and time.
|
||||
|
||||
## Reference
|
||||
@ -16,29 +16,12 @@ OpenMetadata takes the **schema-first** approach to model metadata as a Single S
|
||||
2. [JSON schema 2 POJO](https://www.jsonschema2pojo.org/) tool used for Java code generation from JSON schema
|
||||
3. [Data model code generator](https://github.com/koxudaxi/datamodel-code-generator) for generating python code from JSON schema
|
||||
|
||||
## Top-level Schemas
|
||||
## Schemas
|
||||
|
||||
* [Bot entity](entities/bots.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/bots.json`
|
||||
* [Common types](types/common.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/type/common.json`
|
||||
* [Daily count of some measurement](types/dailycount.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/type/dailyCount.json`
|
||||
* [Dashboard entity](entities/dashboard.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/data/dashboard.json`
|
||||
* [Data classification related types](types/classification.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/type/classification.json`
|
||||
* [Database entity](entities/database.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/data/database.json`
|
||||
* [Database service entity](entities/databaseservice.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/services/databaseService.json`
|
||||
* [Feed entity](entities/thread.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/feed/thread.json`
|
||||
* [JDBC connection](types/jdbcconnection.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/type/jdbcConnection.json`
|
||||
* [Metrics entity](entities/metrics.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/data/metrics.json`
|
||||
* [Pipeline entity](entities/pipeline.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/data/pipeline.json`
|
||||
* [Report entity](entities/report.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/data/report.json`
|
||||
* [Schema for collection descriptor](types/collectiondescriptor.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/type/collectionDescriptor.json`
|
||||
* [Table entity](entities/table.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/data/table.json`
|
||||
* [Team entity](entities/team.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/teams/team.json`
|
||||
* [Types related to tag category](entities/tagcategory.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/tags/tagCategory.json`
|
||||
* [Usage details for an entity class](types/categoryusage.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/type/categoryUsage.json`
|
||||
* [Usage details of an entity](https://github.com/StreamlineData/catalog/tree/7a2138a90f4fb063ef6d4f8cac3a2668f1dcf67b/docs/api/schemas/types/entityusage.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/type/entityUsage.json`
|
||||
* [User entity](entities/user.md) – `https://github.com/StreamlineData/catalog/blob/master/catalog-rest-service/src/main/resources/json/schema/entity/teams/user.json`
|
||||
{% page-ref page="entities" %}
|
||||
|
||||
{% page-ref page="types" %}
|
||||
|
||||
## Version Note
|
||||
|
||||
The schemas linked above follow the JSON Schema Spec version: `http://json-schema.org/draft-07/schema#`
|
||||
|
||||
The schemas linked above follow the JSON Schema Spec version:
|
||||
|
||||
@ -8,62 +8,34 @@ An Entity is a special type that has an identity and represents an object that i
|
||||
|
||||
| Abstract | Extensible |
|
||||
| :--- | :--- |
|
||||
| **id** | Mandatory attribute of type `UUID` that identifies the entity instance |
|
||||
| **id** | Mandatory attribute of type that identifies the entity instance |
|
||||
| **name** | Name of the entity \(example database name\). For some entities, the name may uniquely identify an entity. |
|
||||
| **fullyQualifiedName** | Human-readable name that uniquely identifies an entity that is formed using all the names in the hierarchy above the given entity. Example - `databaseService.database.table.` Attributes of an entity may also have `FQN` to uniquely identify a field. For example, a column of a table has `fqn` attribute set to `databaseService.database.table.columnName.` |
|
||||
| **displayName** | Optional name used for display purposes. For example, the name could be`john.smith@domain.com` and `displayName` could be `John Smith.` |
|
||||
| **description** | Description of the entity instance. Not all entities need a description. For example, a User entity might not need a description and just the name of the user might suffice. A `Database` entity needs `description` to provide details of what is stored in the database when to use it and other information on how to use it. |
|
||||
| **Owner** | Optional attribute used to capture the ownership information. Not all entities have ownership information \(for example `User, Team`, and `Organization`\). |
|
||||
| **fullyQualifiedName** | Human-readable name that uniquely identifies an entity that is formed using all the names in the hierarchy above the given entity. Example - Attributes of an entity may also have to uniquely identify a field. For example, a column of a table has attribute set to |
|
||||
| **displayName** | Optional name used for display purposes. For example, the name could be and could be |
|
||||
| **description** | Description of the entity instance. Not all entities need a description. For example, a User entity might not need a description and just the name of the user might suffice. A entity needs to provide details of what is stored in the database when to use it and other information on how to use it. |
|
||||
| **Owner** | Optional attribute used to capture the ownership information. Not all entities have ownership information \(for example , and \). |
|
||||
| **href** | An attribute generated on the fly as part of API response to provide the URL link to the entity returned. |
|
||||
|
||||
### **Relationships**
|
||||
|
||||
**Relationships** capture information about the association of an Entity with another Entity. Relationships can have cardinality - **One-to-one**, **One-to-many**, **Many-to-one**, and **Many-to-many**. Example of relationships:
|
||||
**Relationships** capture information about the association of an Entity with another Entity. Relationships can have cardinality - **One-to-one**, **One-to-many**, **Many-to-one**, and **Many-to-many**. Example of relationships:
|
||||
|
||||
* One-to-one: A Table is owned by a User
|
||||
* One to Many: a Database contains multiple Tables.
|
||||
* One to Many: a Database contains multiple Tables.
|
||||
* Many-to-Many: A User belongs to multiple Teams. A team has multiple Users.
|
||||
|
||||
All relationships are captured using the `EntityReference` type.
|
||||
All relationships are captured using the type.
|
||||
|
||||
Following is an example of a JSON schema of the User entity with attributes id, displayName, and email. User entity has one-to-many relationships to another entity Team \(user is member of multiple teams\).
|
||||
|
||||
```javascript
|
||||
{
|
||||
"title": "User entity",
|
||||
"type": "object",
|
||||
|
||||
"properties" : {
|
||||
"id": {
|
||||
"description": "Unique identifier for instance of a User",
|
||||
"$ref": "#/definitions/uuid"
|
||||
},
|
||||
"displayName": {
|
||||
"description": "Name used for display purposes. Example 'John Smith'",
|
||||
"type" : "string"
|
||||
},
|
||||
"email": {
|
||||
"description": "User's Email",
|
||||
"type": "string"
|
||||
},
|
||||
"teams" : {
|
||||
"description": "Teams that this user belongs to",
|
||||
"type": "array",
|
||||
"items" :{
|
||||
"$ref": "#/definitions/entityReference"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
Following is an example of a JSON schema of the User entity with attributes id, displayName, and email. User entity has one-to-many relationships to another entity Team \(user is member of multiple teams\).: is a special shell builtin
|
||||
string: not found
|
||||
|
||||
## Metadata system entities
|
||||
|
||||
Metadata system has the following core entities:
|
||||
1. **Data Entities** - These entities represent data, such as databases, tables, and topics, and assets created using data, such as Dashboards, Reports, Metrics, and ML Features. It also includes entities such as Pipelines that are used for creating data assets.
|
||||
2. **Services** - Services represent platforms and services used for storing and processing data. It includes Online Data Stores, Data Warehouses, ETL tools, Dashboard services, etc.
|
||||
3. **Users & Teams** - These entities represent users within an organization and teams that they are organized under.
|
||||
4. **Activities** - These entities are related to feeds, posts, and notifications for collaboration between users.
|
||||
Metadata system has the following core entities:
|
||||
1. **Data Entities** - These entities represent data, such as databases, tables, and topics, and assets created using data, such as Dashboards, Reports, Metrics, and ML Features. It also includes entities such as Pipelines that are used for creating data assets.
|
||||
2. **Services** - Services represent platforms and services used for storing and processing data. It includes Online Data Stores, Data Warehouses, ETL tools, Dashboard services, etc.
|
||||
3. **Users & Teams** - These entities represent users within an organization and teams that they are organized under.
|
||||
4. **Activities** - These entities are related to feeds, posts, and notifications for collaboration between users.
|
||||
5. **Glossary and Tags** - Entities for defining business glossary that includes hierarchical tags.
|
||||
|
||||
## List of Schema Entities
|
||||
@ -84,3 +56,10 @@ Metadata system has the following core entities:
|
||||
|
||||
{% page-ref page="report.md" %}
|
||||
|
||||
{% page-ref page="table.md" %}
|
||||
|
||||
{% page-ref page="tagcategory.md" %}
|
||||
|
||||
{% page-ref page="team.md" %}
|
||||
|
||||
{% page-ref page="user.md" %}
|
||||
|
||||
@ -1,18 +1,25 @@
|
||||
# Types
|
||||
|
||||
JSON schema supports many native types - `null, boolean, object, array, number` and `string`. In addition, to develop clear and consistent vocabulary, domain-specific reusable types are defined ranging from simple types, such as `UUID`, `timestamp`, and `email` to more complex object types, such as `Tags, Ownership` and `Usage`.
|
||||
JSON schema supports many native types - and . In addition, to develop clear and consistent vocabulary, domain-specific reusable types are defined ranging from simple types, such as , , and to more complex object types, such as and .
|
||||
|
||||
## List of Schema Types
|
||||
|
||||
{% page-ref page="categoryusage.md" %}
|
||||
|
||||
{% page-ref page="classification.md" %}
|
||||
{% page-ref page="basic.md" %}
|
||||
|
||||
{% page-ref page="collectiondescriptor.md" %}
|
||||
|
||||
{% page-ref page="common.md" %}
|
||||
|
||||
{% page-ref page="dailycount.md" %}
|
||||
|
||||
{% page-ref page="entityreference.md" %}
|
||||
|
||||
{% page-ref page="entityusage.md" %}
|
||||
|
||||
{% page-ref page="jdbcconnection.md" %}
|
||||
|
||||
{% page-ref page="profile.md" %}
|
||||
|
||||
{% page-ref page="schedule.md" %}
|
||||
|
||||
{% page-ref page="taglabel.md" %}
|
||||
|
||||
{% page-ref page="usagedetails.md" %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user