Konfigurowanie i rejestrowanie modułu Data Gateway dla raportowania

Aby włączyć zdalne połączenia dla funkcji Classic, takich jak analizy i pulpity informacyjne, należy wykonać przedstawione poniżej opcjonalne czynności.

Jeśli wdrażanie odbywa się tylko dla wizualizacji danych (na przykład Oracle Analytics Cloud Professional Edition), nie trzeba tych czynności wykonywać.
Przed rozpoczęciem należy wykonać czynności konfiguracyjne, opisane pod hasłem Konfigurowanie modułu Data Gateway dla wizualizacji danych.
  1. Z komputera, w którym został zainstalowany agent Data Gateway, uzyskać nazwę komputera i numer portu.
    Wdrożenie serwerowe:
    1. Uruchomić polecenie /<folder instalacji Data Gateway>/domain/bin/status.sh.
    2. Z uzyskanego wyniku zanotować nazwę komputera zawartą w adresie URL, wyświetlanym pod wpisem Data Gateway Status, oraz zanotować wartość Data Gateway Jetty HTTP Port.
    Wdrożenie indywidualne:
    1. Otworzyć plik: %localappdata%\Temp\DataGateway\ports.properties.
    2. Zanotować nazwę komputera i numer portu.
  2. Uruchomić agent Data Gateway.
  3. Zamierzając modelować dane przed rozpoczęciem zdalnego łączenia się z danymi, do edytowania modelu semantycznego użyć narzędzia Semantic Modeler lub - jeśli baza danych nie jest obsługiwana przez Semantic Modeler - narzędzia Model Administration Tool.
  4. Jeśli jest używane narzędzie Model Administration Tool, załadować metadane źródła danych Java.
    1. W narzędziu Model Administration Tool kliknąć menu Plik, a następnie kolejno Otwórz i W chmurze, po czym określić w oknie dialogowym "Otwórz w chmurze" szczegóły modelu semantycznego.
    2. Z menu Plik wybrać opcję Załaduj źródła danych Java.
    3. W oknie dialogowym "Połączenie z serwerem źródła danych Java":
      • Wpisać w polu Nazwa hosta nazwę komputera zanotowaną podczas wykonywania punktu 1. Użyć w pełni kwalifikowanej nazwy hosta. Na przykład, jeśli w punkcie 1 została zanotowana nazwa machine, to w pełni kwalifikowana nazwa może mieć postać machine.us.example.com.
      • Wpisać w polu Porta numer portu zanotowany podczas wykonywania punktu 1. Na przykład: 51811.
      • W polach Nazwa użytkownika i Hasło wpisać dummy lub inny dowolny tekst (uwierzytelnienia te nie są weryfikowane, ponieważ jest to wywołanie publiczne, mające na celu wykrycie możliwości rozgłaszanych przez Data Gateway).
  5. Jeśli jest używane narzędzie Model Administration Tool, skonfigurować fizyczne połączenie z bazą danych:
    1. W warstwie fizycznej utworzyć lokalnie (nie zdalne) połączenie ze swoim źródłem danych, używając standardowego wywołania interfejsu właściwego dla źródła danych, po czym odpowiednio zamodelować dane.
    2. Chcąc uczynić połączenie z modelem semantycznym połączeniem zdalnym i opublikować je w chmurze, edytować właśnie utworzone połączenie.
    3. Na karcie "Ogólne" wybrać w polu Interfejs wywołania opcję JDBC (sterownik bezpośredni), a w polu Opis połączenia wprowadzić opis połączenia JDBC i uwierzytelnienia dla połączenia z modelem semantycznym. Lista obsługiwanych opisów połączenia i klas sterowników JDBC jest dostępna poniżej, w sekcji JDBC i JNDI - szablony oraz przykłady.
    4. Na karcie "Różne" wprowadzić w polu Użycie SQL przez HTTP wartość "true", a w polu Wersja RDC - wartość 2. Ponadto określić klasę sterownika JDBC.
    5. Opublikować model semantyczny w chmurze.
Można teraz przetestować swoje wdrożenie, łącząc się zdalnie z lokalną bazą danych.

JDBC i JNDI - szablony oraz przykłady

Konfigurując zdalne połączenia dla analiz i pulpitów informacyjnych, trzeba niekiedy określić opisów połączenia JDBC i klasy sterowników oraz szczegóły połączenia JNDI i szczegóły kontekstu.

