3. Agenda
Connecting to mySQL from .NET
Leveraging SQL Reporting Services with mySQL
Data
Harvesting mySQL data into Analysis Services
with SSIS
4. Objective
In this session, we will talk about connecting to
mySQL from the .NET world.
We will then see how we can use SQL Reporting
services with your data in mySQL and look at
best practices in working with mySQL
Lastly we will look at how we can use your
mySQL data with SSIS and get the data into SQL
Analysis Servcies
5. Leveraging your investments
In the short term, migrating from mySQL is a lot of
work. You can preserve your investments in
mySQL and leverage features of SQL Server
2008 to get the most out of your current data.
Lets take a look at how we can
Use mySQL Data access from .NET
Build Reporting Solutions on mySQL
Transfer data for reporting and analysis using
SSIS mySQL data
6. ODBC Solution
Requirements
Access Multiple DBMSs
using same source code without recompiling and relinking
Simultaneously
Which DBMS features should ODBC expose ?
Common to all DBMSs
Any feature that is available in any DBMS
Solves
It is a Call Level Interface(CLI)
Defines Standard SQL Grammar
Driver Manager -> simultaneous access to multiple
DBMSs
Feature Set
7. ODBC Architecture
Application
ODBC API
Driver Manager
ODBC API
Driver Driver Driver Driver
Data Data Data Data
Source Source Source Source
8. Connector/ODBC with .NET
• ODBC.NET Provider
– Add-in component to the Microsoft.NET Framework
– Directly accesses native ODBC drivers
• Setup
– Microsoft .NET Framework SDK
– MDAC 2.6 or later (2.7 is recommended)
– ODBC.NET Provider (Microsoft.Data.Odbcname space)
• Installed to “C:Program FilesMicrosoft.NETOdbc.Net”
9. ODBC.NET Architecture
ODBC.NET Application
ODBC.NET API
ODBC.NET Provider
ODBC API
Driver Driver Connector/ODBC
MySQL C API
Data Data
MySQL
Source Source
11. Developing ODBC.NET Applications (cont..)
• First, import the ODBC.NET namespace
Imports Microsoft.Data.Odbc ( VB.net )
using Microsoft.Data.Odbc (C# )
• Connect to MySQL server by loading Connector/ODBC
String myconStr= “DSN=myodbc3-test;…”
OdbcConnectionmyOdbcCon= new OdbcConnection(myConStr)
myOdbcCon.open()
• Complete article on ‘Exploring MySQL in the .NET environment”
can be found from here:
http://www.mysql.com/articles/dotnet
12. mySQL Driver Programming Hints
• Direct linking with the driver will drastically increase the
performance by a factor of ~40-50%
• Do not use the debug version of the driver DLL
• Turn off all ODBC and Connector/ODBC loggers
• Avoid using ODBC API calls that works on prepared results
instead use it on execute call
13. Using Reporting Services
Harvesting your mySQL data
SQL Server Reporting Services can report on
data from any data source
For connecting to mySQL, involves a lot of syntax
changes
Reports cannot be used across mySQL and SQL
server easily
Driver inconsistency leads to bad reporting
experience
14. Using Linked Server
Bridging your data from mySQL to SQL Server
SQL Server allows the definitions of Linked
Servers
Uses Data providers to connect to mySQL
Shows the data as a SQL Server data to the outside
world
Allows for SQL syntax, but continues limitations of
the drivers
Enables for easy migration from mySQL to SQL
Server later.
15. Using RS with Linked Server
Harvesting your mySQL data
Leverage Linked Servers to connect to mySQL
Makes connections to mySQL easier
Can cache and operate on the data inside of SQL
Server
Makes migration to SQL Server easier with least
code change
Impact of performance less than 5%
DO NOT USE THE DRIVER DIRECTLY!
16. Using Analysis Services
Integrating and Analysing mySQL data
SSAS can connect to mySQL and use it as a store
for OLTP reporting
Very unstable
Move to OLAP not smooth
Performance issues with the mySQL Driver
17. Using Analysis Services
Integrating and Analysing mySQL data
SSIS can connect to mySQL to look up
information
It can translate the data to OLTP in SQL or OLAP
directly
Excellent performance
Rich pipeline transformations
18. mySQL Bi Architecture
ASP.NET
mySQL
DB
ADO.NET Provider
Reporting
Services
SSIS
SQL Server
DB
19. mySQL Bi Architecture
ASP.NET
mySQL
DB
SQL Server
Reporting DB Linked Server
Services
SSIS
20. Summary
Harvesting your mySQL data for BI
The mySQL ODBC.NET Drivers provide for a way
to link to your mySQL data directly from .NET
Reporting Services can use the .NET Drivers
directly but not all features of RS can be
leveraged with this
Linked servers provide an excellent bridge and
migration path from mySQL to SQL Server
SSIS can connect to and use mySQL data for
analysis services
21.
22.
23. Track Resources
ASP.NET with mySQL (http://www.codeproject.com/KB/webforms/MySQLsuite.aspx)
mySQL Ado.NET Provider (http://dev.mysql.com/downloads/connector/net/6.0.html)
mySQL ODBC Driver (http://dev.mysql.com/downloads/connector/odbc/5.1.html)
Unlike other providers SQL splits planar and non planar data into two separate types. Geometry and geography.Non planar data is all about projections. If you think about maps of the world they have to use some form of projection to convert the elliptical surface of the earth into a flat map. In other providers they store the data in a planar projection and then perform the projection to workout the geographic calculations.We mentioned earlier that the spatial data is only in 2 dimensions. Whilst you can hold two other values Z and M for points they are not used in any of the spatial methods .