MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

MariaDB i dane zewnętrzne

MariaDB to rozwidlenie MySQL, które początkowo wywodzi się z wersji 5.1 MySQL. W przeciwieństwie do MySQL, MariaDB może używać danych zewnętrznych przechowywanych w bazach danych innych niż MariaDB, tak jakby dane były przechowywane w standardowej tabeli MariaDB. Dane nie są ładowane do MariaDB. Do pracy z danymi zewnętrznymi MariaDB używa aparatu pamięci masowej CONNECT. Ten silnik pamięci został wprowadzony w MariaDB 10.0.

Aparat pamięci masowej CONNECT jest dołączony zarówno do wersji bazy danych dla systemu Windows, jak i Linux, chociaż nie jest ładowany domyślnie. Aparat pamięci masowej CONNECT może używać ODBC do pracy z danymi zewnętrznymi. ODBC to interfejs neutralny dla bazy danych, który umożliwia aplikacjom zgodnym z ODBC, takim jak silnik pamięci masowej CONNECT, współpracę z dowolną bazą danych, dla której dostępny jest sterownik ODBC. ODBC tłumaczy zapytania danych aplikacji na coś, co rozumie docelowa baza danych.

ODBC składa się z dwóch komponentów:sterownika ODBC i Menedżera sterowników ODBC. Sterownik ODBC jest specyficzny dla bazy danych, tzn. sterownik ODBC Microsoft Access będzie komunikował się tylko z bazą danych Microsoft Access. Menedżer sterowników ODBC to interfejs między aparatem pamięci masowej CONNECT a sterownikiem ODBC. Driver Manager odpowiada za ładowanie sterownika ODBC, izolując aplikację (tj. silnik pamięci masowej) od komponentu, który współdziała z bazą danych. Ta architektura umożliwia MariaDB łączenie się z różnymi bazami danych bez wprowadzania jakichkolwiek zmian w MariaDB.

W systemie Windows firma Microsoft dostarcza Menedżera sterowników ODBC z systemem operacyjnym i jest to ten, którego silnik pamięci masowej CONNECT używa na tej platformie.

W systemie Linux aparat pamięci masowej CONNECT korzysta z menedżera sterowników unixODBC. Ten Menedżer sterowników jest zwykle dostępny z systemem operacyjnym, chociaż może nie być instalowany domyślnie. Wszystkie sterowniki Easysoft ODBC dla platform innych niż Windows zawierają menedżera sterowników unixODBC.

Podsumowując, komponenty wymagane do połączenia MariaDB z danymi zewnętrznymi za pomocą ODBC to:

Aby wypróbować silnik pamięci masowej CONNECT, użyliśmy naszych sterowników SQL Server i Access ODBC z MariaDB w systemie Linux oraz naszego sterownika Salesforce ODBC z MariaDB w systemie Windows.

Uwaga Jeśli używasz 64-bitowej wersji MariaDB, musisz użyć 64-bitowego sterownika ODBC. Jeśli używasz 32-bitowej wersji MariaDB, musisz użyć 32-bitowego sterownika ODBC.

Ładowanie silnika Connect Storage

Niezależnie od tego, czy używasz MariaDB w systemie Linux czy Windows, to samo polecenie jest wymagane do załadowania aparatu magazynu CONNECT. W powłoce klienta MySQL wpisz:

INSTALL SONAME 'ha_connect';

Zakładając, że masz zainstalowany odpowiedni sterownik ODBC dla docelowej bazy danych i skonfigurowałeś źródło danych ODBC, możesz teraz zintegrować dane zewnętrzne z MariaDB.

W systemie Linux używaliśmy kopii menedżera sterowników unixODBC, który był dołączony do naszych sterowników, więc musieliśmy ustawić środowisko tak, aby te biblioteki Menedżera sterowników były ładowane.

# /etc/init.d/mariadb stop
# export LD_LIBRARY_PATH=/usr/local/easysoft/unixODBC/lib:$LD_LIBRARY_PATH
# ldd /opt/mariadb/lib/plugin/ha_connect.so | grep odbc
        libodbc.so.1 => /usr/local/easysoft/unixODBC/lib/libodbc.so.1
        (0x00007f2a06ce8000)
# /etc/init.d/mariadb start

Przykład:Połącz MariaDB w systemie Linux z Microsoft Access

Aparat pamięci masowej CONNECT umożliwia tworzenie tabeli CONNECT w MariaDB. Typ tabeli CONNECT określa sposób uzyskiwania dostępu do danych zewnętrznych. Do łączenia się z programem Access używamy sterownika ODBC, więc prawidłowym typem tabeli jest „ODBC”. Stworzyliśmy źródło danych ODBC, które łączy się z bazą danych Northwind i to są dane, do których będziemy uzyskiwać dostęp z MariaDB. Źródło danych nazywa się „Northwind” i musimy je uwzględnić w naszej definicji tabeli CONNECT:

$ /opt/mariadb/bin/mysql --socket=/opt/mariadb-data/mariadb.sock
MariaDB [(none)]> CREATE DATABASE MDB;
MariaDB [MDB]> USE MDB;
MariaDB [MDB]> INSTALL SONAME 'ha_connect';
MariaDB [MDB]> CREATE TABLE Customers engine=connect
                                      table_type=ODBC
                                      Connection='DSN=ACCESS_NORTHWIND;';
MariaDB [MDB]> SELECT CompanyName FROM Customers WHERE CustomerID = 'VICTE';
+----------------------+
| CompanyName          |
+----------------------+
| Victuailles en stock |
+----------------------+
1 row in set (0.02 sec)

