diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 03:36:41 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 03:36:41 +0000 |
commit | 6ccfb36f98569119b6265e967f4e52fd6b79a335 (patch) | |
tree | 79811d193fd3eec2e57a8f8072ca12fa205e170c | |
parent | d265f643ae068f8ef909f557b0cd74fc642ad18f (diff) |
automatic import of python-dbt-mysqlopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-dbt-mysql.spec | 344 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 346 insertions, 0 deletions
@@ -0,0 +1 @@ +/dbt-mysql-1.1.0.tar.gz diff --git a/python-dbt-mysql.spec b/python-dbt-mysql.spec new file mode 100644 index 0000000..6b36390 --- /dev/null +++ b/python-dbt-mysql.spec @@ -0,0 +1,344 @@ +%global _empty_manifest_terminate_build 0 +Name: python-dbt-mysql +Version: 1.1.0 +Release: 1 +Summary: The MySQL adapter plugin for dbt +License: Apache Software License +URL: https://github.com/dbeatty10/dbt-mysql +Source0: https://mirrors.aliyun.com/pypi/web/packages/28/cf/823d40b1454cf292f7bf182daa48074d1c340d2f9cd2357b688481838be8/dbt-mysql-1.1.0.tar.gz +BuildArch: noarch + +Requires: python3-dbt-core +Requires: python3-mysql-connector-python + +%description + * [Installation](#installation) + * [Supported features](#supported-features) + * [MySQL 5.7 configuration gotchas](#mysql-57-configuration-gotchas) + * [Configuring your profile](#configuring-your-profile) + * [Notes](#notes) + * [Running Tests](#running-tests) + * [Reporting bugs and contributing code](#reporting-bugs-and-contributing-code) +### Installation +This plugin can be installed via pip: +```shell +$ python -m pip install dbt-mysql +``` +### Supported features +| MariaDB 10.5 | MySQL 5.7 | MySQL 8.0 | Feature | +|:---------:|:---------:|:---:|-----------------------------| +| ✅ | ✅ | ✅ | Table materialization | +| ✅ | ✅ | ✅ | View materialization | +| ✅ | ✅ | ✅ | Incremental materialization | +| ✅ | ❌ | ✅ | Ephemeral materialization | +| ✅ | ✅ | ✅ | Seeds | +| ✅ | ✅ | ✅ | Sources | +| ✅ | ✅ | ✅ | Custom data tests | +| ✅ | ✅ | ✅ | Docs generate | +| 🤷 | 🤷 | ✅ | Snapshots | +Notes: +- Ephemeral materializations rely upon [Common Table Expressions](https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL) (CTEs), which are not supported until MySQL 8.0 +- MySQL 5.7 has some configuration gotchas that affect snapshots (see below). +#### MySQL 5.7 configuration gotchas +dbt snapshots might not work properly due to [automatic initialization and updating for `TIMESTAMP`](https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html) if: +- the output of `SHOW VARIABLES LIKE 'sql_mode'` includes `NO_ZERO_DATE` +A solution is to include the following in a `*.cnf` file: +``` +[mysqld] +explicit_defaults_for_timestamp = true +sql_mode = "ALLOW_INVALID_DATES,{other_sql_modes}" +``` +where `{other_sql_modes}` is the rest of the modes from the `SHOW VARIABLES LIKE 'sql_mode'` output. +### Configuring your profile +A dbt profile can be configured to run against MySQL using configuration example below. +Use `type: mysql` for MySQL 8.x, `type: mysql5` for MySQL 5.x, and `type: mariadb` for MariaDB. +**Example entry for profiles.yml:** +``` +your_profile_name: + target: dev + outputs: + dev: + type: mysql + server: localhost + port: 3306 + schema: analytics + username: your_mysql_username + password: your_mysql_password + ssl_disabled: True +``` +| Option | Description | Required? | Example | +| --------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------- | +| type | The specific adapter to use | Required | `mysql`, `mysql5` or `mariadb` | +| server | The server (hostname) to connect to | Required | `yourorg.mysqlhost.com` | +| port | The port to use | Optional | `3306` | +| schema | Specify the schema (database) to build models into | Required | `analytics` | +| username | The username to use to connect to the server | Required | `dbt_admin` | +| password | The password to use for authenticating to the server | Required | `correct-horse-battery-staple` | +| ssl_disabled | Set to enable or disable TLS connectivity to mysql5.x | Optional | `True` or `False` | +### Notes +Conflicting terminology is used between: +- dbt +- Database management systems (DBMS) like MySQL, Postgres, and Snowflake +- metadata in the ANSI-standard `information_schema` +The conflicts include both: +- the same word meaning different things +- different words meaning the same thing +For example, a "database" in MySQL is not the same as a "database" in dbt, but it is equivalent to a "schema" in Postgres 🤯. +dbt-mysql uses the dbt terms. The native MySQL verbiage is restricted to SQL statements. +This cross-walk aligns the terminology: +| information_schema | dbt (and Postgres) | MySQL | +| --------------------- | ---------------------------- | -------------------------------- | +| catalog | database | _undefined / not implemented_ | +| schema | schema | database | +| relation (table/view) | relation (table/view) | relation (table/view) | +| column | column | column | +Additionally, many DBMS have relation names with three parts whereas MySQL has only two. E.g., a fully-qualified table name in Postgres is `database.schema.table` versus `database.table` in MySQL. The missing part in MySQL is the `information_schema` "catalog". +| DBMS | Fully-qualified relation name | Parts | +| ------------------ | ----------------------------- | ---------- | +| Postgres | `database.schema.table` | 3 | +| MySQL | `database.table` | 2 | +### Running Tests +See [test/README.md](test/README.md) for details on running the integration tests. +### Reporting bugs and contributing code +- Want to report a bug or request a feature? See the [contributing guidelines](https://github.com/dbeatty10/dbt-mysql/blob/main/CONTRIBUTING.rst#contributing), or open [an issue](https://github.com/dbeatty10/dbt-mysql/issues/new). +### Credits +dbt-mysql borrows from [dbt-spark](https://github.com/dbt-labs/dbt-spark) and [dbt-sqlite](https://github.com/codeforkjeff/dbt-sqlite) since Spark and SQLite also use two-part relation names. + +%package -n python3-dbt-mysql +Summary: The MySQL adapter plugin for dbt +Provides: python-dbt-mysql +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-dbt-mysql + * [Installation](#installation) + * [Supported features](#supported-features) + * [MySQL 5.7 configuration gotchas](#mysql-57-configuration-gotchas) + * [Configuring your profile](#configuring-your-profile) + * [Notes](#notes) + * [Running Tests](#running-tests) + * [Reporting bugs and contributing code](#reporting-bugs-and-contributing-code) +### Installation +This plugin can be installed via pip: +```shell +$ python -m pip install dbt-mysql +``` +### Supported features +| MariaDB 10.5 | MySQL 5.7 | MySQL 8.0 | Feature | +|:---------:|:---------:|:---:|-----------------------------| +| ✅ | ✅ | ✅ | Table materialization | +| ✅ | ✅ | ✅ | View materialization | +| ✅ | ✅ | ✅ | Incremental materialization | +| ✅ | ❌ | ✅ | Ephemeral materialization | +| ✅ | ✅ | ✅ | Seeds | +| ✅ | ✅ | ✅ | Sources | +| ✅ | ✅ | ✅ | Custom data tests | +| ✅ | ✅ | ✅ | Docs generate | +| 🤷 | 🤷 | ✅ | Snapshots | +Notes: +- Ephemeral materializations rely upon [Common Table Expressions](https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL) (CTEs), which are not supported until MySQL 8.0 +- MySQL 5.7 has some configuration gotchas that affect snapshots (see below). +#### MySQL 5.7 configuration gotchas +dbt snapshots might not work properly due to [automatic initialization and updating for `TIMESTAMP`](https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html) if: +- the output of `SHOW VARIABLES LIKE 'sql_mode'` includes `NO_ZERO_DATE` +A solution is to include the following in a `*.cnf` file: +``` +[mysqld] +explicit_defaults_for_timestamp = true +sql_mode = "ALLOW_INVALID_DATES,{other_sql_modes}" +``` +where `{other_sql_modes}` is the rest of the modes from the `SHOW VARIABLES LIKE 'sql_mode'` output. +### Configuring your profile +A dbt profile can be configured to run against MySQL using configuration example below. +Use `type: mysql` for MySQL 8.x, `type: mysql5` for MySQL 5.x, and `type: mariadb` for MariaDB. +**Example entry for profiles.yml:** +``` +your_profile_name: + target: dev + outputs: + dev: + type: mysql + server: localhost + port: 3306 + schema: analytics + username: your_mysql_username + password: your_mysql_password + ssl_disabled: True +``` +| Option | Description | Required? | Example | +| --------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------- | +| type | The specific adapter to use | Required | `mysql`, `mysql5` or `mariadb` | +| server | The server (hostname) to connect to | Required | `yourorg.mysqlhost.com` | +| port | The port to use | Optional | `3306` | +| schema | Specify the schema (database) to build models into | Required | `analytics` | +| username | The username to use to connect to the server | Required | `dbt_admin` | +| password | The password to use for authenticating to the server | Required | `correct-horse-battery-staple` | +| ssl_disabled | Set to enable or disable TLS connectivity to mysql5.x | Optional | `True` or `False` | +### Notes +Conflicting terminology is used between: +- dbt +- Database management systems (DBMS) like MySQL, Postgres, and Snowflake +- metadata in the ANSI-standard `information_schema` +The conflicts include both: +- the same word meaning different things +- different words meaning the same thing +For example, a "database" in MySQL is not the same as a "database" in dbt, but it is equivalent to a "schema" in Postgres 🤯. +dbt-mysql uses the dbt terms. The native MySQL verbiage is restricted to SQL statements. +This cross-walk aligns the terminology: +| information_schema | dbt (and Postgres) | MySQL | +| --------------------- | ---------------------------- | -------------------------------- | +| catalog | database | _undefined / not implemented_ | +| schema | schema | database | +| relation (table/view) | relation (table/view) | relation (table/view) | +| column | column | column | +Additionally, many DBMS have relation names with three parts whereas MySQL has only two. E.g., a fully-qualified table name in Postgres is `database.schema.table` versus `database.table` in MySQL. The missing part in MySQL is the `information_schema` "catalog". +| DBMS | Fully-qualified relation name | Parts | +| ------------------ | ----------------------------- | ---------- | +| Postgres | `database.schema.table` | 3 | +| MySQL | `database.table` | 2 | +### Running Tests +See [test/README.md](test/README.md) for details on running the integration tests. +### Reporting bugs and contributing code +- Want to report a bug or request a feature? See the [contributing guidelines](https://github.com/dbeatty10/dbt-mysql/blob/main/CONTRIBUTING.rst#contributing), or open [an issue](https://github.com/dbeatty10/dbt-mysql/issues/new). +### Credits +dbt-mysql borrows from [dbt-spark](https://github.com/dbt-labs/dbt-spark) and [dbt-sqlite](https://github.com/codeforkjeff/dbt-sqlite) since Spark and SQLite also use two-part relation names. + +%package help +Summary: Development documents and examples for dbt-mysql +Provides: python3-dbt-mysql-doc +%description help + * [Installation](#installation) + * [Supported features](#supported-features) + * [MySQL 5.7 configuration gotchas](#mysql-57-configuration-gotchas) + * [Configuring your profile](#configuring-your-profile) + * [Notes](#notes) + * [Running Tests](#running-tests) + * [Reporting bugs and contributing code](#reporting-bugs-and-contributing-code) +### Installation +This plugin can be installed via pip: +```shell +$ python -m pip install dbt-mysql +``` +### Supported features +| MariaDB 10.5 | MySQL 5.7 | MySQL 8.0 | Feature | +|:---------:|:---------:|:---:|-----------------------------| +| ✅ | ✅ | ✅ | Table materialization | +| ✅ | ✅ | ✅ | View materialization | +| ✅ | ✅ | ✅ | Incremental materialization | +| ✅ | ❌ | ✅ | Ephemeral materialization | +| ✅ | ✅ | ✅ | Seeds | +| ✅ | ✅ | ✅ | Sources | +| ✅ | ✅ | ✅ | Custom data tests | +| ✅ | ✅ | ✅ | Docs generate | +| 🤷 | 🤷 | ✅ | Snapshots | +Notes: +- Ephemeral materializations rely upon [Common Table Expressions](https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL) (CTEs), which are not supported until MySQL 8.0 +- MySQL 5.7 has some configuration gotchas that affect snapshots (see below). +#### MySQL 5.7 configuration gotchas +dbt snapshots might not work properly due to [automatic initialization and updating for `TIMESTAMP`](https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html) if: +- the output of `SHOW VARIABLES LIKE 'sql_mode'` includes `NO_ZERO_DATE` +A solution is to include the following in a `*.cnf` file: +``` +[mysqld] +explicit_defaults_for_timestamp = true +sql_mode = "ALLOW_INVALID_DATES,{other_sql_modes}" +``` +where `{other_sql_modes}` is the rest of the modes from the `SHOW VARIABLES LIKE 'sql_mode'` output. +### Configuring your profile +A dbt profile can be configured to run against MySQL using configuration example below. +Use `type: mysql` for MySQL 8.x, `type: mysql5` for MySQL 5.x, and `type: mariadb` for MariaDB. +**Example entry for profiles.yml:** +``` +your_profile_name: + target: dev + outputs: + dev: + type: mysql + server: localhost + port: 3306 + schema: analytics + username: your_mysql_username + password: your_mysql_password + ssl_disabled: True +``` +| Option | Description | Required? | Example | +| --------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------- | +| type | The specific adapter to use | Required | `mysql`, `mysql5` or `mariadb` | +| server | The server (hostname) to connect to | Required | `yourorg.mysqlhost.com` | +| port | The port to use | Optional | `3306` | +| schema | Specify the schema (database) to build models into | Required | `analytics` | +| username | The username to use to connect to the server | Required | `dbt_admin` | +| password | The password to use for authenticating to the server | Required | `correct-horse-battery-staple` | +| ssl_disabled | Set to enable or disable TLS connectivity to mysql5.x | Optional | `True` or `False` | +### Notes +Conflicting terminology is used between: +- dbt +- Database management systems (DBMS) like MySQL, Postgres, and Snowflake +- metadata in the ANSI-standard `information_schema` +The conflicts include both: +- the same word meaning different things +- different words meaning the same thing +For example, a "database" in MySQL is not the same as a "database" in dbt, but it is equivalent to a "schema" in Postgres 🤯. +dbt-mysql uses the dbt terms. The native MySQL verbiage is restricted to SQL statements. +This cross-walk aligns the terminology: +| information_schema | dbt (and Postgres) | MySQL | +| --------------------- | ---------------------------- | -------------------------------- | +| catalog | database | _undefined / not implemented_ | +| schema | schema | database | +| relation (table/view) | relation (table/view) | relation (table/view) | +| column | column | column | +Additionally, many DBMS have relation names with three parts whereas MySQL has only two. E.g., a fully-qualified table name in Postgres is `database.schema.table` versus `database.table` in MySQL. The missing part in MySQL is the `information_schema` "catalog". +| DBMS | Fully-qualified relation name | Parts | +| ------------------ | ----------------------------- | ---------- | +| Postgres | `database.schema.table` | 3 | +| MySQL | `database.table` | 2 | +### Running Tests +See [test/README.md](test/README.md) for details on running the integration tests. +### Reporting bugs and contributing code +- Want to report a bug or request a feature? See the [contributing guidelines](https://github.com/dbeatty10/dbt-mysql/blob/main/CONTRIBUTING.rst#contributing), or open [an issue](https://github.com/dbeatty10/dbt-mysql/issues/new). +### Credits +dbt-mysql borrows from [dbt-spark](https://github.com/dbt-labs/dbt-spark) and [dbt-sqlite](https://github.com/codeforkjeff/dbt-sqlite) since Spark and SQLite also use two-part relation names. + +%prep +%autosetup -n dbt-mysql-1.1.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-dbt-mysql -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.0-1 +- Package Spec generated @@ -0,0 +1 @@ +7192a789e8d93682e68c0077ccd50ec3 dbt-mysql-1.1.0.tar.gz |