MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

MariaDB &Data Eksternal

MariaDB adalah garpu MySQL, yang awalnya berasal dari rilis 5.1 MySQL. Tidak seperti MySQL, MariaDB dapat menggunakan data eksternal yang disimpan dalam database non-MariaDB seolah-olah data tersebut disimpan dalam tabel MariaDB standar. Data tidak dimuat ke MariaDB. Untuk bekerja dengan data eksternal, MariaDB menggunakan mesin penyimpanan CONNECT. Mesin penyimpanan ini diperkenalkan di MariaDB 10.0.

Mesin penyimpanan CONNECT disertakan dengan database versi Windows dan Linux, meskipun tidak dimuat secara default. Mesin penyimpanan CONNECT dapat menggunakan ODBC untuk bekerja dengan data eksternal. ODBC adalah antarmuka database-netral yang memungkinkan aplikasi yang sesuai dengan ODBC seperti mesin penyimpanan CONNECT untuk bekerja dengan database apa pun yang tersedia driver ODBC. ODBC menerjemahkan kueri data aplikasi menjadi sesuatu yang dipahami oleh basis data target.

ODBC memiliki dua komponen:driver ODBC dan ODBC Driver Manager. Driver ODBC adalah khusus database, yaitu driver ODBC Microsoft Access hanya akan berbicara dengan database Microsoft Access. ODBC Driver Manager adalah antarmuka antara mesin penyimpanan CONNECT dan driver ODBC. Driver Manager bertanggung jawab untuk memuat driver ODBC, mengisolasi aplikasi (yaitu mesin penyimpanan) dari komponen yang berinteraksi dengan database. Arsitektur ini memungkinkan MariaDB terhubung ke database yang berbeda tanpa perubahan apa pun pada MariaDB.

Di Windows, Microsoft menyediakan ODBC Driver Manager dengan sistem operasi, dan ini adalah salah satu yang digunakan mesin penyimpanan CONNECT pada platform ini.

Di Linux, mesin penyimpanan CONNECT menggunakan Pengelola Driver unixODBC. Driver Manager ini biasanya tersedia dengan sistem operasi, meskipun mungkin tidak diinstal secara default. Semua driver ODBC Easysoft untuk platform non-Windows menyertakan Pengelola Driver unixODBC.

Singkatnya, komponen yang diperlukan untuk menghubungkan MariaDB ke data eksternal dengan menggunakan ODBC adalah:

Untuk mencoba mesin penyimpanan CONNECT, kami menggunakan driver SQL Server dan Access ODBC kami dengan MariaDB di Linux dan driver ODBC Salesforce kami dengan MariaDB di Windows.

Catatan Jika Anda menggunakan MariaDB versi 64-bit, Anda harus menggunakan driver ODBC 64-bit. Jika Anda menggunakan MariaDB versi 32-bit, Anda harus menggunakan driver ODBC 32-bit.

Memuat Connect Storage Engine

Terlepas dari apakah Anda menjalankan MariaDB di Linux atau Windows, perintah yang sama diperlukan untuk memuat mesin penyimpanan CONNECT. Di shell klien MySQL, ketik:

INSTALL SONAME 'ha_connect';

Dengan asumsi Anda telah menginstal driver ODBC yang sesuai untuk database target Anda dan telah mengonfigurasi sumber data ODBC, Anda sekarang dapat mengintegrasikan data eksternal dengan MariaDB.

Di Linux, kami menggunakan salinan Pengelola Pengandar unixODBC yang disertakan dengan pengandar kami, jadi kami harus mengatur lingkungan sehingga pustaka Pengelola Pengandar tersebut akan dimuat.

# /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

Contoh:Hubungkan MariaDB di Linux ke Microsoft Access

