MariaDB
Important Capabilities
Capability | Status | Notes |
---|---|---|
Asset Containers | ✅ | Enabled by default |
Classification | ✅ | Optionally enabled via classification.enabled |
Data Profiling | ✅ | Optionally enabled via configuration |
Descriptions | ✅ | Enabled by default |
Detect Deleted Entities | ✅ | Enabled via stateful ingestion |
Domains | ✅ | Supported via the domain config field |
Platform Instance | ✅ | Enabled by default |
Schema Metadata | ✅ | Enabled by default |
CLI based Ingestion
Starter Recipe
Check out the following recipe to get started with ingestion! See below for full configuration options.
For general pointers on writing and running a recipe, see our main recipe guide.
source:
type: mariadb
config:
# Coordinates
host_port: localhost:3306
database: dbname
# Credentials
username: root
password: example
# If you need to use SSL with MariaDB:
# options:
# connect_args:
# ssl_ca: "path_to/server-ca.pem"
# ssl_cert: "path_to/client-cert.pem"
# ssl_key: "path_to/client-key.pem"
# sink configs
Config Details
- Options
- Schema
Note that a .
is used to denote nested fields in the YAML recipe.
Field | Description |
---|---|
database string | database (catalog) |
host_port string | MariaDB host URL. Default: localhost:3306 |
options object | Any options specified here will be passed to SQLAlchemy.create_engine as kwargs. To set connection arguments in the URL, specify them under connect_args . |
password string(password) | password |
scheme string | Default: mysql+pymysql |
sqlalchemy_uri string | URI of database to connect to. See https://docs.sqlalchemy.org/en/14/core/engines.html#database-urls. Takes precedence over other connection parameters. |
username string | username |
The JSONSchema for this configuration is inlined below.
{
"title": "MariaDBConnectionConfig",
"type": "object",
"properties": {
"username": {
"title": "Username",
"description": "username",
"type": "string"
},
"password": {
"title": "Password",
"description": "password",
"type": "string",
"writeOnly": true,
"format": "password"
},
"host_port": {
"title": "Host Port",
"description": "MariaDB host URL.",
"default": "localhost:3306",
"type": "string"
},
"database": {
"title": "Database",
"description": "database (catalog)",
"type": "string"
},
"scheme": {
"title": "Scheme",
"default": "mysql+pymysql",
"type": "string"
},
"sqlalchemy_uri": {
"title": "Sqlalchemy Uri",
"description": "URI of database to connect to. See https://docs.sqlalchemy.org/en/14/core/engines.html#database-urls. Takes precedence over other connection parameters.",
"type": "string"
},
"options": {
"title": "Options",
"description": "Any options specified here will be passed to [SQLAlchemy.create_engine](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine) as kwargs. To set connection arguments in the URL, specify them under `connect_args`.",
"type": "object"
}
},
"additionalProperties": false
}
Code Coordinates
- Class Name:
datahub.ingestion.source.sql.mariadb.MariaDBSource
- Browse on GitHub
Questions
If you've got any questions on configuring ingestion for MariaDB, feel free to ping us on our Slack.
Is this page helpful?