name: Help Wanted
about: Request community help on a specific task or feature
title: '[HELP WANTED] Implement a new adapter for MySQL'
labels: 'help wanted'
assignees: ''
What We Need Help With
We are looking for a contributor to build a new adapter for MySQL. This will enable users to connect Intugle directly to their MySQL databases for profiling, analysis, and building data products.
Background & Context
MySQL is one of the most popular open-source relational databases in the world. To broaden the applicability of Intugle, providing native support for MySQL is a crucial step. This will allow a large community of developers and data professionals to leverage Intugle with their existing data infrastructure.
Current State
Intugle does not currently have a native adapter for MySQL. Users must manually export their data into a file format like CSV to use it with our toolkit, which prevents direct, real-time analysis of the database.
Desired Outcome
A complete and well-tested MySQL adapter that allows users to:
- Configure their MySQL connection in
profiles.yml.
- Profile tables and columns from a MySQL database.
- Execute queries using the MySQL SQL dialect.
- Create new tables or views from query results.
- Seamlessly integrate their MySQL data into the Intugle semantic model.
Scope of Work
Technical Details
Checkout the documentation on how to implement a adapter : Implementing a Connector
The new adapter should follow the established pattern of the PostgresAdapter. The implementation will need to account for the differences in SQL dialect and connection handling between PostgreSQL and MySQL.
Relevant Files/Modules
src/intugle/adapters/types/postgres/ (as a reference)
src/intugle/adapters/types/mysql/ (to be created)
src/intugle/adapters/factory.py (to register the new adapter)
pyproject.toml (to add optional dependencies)
tests/adapters/ (to add new tests)
Key Concepts/Technologies
- MySQL & its SQL dialect
- Python
- Pydantic
Related Documentation
Suggested Approach
Use the PostgresAdapter as a primary reference for the structure and logic. Pay close attention to areas where MySQL's SQL syntax, data types, and information schema differ from PostgreSQL's.
Skills Needed
Difficulty Level
Time Estimate
Getting Started
- Fork the repository.
- Set up your development environment (see CONTRIBUTING.md).
- Follow the Implementing a Connector guide.
- Use the
PostgresAdapter as a template for your MySQLAdapter.
Testing Requirements
Questions & Support
- Ask questions in the comments below.
- Join our Discord for real-time help.
Additional Context
Note on Dependencies: When choosing a database driver or any other external library, please ensure its license is permissive (e.g., MIT, Apache 2.0) to be compatible with this project's Apache 2.0 license.
We appreciate your interest in contributing to Intugle! 🙏
name: Help Wanted
about: Request community help on a specific task or feature
title: '[HELP WANTED] Implement a new adapter for MySQL'
labels: 'help wanted'
assignees: ''
What We Need Help With
We are looking for a contributor to build a new adapter for MySQL. This will enable users to connect Intugle directly to their MySQL databases for profiling, analysis, and building data products.
Background & Context
MySQL is one of the most popular open-source relational databases in the world. To broaden the applicability of Intugle, providing native support for MySQL is a crucial step. This will allow a large community of developers and data professionals to leverage Intugle with their existing data infrastructure.
Current State
Intugle does not currently have a native adapter for MySQL. Users must manually export their data into a file format like CSV to use it with our toolkit, which prevents direct, real-time analysis of the database.
Desired Outcome
A complete and well-tested MySQL adapter that allows users to:
profiles.yml.Scope of Work
src/intugle/adapters/types/mysql/.models.py).MySQLAdapterclass, inheriting fromintugle.adapters.adapter.Adapter(mysql.py).Adapterbase class for the MySQL dialect.mysql-connector-python) as an optional dependency inpyproject.toml.Technical Details
Checkout the documentation on how to implement a adapter : Implementing a Connector
The new adapter should follow the established pattern of the
PostgresAdapter. The implementation will need to account for the differences in SQL dialect and connection handling between PostgreSQL and MySQL.Relevant Files/Modules
src/intugle/adapters/types/postgres/(as a reference)src/intugle/adapters/types/mysql/(to be created)src/intugle/adapters/factory.py(to register the new adapter)pyproject.toml(to add optional dependencies)tests/adapters/(to add new tests)Key Concepts/Technologies
Related Documentation
Suggested Approach
Use the
PostgresAdapteras a primary reference for the structure and logic. Pay close attention to areas where MySQL's SQL syntax, data types, and information schema differ from PostgreSQL's.Skills Needed
Difficulty Level
Time Estimate
Getting Started
PostgresAdapteras a template for yourMySQLAdapter.Testing Requirements
MySQLAdapterclass.Questions & Support
Additional Context
Note on Dependencies: When choosing a database driver or any other external library, please ensure its license is permissive (e.g., MIT, Apache 2.0) to be compatible with this project's Apache 2.0 license.
We appreciate your interest in contributing to Intugle! 🙏