Wzorce opisów połączenia JDBC i klasy sterowników
Oracle:
   Driver Class: oracle.jdbc.OracleDriver
   jdbc string: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=[\"host-name\"])(PORT=[\"port\"]))(CONNECT_DATA=(SERVICE_NAME=[\"service-name\"])))              
Amazon Redshift:
   Driver Class: com.oracle.jdbc.redshift.RedshiftDriver 
   JDBC String: jdbc:oracle:redshift://[\"host-name\"]:[\"port\"];DatabaseName=[\"service-name\"];EncryptionMethod=SSL;ValidateServerCertificate=false
Apache Hive
    Driver Class: com.oracle.bi.jdbc.hive.HiveDriver
    JDBC String: jdbc:oracle:hive://[\"host-name\"]:[\"port\"];EncryptionMethod=SSL;ValidateServerCertificate=false
DB2
   Driver Class: com.oracle.bi.jdbc.db2.DB2Driver
   JDBC String: jdbc:oracle:db2://[\"host-name\"]:[\"port\"];DatabaseName=[\"service-name\"]
Impala
   Driver Class: com.oracle.bi.jdbc.impala.ImpalaDriver
   JDBC String: jdbc:oracle:impala://[\"host-name\"]:[\"port\"];EncryptionMethod=SSL;ValidateServerCertificate=false
MySQL
   Driver Class: com.mysql.cj.jdbc.Driver
   JDBC String: jdbc:mysql://[\"host-name\"]:[\"port\"]"[/database][?properties]
SQL Server
   Driver Class: com.oracle.bi.jdbc.sqlserver.SQLServerDriver
   JDBC String: jdbc:oracle:sqlserver://[\"host-name\"]:[\"port\"];DatabaseName=[\"service-name\"]
Teradata
   Driver Class: com.teradata.jdbc.TeraDriver
   JDBC String: jdbc:teradata://[\"host-name\"]/DBS_PORT=[\"port\"]  
Szablony JNDI dla sterowników natywnych
Oracle:
      <Resource               
      name="jdbc/myoracle"               
      global="jdbc/myoracle"               
      auth="Container"               
      type="javax.sql.DataSource"               
      driverClassName="oracle.jdbc.OracleDriver"                
      url="jdbc:oracle:thin:@localhost:1521:orcl"               
      username="my_user"               
      password="my_password"               
      maxActive="15"               
      maxIdle="1"                
      maxWait="-1"
      />

      <Resource               
      name="jdbc/oracleolap"               
      global="jdbc/oracleolap"               
      auth="Container"               
      type="javax.sql.DataSource"               
      driverClassName="oracle.jdbc.OracleDriver"                
      url="jdbc:oracle:thin:@localhost:1522:orcl112"               
      username="my_user"               
      password="my_password"          
      maxActive="15"               
      maxIdle="1"                
      maxWait="-1"
      />

      <Resource               
      name="jdbc/oraclenorthwind"               
      global="jdbc/oraclenorthwind"               
      auth="Container"               
      type="javax.sql.DataSource"               
      driverClassName="oracle.jdbc.OracleDriver"                
      url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=example.com)(PORT=1234))(CONNECT_DATA=(SERVICE_NAME=MATSDB.EXMAPLE.COM)))"               
      username="my_user"               
      password="my_password"          
      maxActive="15"               
      maxIdle="1"                
      maxWait="-1"
      />

      DB2
      <Resource               
      name="jdbc/db2northdb"               
      global="jdbc/db2northdb"               
      auth="Container"               
      type="javax.sql.DataSource"               
      driverClassName="com.ibm.db2.jcc.DB2Driver"                
      url="jdbc:db2://example.com:58263/NORTHDB"               
      username="my_user"               
      password="my_password"              
      maxActive="15"               
      maxIdle="1"                 
      maxWait="-1" />

      SQLServer: 
      <Resource               
      name="jdbc/sqlservernorthwind"               
      global="jdbc/sqlservernorthwind"               
      auth="Container"               
      type="javax.sql.DataSource"               
      driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"               
      url="jdbc:sqlserver://example.com:61045;DatabaseName=Northwind"               
      username="my_user"               
      password="my_password"           
      maxActive="15"               
      maxIdle="1"                
      maxWait="-1" /> 

      Teradata:
      <Resource               
      name="jdbc/teranorthwind"               
      global="jdbc/teranorthwind"               
      auth="Container"               
      type="javax.sql.DataSource"               
      driverClassName="com.teradata.jdbc.TeraDriver"                
      url="jdbc:teradata://99.999.99.999"               
      username="my_user"               
      password="my_password"           
      maxActive="15"               
      maxIdle="1"                
      maxWait="-1" />

      Mysql_community
      <Resource        
      name="jdbc/CEmysql"        
      auth="Container"        
      type="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"        
      factory="com.mysql.jdbc.jdbc2.optional.MysqlDataSourceFactory"        
      username="my_user"               
      password="my_password"    
      serverName="example.com"        
      portNumber="3306"        
      databaseName="my_database" />
