name: Help Wanted
about: Request community help on a specific task or feature
title: '[HELP WANTED] Implement a new adapter for Microsoft SQL Server'
labels: 'help wanted'
assignees: ''
What We Need Help With
We need help creating a new adapter to connect Intugle to Microsoft SQL Server. This will enable users to connect to their SQL Server databases to profile data, build semantic models, and generate data products.
Background & Context
To increase the versatility of Intugle, we want to expand our library of connectors to support popular enterprise database systems. Microsoft SQL Server is a widely used RDBMS, and adding a native adapter for it will make Intugle accessible to a larger group of users and a wider range of data ecosystems.
Current State
Currently, Intugle does not have a native connector for Microsoft SQL Server. Users must manually extract data into a supported format (like CSV) to use it with the toolkit, which is inefficient and doesn't allow for direct interaction with the database.
Desired Outcome
A robust and fully functional SQL Server adapter that is seamlessly integrated into the Intugle framework. A user should be able to configure their SQL Server connection details in profiles.yml and leverage Intugle's full feature set, including:
- Profiling tables and columns.
- Executing queries against SQL Server.
- Materializing queries as new tables or views.
- Building data products and performing semantic searches on their SQL Server data.
Scope of Work
Technical Details
The new adapter should follow the established pattern of existing database adapters, such as the PostgresAdapter. It will need to handle the specifics of connecting to SQL Server and executing T-SQL queries.
Relevant Files/Modules
src/intugle/adapters/types/postgres/ (as a reference)
src/intugle/adapters/types/sqlserver/ (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
- Microsoft SQL Server & T-SQL
- Python
- Pydantic
- Database connectivity in Python (e.g.,
pyodbc)
Related Documentation
Suggested Approach
The most effective approach is to use the PostgresAdapter as a blueprint. The overall structure and many of the methods can be adapted. Key areas of focus will be the database connection logic and ensuring that all generated SQL queries are compatible with the T-SQL dialect. The documentation's suggestion to use an AI assistant could be very helpful for generating the initial boilerplate code.
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 implementation as a reference for your SQLServerAdapter.
Testing Requirements
Questions & Support
- Ask questions in the comments below.
- Join our Discord for real-time help.
- Tag maintainers:
Additional Context
The pyodbc library is a common choice for connecting to SQL Server from Python. Its documentation may be a useful resource: pyodbc Wiki
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 Microsoft SQL Server'
labels: 'help wanted'
assignees: ''
What We Need Help With
We need help creating a new adapter to connect Intugle to Microsoft SQL Server. This will enable users to connect to their SQL Server databases to profile data, build semantic models, and generate data products.
Background & Context
To increase the versatility of Intugle, we want to expand our library of connectors to support popular enterprise database systems. Microsoft SQL Server is a widely used RDBMS, and adding a native adapter for it will make Intugle accessible to a larger group of users and a wider range of data ecosystems.
Current State
Currently, Intugle does not have a native connector for Microsoft SQL Server. Users must manually extract data into a supported format (like CSV) to use it with the toolkit, which is inefficient and doesn't allow for direct interaction with the database.
Desired Outcome
A robust and fully functional SQL Server adapter that is seamlessly integrated into the Intugle framework. A user should be able to configure their SQL Server connection details in
profiles.ymland leverage Intugle's full feature set, including:Scope of Work
src/intugle/adapters/types/sqlserver/.models.py).SQLServerclass, inheriting fromintugle.adapters.adapter.Adapter(sqlserver.py).Adapterclass, translating them into the appropriate T-SQL dialect.pyodbcorpymssql) as an optional dependency inpyproject.toml.Technical Details
The new adapter should follow the established pattern of existing database adapters, such as the
PostgresAdapter. It will need to handle the specifics of connecting to SQL Server and executing T-SQL queries.Relevant Files/Modules
src/intugle/adapters/types/postgres/(as a reference)src/intugle/adapters/types/sqlserver/(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
pyodbc)Related Documentation
Suggested Approach
The most effective approach is to use the
PostgresAdapteras a blueprint. The overall structure and many of the methods can be adapted. Key areas of focus will be the database connection logic and ensuring that all generated SQL queries are compatible with the T-SQL dialect. The documentation's suggestion to use an AI assistant could be very helpful for generating the initial boilerplate code.Skills Needed
Difficulty Level
Time Estimate
Getting Started
PostgresAdapterimplementation as a reference for yourSQLServerAdapter.Testing Requirements
SQLServerAdapterclass.Questions & Support
Additional Context
The
pyodbclibrary is a common choice for connecting to SQL Server from Python. Its documentation may be a useful resource: pyodbc WikiWe appreciate your interest in contributing to Intugle! 🙏