SAP IQ (wcześniej znany jako SAP Sybase IQ lub Sybase IQ) to wysokowydajna relacyjna baza danych zaprojektowana specjalnie z myślą o hurtowniach danych. Ten wieloplatformowy produkt działa na kilku popularnych platformach Unix, Linux i Windows.
SAP IQ może integrować dane z różnych źródeł, nie tylko baz danych IQ, ale także innych baz danych z rodziny Adaptive Server, a także baz danych innych niż Sybase i plików płaskich.
Ten blog pokazuje, jak uzyskać dostęp do danych SQL Server z SAP IQ działającego na platformie Windows.
Kroki serwera SQL
- W programie SQL Server Management Studio utwórz przykładową tabelę, w której będą przechowywane dane pobierane z SAP IQ. Na przykład:
CREATE DATABASE mydb USE mydb CREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) ); INSERT INTO Persons VALUES(1,'Name', 'My', 'MyAddress', 'MyCity')
- Pobierz sterownik ODBC programu SQL Server dla swojej platformy Windows. (Wymagana rejestracja.)
- Zainstaluj i uzyskaj licencję na sterownik ODBC programu SQL Server na komputerze z systemem Windows, na którym zainstalowano SAP IQ.
Instrukcje dotyczące instalacji znajdują się w dokumentacji sterownika ODBC SQL Server.
- W Administratorze źródeł danych ODBC na komputerze SAP IQ skonfiguruj systemowe źródło danych ODBC, które łączy się z wystąpieniem programu SQL Server. W źródle danych określ bazę danych zawierającą dane, z którymi chcesz pracować w SAP IQ.
Źródło danych ODBC przechowuje szczegóły połączenia z docelową bazą danych (np. SQL Server) i sterownikiem ODBC, który jest wymagany do połączenia się z nią (np. sterownik ODBC SQL Server).
Źródła danych ODBC konfiguruje się w Administratorze ODBC, który jest dołączony do systemu Windows. Istnieją dwie wersje Administratora ODBC dołączone do systemu Windows, jedna jest 32-bitowa, a druga 64-bitowa. Ponieważ SAP IQ jest aplikacją 64-bitową, musisz użyć 64-bitowej wersji Administratora ODBC. Aby uruchomić 64-bitowego administratora ODBC, w oknie dialogowym Uruchom systemu Windows wpisz:
odbcad32.exe
Aby uzyskać instrukcje dotyczące konfigurowania źródeł danych, zapoznaj się z dokumentacją sterownika ODBC SQL Server.
- Skonfiguruj środowisko SAP IQ, ustawiając zmienne środowiskowe w
SAPIQDIR\SYBASE.bat
iSAPIQDIR\SYBASE.ENV
. - Dodaj katalog, w którym znajduje się start_iq, do ścieżki PATH, aby skrypt tworzenia przykładowej bazy danych mógł uruchomić to polecenie. Na przykład:
set PATH=C:\SAPIQ\IQ-16_1\Bin64;%PATH%
- Poinformuj SAO IQ, gdzie ma zapisywać pliki dziennika dla przykładowej bazy danych, określając lokalizację katalogu plików dziennika. Na przykład:
set IQ16LOGDIR = C:\Temp
- Utwórz przykładową bazę danych, uruchamiając
mkiqdemo.bat
. Musisz ustawić nazwę użytkownika bazy danych i hasło, dołączając-dba
i-pwd
argumenty. Na przykład:cd C:\ProgramData\SAPIQ\demo mkiqdemo.bat -dba myuser -pwd mypassword
- Uruchom serwer SAP IQ:
start_iq @iqdemo.cfg iqdemo.db
- Użyj
dbisql
, interaktywne narzędzie SQL SAP IQ, aby połączyć się z przykładową bazą danych. Na przykład:dbisql -nogui -c "UID=myuser;PWD=mypassword;DATABASE=iqdemo"
- Utwórz zdalny serwer, który używa utworzonego wcześniej źródła danych sterownika ODBC programu SQL Server do łączenia się z programem SQL Server.
Musisz określić swój login do systemu Windows lub SQL Server w parametrach połączenia serwera zdalnego. W przeciwnym razie SAP IQ przekazuje nazwę użytkownika i hasło przykładowej bazy danych do sterownika ODBC serwera SQL.
Na przykład:
CREATE SERVER easysoft CLASS 'ODBC' USING 'DSN=MYDSN;UID=mydomain\mywindowsuser;PWD=mywindowspassword'
- Utwórz lokalną tabelę SAP IQ, która umożliwi pracę ze zdalnymi danymi programu SQL Server. Użyj nazwy składającej się z czterech części, aby określić zdalną tabelę, np.:
remoteserver.database.schema.object
Dla przykładowej tabeli SQL Server, którą utworzyliśmy wcześniej,
CREATE EXISTING TABLE
oświadczenie będzie wyglądało następująco:CREATE EXISTING TABLE Persons( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255),City varchar(255)) AT 'easysoft.mydb.dbo.Persons'
- Sprawdź, czy możesz pobrać dane ze zdalnego serwera SQL Server.
select * from Persons;