Mechanizm przechowywania może automatycznie wykryć strukturę tabeli docelowej, a tym samym określić nazwy kolumn/typy danych w CREATE TABLE oświadczenie nie jest obowiązkowe.

Przykład:Połącz MariaDB w systemie Linux z Microsoft SQL Server

W tym przykładzie użyto tabname możliwość obejścia różnicy między MariaDB i SQL Server. Chcemy pobrać niektóre dane AdventureWorks przechowywane w Person.Address stół. Jednak MariaDB nie ma pomysłu na schemat tabeli, dlatego zmienimy nazwę tabeli na „PersonAddress” w MariaDB. Rzeczywistą nazwę tabeli podajemy za pomocą tabname , dzięki czemu sterownik ODBC SQL Server może przekazać nazwę tabeli rozpoznawaną przez SQL Server.

$ /opt/mariadb/bin/mysql --socket=/opt/mariadb-data/mariadb.sock
MariaDB [(none)]> CREATE DATABASE MSSQL;
MariaDB [(none)]> USE MSSQL;
MariaDB [MSSQL]> INSTALL SONAME 'ha_connect';
MariaDB [MSSQL]> CREATE TABLE PersonAddress engine=connect
                                            table_type=ODBC
                                            tabname='Person.Address'
                                            Connection='DSN=SQLSERVER_ADVENTUREWORKS;';
ERROR 1105 (HY000): Unsupported SQL type -11
MariaDB [MSSQL]> \! grep -- -11 /usr/local/easysoft/unixODBC/include/sqlext.h 
#define SQL_GUID                                (-11)
MariaDB [MSSQL]> CREATE TABLE PersonAddress (  AddressID int,  
                                                AddressLine1 varchar(60),  
                                                AddressLine2 varchar(60),
                                                City varchar(30),
                                                StateProvinceID int,
                                                PostalCode varchar(15),
                                                rowguid varchar(64),
                                                ModifiedDate datetime )
                                 engine=connect
                                 table_type=ODBC 
                                 tabname='Person.Address'
                                 Connection='DSN=SQLSERVER_SAMPLE;';
MariaDB [MSSQL]> SELECT City FROM PersonAddress WHERE AddressID = 32521;
+-----------+
| City      |
+-----------+
| Sammamish |
+-----------+

Ponieważ nie ma bezpośredniego odpowiednika dla typu danych SQL Server uniqueidentifier . Musimy zmapować ten typ w kolumnie rowguid do MariaDB VARCHAR rodzaj. Mimo że jest to jedyna problematyczna kolumna, musimy uwzględnić pozostałe w CREATE TABLE oświadczenie. W przeciwnym razie tabela zawierałaby tylko kolumnę rowguid.

Przykład:połącz MariaDB w systemie Windows z Salesforce

Używamy 64-bitowej wersji MariaDB i dlatego musieliśmy skonfigurować 64-bitowe źródło danych ODBC dla naszego docelowego wystąpienia Salesforce. (W przeciwnym razie nasza próba utworzenia tabeli typu CONNECT zakończy się niepowodzeniem z błędem „Niezgodność architektury”.) W tym celu użyliśmy 64-bitowej wersji Administratora źródeł danych ODBC firmy Microsoft, który znajduje się w Panelu sterowania. (W niektórych wersjach systemu Windows w Panelu sterowania znajduje się zarówno 32-bitowa, jak i 64-bitowa wersja Administratora źródeł danych ODBC, jednak w takim przypadku ich architektura jest wyraźnie oznaczona.)

Nasza docelowa „tabela” Salesforce zawiera NVARCHAR kolumny, które aparat pamięci masowej CONNECT obsługuje jako VARCHAR s. CREATE TABLE instrukcja generuje ostrzeżenia w tym celu. („Identyfikator kolumny to szerokie znaki” itd.)

CREATE DATABASE SALESFORCE;
USE SALESFORCE;
INSTALL SONAME 'ha_connect';
CREATE TABLE Product2 engine=connect
                      table_type=ODBC
                      Connection='DSN=64-bit Salesforce System ODBC DSN;';
SELECT Description FROM Product2

ODBC Driver for SQL Server, SQL Azure
ODBC Driver for Salesforce.com, Force.com, Database.com

Inne opcje łączności MySQL/MariaDB

Nazwa Opis
Łącznik MariaDB/ODBC Jest to sterownik ODBC dla MariaDB i jest dostępny zarówno dla platform Windows, jak i Linux. Umożliwia aplikacjom zgodnym z ODBC, takim jak Microsoft Excel, dostęp do danych przechowywanych w MariaDB.
Łącznik MySQL/ODBC Jest to sterownik ODBC dla MySQL i jest dostępny dla platform Windows, Linux, UNIX i OS X. Umożliwia aplikacjom zgodnym z ODBC, takim jak Microsoft Excel, dostęp do danych przechowywanych w MySQL.
Sfederowany silnik MySQL Jest to podobne do silnika przechowywania CONNECT, jednak obsługuje tylko dane przechowywane w zewnętrznych bazach danych MySQL.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 sposoby na posortowanie kolumny w MariaDB

  2. 8 sposobów na dodawanie dni do daty w MariaDB

  3. ClusterControl:wprowadzenie do nowego monitora zapytań

  4. Jak działa funkcja LOWER() w MariaDB

  5. Różnica między SYSDATE() i NOW() w MariaDB