Szablony JNDI dla sterowników DD
The JNDI for DD Drivers.
SQLServer:
<Resource
name="jdbc/DDsqlserver"
auth="Container"
type="com.oracle.bi.jdbcx.sqlserver.SQLServerDataSource"
factory="com.oracle.bi.jdbcx.sqlserver.SQLServerDataSourceFactory"
user="my_user"
password="my_password"
serverName="example.com\MSSQLSERVER16"
portNumber="61045"
databaseName="my_database" />

DB2:
<Resource
name="jdbc/DDdb2"
auth="Container"
type="com.oracle.bi.jdbcx.db2.DB2DataSource"
factory="com.oracle.bi.jdbcx.db2.DB2DataSourceFactory"
user="my_user"
password="my_password"
serverName="example.com"
portNumber="58263"
databaseName="my_database"
/> 

Impala:
<Resource
name="jdbc/DDimpala"
auth="Container"
type="com.oracle.bi.jdbcx.impala.ImpalaDataSource"
factory="com.oracle.bi.jdbcx.impala.ImpalaDataSourceFactory"
user="my_user"
password="my_password"
serverName="example.com"
portNumber="21050"
databaseName="my_database"
/>

Spark:
<Resource
name="jdbc/DDspark"
auth="Container"
type="com.oracle.bi.jdbcx.sparksql.SparkSQLDataSource"
factory="com.oracle.bi.jdbcx.sparksql.SparkSQLDataSourceFactory"
user="my_user"
password="my_password"
serverName="example.com"
portNumber="10000"
databaseName="my_database"
/>

HIVE:
<Resource
name="jdbc/DDhive"
auth="Container"
type="com.oracle.bi.jdbcx.hive.HiveDataSource"
factory="com.oracle.bi.jdbcx.hive.HiveDataSourceFactory"
user="my_user"
password="my_password"
serverName="example.com"
portNumber="10000"
databaseName="my_database"
/> 

MySQL:
<Resource
name="jdbc/DDmysql"
auth="Container"
type="com.oracle.bi.jdbcx.mysql.MySQLDataSource"
factory="com.oracle.bi.jdbcx.mysql.MySQLDataSourceFactory"
user="my_user"
password="my_password"
serverName="example.com"
portNumber="3306"
databaseName="my_database"
/>

MYSQL:
<Resource
name="jdbc/DDmysql"
auth="Container"
type="com.oracle.bi.jdbcx.mysql.MySQLDataSource"
factory="com.oracle.bi.jdbcx.mysql.MySQLDataSourceFactory"
user="my_user"
password="my_password"
serverName="example.com"
portNumber="3306"
databaseName="my_database" 
/>
     

Dodawanie sterownika JDBC do modułu Data Gateway

Aby można było modelować dane z lokalnej (on-premises) bazy danych, trzeba do instalacji modułu Data Gateway dodać sterownik JDBC.