Mesin penyimpanan CONNECT memungkinkan Anda membuat tabel CONNECT di MariaDB. Jenis tabel CONNECT menentukan bagaimana data eksternal akan diakses. Kami menggunakan driver ODBC untuk terhubung ke Access dan jenis tabel yang benar untuk digunakan adalah "ODBC". Kami telah membuat sumber data ODBC yang terhubung ke database Northwind, dan itulah data yang akan kami akses dari MariaDB. Sumber data disebut "Northwind" dan kita perlu memasukkannya ke dalam definisi tabel 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)

Mesin penyimpanan dapat secara otomatis mendeteksi struktur tabel target dan dengan demikian menentukan nama kolom/tipe data di CREATE TABLE pernyataan tidak wajib.

Contoh:Hubungkan MariaDB di Linux ke Microsoft SQL Server

Contoh ini menggunakan tabname opsi untuk mengatasi perbedaan antara MariaDB dan SQL Server. Kami ingin mengambil beberapa data AdventureWorks yang disimpan di Person.Address meja. Namun, MariaDB tidak memiliki gagasan tentang skema tabel, jadi kami akan mengubah nama tabel menjadi "PersonAddress" di MariaDB. Kami menentukan nama tabel yang sebenarnya dengan tabname , sehingga driver SQL Server ODBC dapat meneruskan nama tabel yang dikenali 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 |
+-----------+

Karena tidak ada padanan langsung untuk tipe data SQL Server uniqueidentifier . Kita harus memetakan tipe ini di kolom rowguid ke VARCHAR MariaDB Tipe. Meskipun ini adalah satu-satunya kolom yang bermasalah, kita perlu menyertakan kolom lainnya di CREATE TABLE penyataan. Jika tidak, tabel hanya akan berisi kolom baris baris.

Contoh:Hubungkan MariaDB di Windows ke Salesforce

Kami menggunakan MariaDB versi 64-bit dan oleh karena itu kami perlu mengonfigurasi sumber data ODBC 64-bit untuk instans Salesforce target kami. (Jika tidak, upaya kami untuk membuat tipe tabel CONNECT akan gagal dengan kesalahan "Arsitektur ketidakcocokan".) Untuk melakukannya, kami menggunakan versi 64-bit dari Administrator Sumber Data Microsoft ODBC, yang terletak di Panel Kontrol. (Pada beberapa versi Windows, terdapat Administrator Sumber Data ODBC versi 32-bit dan 64-bit yang terletak di Panel Kontrol, namun arsitekturnya diberi label dengan jelas jika demikian.)

"Tabel" Salesforce target kami berisi NVARCHAR kolom, yang ditangani oleh mesin penyimpanan CONNECT sebagai VARCHAR s. CREATE TABLE pernyataan menghasilkan peringatan untuk efek ini. ("ID Kolom adalah karakter lebar", dan seterusnya.)

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

Opsi Konektivitas MySQL/MariaDB Lainnya

Nama Deskripsi Konektor MariaDB/ODBC Ini adalah driver ODBC untuk MariaDB dan tersedia untuk platform Windows dan Linux. Ini memungkinkan aplikasi yang sesuai dengan ODBC seperti Microsoft Excel untuk mengakses data yang disimpan di MariaDB. Konektor MySQL/ODBC Ini adalah driver ODBC untuk MySQL dan tersedia untuk platform Windows, Linux, UNIX dan OS X. Ini memungkinkan aplikasi yang sesuai dengan ODBC seperti Microsoft Excel untuk mengakses data yang disimpan di MySQL. Mesin Federasi MySQL Ini mirip dengan mesin penyimpanan CONNECT, namun hanya mendukung data yang disimpan di database MySQL eksternal.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB CURRENT_ROLE() Dijelaskan

  2. MariaDB JSON_EXISTS() Dijelaskan

  3. Menyebarkan Replikasi MariaDB untuk Ketersediaan Tinggi

  4. Bagaimana DATE_SUB() Bekerja di MariaDB

  5. Cara Mendeteksi jika suatu Nilai Berisi Setidaknya Satu Digit Numerik di MariaDB