cloudera.services.atlas_business_metadata_def module – Manage business metadata type definitions in Apache Atlas
Note
This module is part of the cloudera.services collection (version 1.0.0).
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install git+https://github.com/cloudera-labs/cloudera.services.git.
To use it in a playbook, specify: cloudera.services.atlas_business_metadata_def.
New in cloudera.services 1.1.0
Synopsis
Create, update, or delete business metadata type definitions in Apache Atlas.
Business metadata is a named group of attributes that can be attached to entities. Each attribute declares the entity types it applies to through its
attribute_defs[].options.
Parameters
Parameter |
Comments |
|---|---|
Attributes of the business metadata. Replaces the existing attributes; Atlas may reject removing attributes that are in use. Unset suboptions keep the value Atlas already holds for an attribute of the same name. Each attribute normally sets |
|
Cardinality of the attribute. Choices:
|
|
Constraints on the attribute. |
|
Parameters of the constraint. Keys are sent to Atlas verbatim. |
|
Type of the constraint, e.g. |
|
Default value of the attribute. |
|
Description of the attribute. |
|
Display name of the attribute. |
|
Whether changes to the attribute are included in notifications. Choices:
|
|
Index type of the attribute. Choices:
|
|
Whether the attribute is indexed. Choices:
|
|
Whether a value is optional. Choices:
|
|
Whether values must be unique. Choices:
|
|
Name of the attribute. |
|
Free-form map of string options for the attribute. Keys and values are sent to Atlas verbatim. When set, the map replaces all of the attribute’s existing options, so include every option to keep. All option values are strings, as Atlas stores them. Quote numbers, e.g.
To build To read The value is compared as a string, so keep the same formatting between runs, including spaces after commas, to avoid reporting a change.
|
|
Search weight of the attribute. |
|
Name of the attribute type, e.g. |
|
Maximum number of values. |
|
Minimum number of values. |
|
The path to a client certificate for authenticating to the API endpoint. |
|
The path to a client key for authenticating to the API endpoint. |
|
A flag to enable debug logging of the module’s execution. Choices:
|
|
Description of the business metadata type definition. |
|
Delete the business metadata without Atlas validating that nothing references it. Atlas refuses to delete business metadata that has non-indexable attributes unless this is set. The error reads Orphaned references to the deleted business metadata may remain on entities. Only used when Choices:
|
|
A flag to force basic authentication for API requests. Choices:
|
|
The User-Agent string to send with API requests. Default: |
|
Name of the business metadata type definition. Required when |
|
Free-form map of string options for the type definition. Keys are sent to Atlas verbatim. |
|
The number of items to return per page in a paginated API response. Default: |
|
Name of the service that owns the type definition. |
|
Whether the business metadata type definition should be present or absent. Choices:
|
|
The timeout in seconds for any API requests. Default: |
|
Version label of the type definition, e.g. |
|
The base URL of the API endpoint, including the port if necessary. |
|
The password for authenticating to the API endpoint. |
|
The username for authenticating to the API endpoint. |
|
A flag to enable or disable GSSAPI authentication for API requests. Choices:
|
|
A flag to enable or disable the use of a proxy for API requests. Choices:
|
|
A flag to enable or disable SSL certificate validation for API requests. Choices:
|
Attributes
Attribute |
Support |
Description |
|---|---|---|
Support: full |
This module supports check mode. |
|
Support: full |
This module supports diff mode. |
Examples
# NOTE: Examples do not include connection and authentication fields
- name: Create business metadata for tables
cloudera.services.atlas_business_metadata_def:
name: data_governance
description: Governance details for tables
attribute_defs:
- name: owner
type_name: string
is_optional: true
options:
applicableEntityTypes: '["hive_table"]'
maxStrLength: "50"
# The option values are plain strings. applicableEntityTypes holds a JSON list
# encoded as a string, so a list of entity types can be written in three ways.
- name: Apply an attribute to several entity types using a literal JSON string
cloudera.services.atlas_business_metadata_def:
name: data_governance
attribute_defs:
- name: owner
type_name: string
is_optional: true
options:
applicableEntityTypes: '["hive_table", "hive_db"]'
- name: Use a folded block scalar for a long list of entity types
cloudera.services.atlas_business_metadata_def:
name: data_governance
attribute_defs:
- name: owner
type_name: string
is_optional: true
options:
applicableEntityTypes: >-
["hive_table", "hive_db", "hive_column", "hive_storagedesc"]
- name: Build the JSON string from a list variable
vars:
governed_types:
- hive_table
- hive_db
cloudera.services.atlas_business_metadata_def:
name: data_governance
attribute_defs:
- name: owner
type_name: string
is_optional: true
options:
# Keep to_json as the last filter so the value stays a string
# and is not turned back into a list.
applicableEntityTypes: "{{ governed_types | to_json }}"
- name: Set the maximum string length from a variable
vars:
owner_max_length: 50
cloudera.services.atlas_business_metadata_def:
name: data_governance
attribute_defs:
- name: owner
type_name: string
is_optional: true
options:
applicableEntityTypes: '["hive_table"]'
# Option values must be strings, so quote literals ("50") and
# convert variables.
maxStrLength: "{{ owner_max_length | string }}"
- name: Share one set of options across several attributes
vars:
table_scope:
applicableEntityTypes: '["hive_table"]'
maxStrLength: "100"
cloudera.services.atlas_business_metadata_def:
name: data_governance
attribute_defs:
- name: owner
type_name: string
is_optional: true
options: "{{ table_scope }}"
- name: steward
type_name: string
is_optional: true
options: "{{ table_scope }}"
- name: Widen the entity types an existing attribute applies to
cloudera.services.atlas_business_metadata_def:
name: data_governance
attribute_defs:
- name: owner
type_name: string
options:
# The options map is replaced as a whole, so repeat every option
# the attribute should keep.
applicableEntityTypes: '["hive_table", "hive_db", "hive_column"]'
maxStrLength: "50"
- name: Read the entity types back as a list
cloudera.services.atlas_business_metadata_def:
name: data_governance
register: governance
- name: Show the entity types of each attribute
ansible.builtin.debug:
msg: >-
{{ item.name }} applies to
{{ (item.options.applicableEntityTypes | from_json) | join(', ') }}
loop: "{{ governance.business_metadata_def.attribute_defs }}"
loop_control:
label: "{{ item.name }}"
- name: Create business metadata with several attribute types
cloudera.services.atlas_business_metadata_def:
name: data_quality
attribute_defs:
- name: score
type_name: int
is_optional: true
options:
applicableEntityTypes: '["hive_table"]'
- name: certified
type_name: boolean
is_optional: true
options:
applicableEntityTypes: '["hive_table"]'
- name: reviewers
type_name: array<string>
is_optional: true
options:
applicableEntityTypes: '["hive_table"]'
maxStrLength: "100"
- name: Preview a change without applying it
cloudera.services.atlas_business_metadata_def:
name: data_governance
description: Governance details for tables and databases
check_mode: true
diff: true
register: preview
- name: Remove business metadata
cloudera.services.atlas_business_metadata_def:
name: data_governance
state: absent
- name: Remove business metadata that has non-indexable attributes
cloudera.services.atlas_business_metadata_def:
name: data_governance
state: absent
# Atlas will not validate references for non-indexable attributes, so
# orphaned references may remain on entities.
force: true
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
The business metadata type definition. Returned: when |
|
Attributes of the business metadata. Returned: success |
|
Cardinality of the attribute. Returned: success |
|
Constraints on the attribute. Returned: success |
|
Parameters of the constraint. Returned: success |
|
Type of the constraint. Returned: success |
|
Default value of the attribute. Returned: success |
|
Description of the attribute. Returned: success |
|
Display name of the attribute. Returned: success |
|
Whether changes are included in notifications. Returned: success |
|
Index type of the attribute. Returned: success |
|
Whether the attribute is indexed. Returned: success |
|
Whether a value is optional. Returned: success |
|
Whether values must be unique. Returned: success |
|
Name of the attribute. Returned: success |
|
Free-form options of the attribute. Returned: success |
|
Search weight of the attribute. Returned: success |
|
Name of the attribute type. Returned: success |
|
Maximum number of values. Returned: success |
|
Minimum number of values. Returned: success |
|
Type category, always Returned: success |
|
Creation time in epoch milliseconds. Returned: success |
|
User that created the type definition. Returned: success |
|
Description of the business metadata type definition. Returned: success |
|
Atlas-assigned identifier. Returned: success |
|
Name of the business metadata type definition. Returned: success |
|
Free-form options of the type definition. Returned: success |
|
Name of the service that owns the type definition. Returned: success |
|
Version label of the type definition. Returned: success |
|
Last update time in epoch milliseconds. Returned: success |
|
User that last updated the type definition. Returned: success |
|
Atlas version number of the type definition. Returned: success |