Przed rozpoczęciem należy się upewnić, że moduł Data Gateway i narzędzie Model Administration Tool są zainstalowane na tym samym działającym w środowisku lokalnym komputerze z systemem Windows.
  1. Pobrać sterownik JDBC, który ma zostać wdrożony.
    Na przykład, aby modelować dane z bazy danych Snowflake, pobrać najnowszy sterownik Snowflake JDBC (na przykład w pliku snowflake-jdbc-3.9.0.jar).
  2. Skopiować pobrany plik JAR JDBC do folderu instalacji modułu Data Gateway.
    • Dla wdrożenia serwerowego skopiować plik JAR do katalogu <folder instalacji Data Gateway>/domain/jettybase/thirdpartyDrivers.
    • Dla wdrożenia indywidualnego w systemie Windows, skopiować plik JAR do folderu <ścieżka_ekstrakcji_Data_Gateway>\thirdpartyDrivers.
    • Dla wdrożenia indywidualnego w systemie MacOS, skopiować plik JAR do folderu <Aplikacja->Pokaż zawartość pakietu>Zasoby->app.nw->thirdpartyDrivers.
  3. Zrestartować moduł Data Gateway. Zob. Obsługa modułu Data Gateway.

Formaty DNS do określania źródeł danych

W Oracle Analytics można modelować swoje lokalne dane z użyciem wielu typów baz danych. Oracle Analytics obsługuje bezpośredni dostęp do niektórych lokalnych źródeł danych przez model semantyczny. Tworząc za pomocą narzędzia Model Administration Tool połączenie z bazą danych, należy w polu Nazwa źródła danych (na karcie "Ogólne" w oknie dialogowym "Pula połączeń") użyć formatu DNS odpowiedniego dla typu bazy danych, z którą jest nawiązywane połączenie.

Amazon Redshift:
       DRIVER=Oracle 7.1 Amazon Redshift Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
      SSL: DRIVER=Oracle 7.1 Amazon Redshift Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"];EM=6;CPV=TLSv1.2,TLSv1.1,TLSv1, SSLv3, SSLv2;VSC=0
Apache Drill:
       DRIVER=MapR Drill ODBC Driver;Host=["host-name"];Port=["port"];CastAnyToVarchar=true;ExcludedSchemas=sys,INFORMATION_SCHEMA;AuthenticationType=Basic               Authentication;ConnectionType=Direct
Aster:
       DRIVER=Aster ODBC Driver;SERVER=["host-name"];PORT=["port"];DATABASE=["service-name"]
DB2:
      DRIVER=Oracle 7.1 DB2 Wire Protocol;IpAddress=["host-name"];PORT=["port"];DB=["service-name"]
      SSL:  DRIVER=Oracle 7.1 DB2 Wire Protocol;IpAddress=["host-name"];PORT=["port"];DB=["service-name"];EM=1;VSC=0
Greenplum:
       DRIVER=Oracle 7.1 Greenplum Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
Hive:
       DRIVER=Oracle 8.0 Apache Hive Wire Protocol;HOST=["host-name"];PORT=["port"]
      SSL: DRIVER=Oracle 8.0 Apache Hive Wire Protocol;HOST=["host-name"];PORT=["port"];EM=1;VSC=0
Impala:
       DRIVER=Oracle 7.1 Impala Wire Protocol;HOST=["host-name"];PORT=["port"]
     SSL:  DRIVER=Oracle 7.1 Impala Wire Protocol;HOST=["host-name"];PORT=["port"];EM=1;VSC=0
Informix:
       DRIVER=Oracle 7.1 Informix Wire Protocol;HOSTNAME=["host-name"];PORTNUMBER=["port"];DATABASE=["service-name"]
MongoDB:
       DRIVER=Oracle 8.0 MongoDB;HOST=["host-name"];PORT=["port"];DB=["service-name"]
MySQL:
      DRIVER=Oracle 7.1 MySQL Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
PostgresSql:
       DRIVER=Oracle 7.1 PostgreSQL Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
Spark:
      DRIVER=Oracle 8.0 Apache Spark SQL;HOST=["host-name"];PORT=["port"]
      SSL:  DRIVER=Oracle 8.0 Apache Spark SQL;HOST=["host-name"];PORT=["port"];EM=1;VSC=0
SQL Server:
     DRIVER=Oracle 7.1 SQL Server Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
     SSL:  DRIVER=Oracle 7.1 SQL Server Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"];EM=1;VSC=0;CryptoProtocolVersion=TLSv1.2,TLSv1.1,TLSv1,SSLv3,SSLv2
Sybase:
       DRIVER=Oracle 7.1 Sybase Wire Protocol;NA=["host-name"], ["port"];DB=["service-name"]
Teradata:
       DRIVER=Oracle 7.1 Teradata;DBCName=["host-name"];port_name=["port"]