Wprowadzenie
Bazy danych Oracle Cloud korzystają z zabezpieczeń portfela Oracle. Portfel Oracle zawiera certyfikaty kryptograficzne i klucze używane do nawiązywania bezpiecznej, zaszyfrowanej komunikacji między klientem Oracle a docelowym serwerem bazy danych Oracle. Integrację danych Pentaho można skonfigurować tak, aby korzystała z portfela Oracle w celu ustanowienia bezpiecznej komunikacji między PDI a serwerem w chmurze Oracle.
Ten samouczek zakłada, że masz skonfigurowane następujące komponenty:
- Konto Oracle Cloud z co najmniej jedną uruchomioną instancją bazy danych Oracle. Ten samouczek (link tutaj) zawiera instrukcje konfiguracji konta Oracle Cloud i Autonomous Database. Łączność między klientem, takim jak Oracle SQL Developer, a autonomiczną bazą danych, powinna zostać przetestowana i potwierdzona.
- Pentaho Data Integration w wersji 7.x lub 8.x zainstalowane w systemie Windows lub MacOSX. Instrukcje dotyczące instalacji najnowszej wersji PDI można znaleźć tutaj (Windows) i tutaj (MacOSX). Zwróć szczególną uwagę na używaną wersję Java Development Kit. Od stycznia 2019 r. Integracja danych Pentaho 8.3 działająca na Java Development Kit 1.8 została przetestowana i okazała się działać poprawnie.
W tym samouczku założono, że PDI zostało zainstalowane w C:\Pentaho\data-integration w systemie Windows lub /Users/
W następnej sekcji znajdują się instrukcje dotyczące pobierania i instalowania sterowników Oracle JDBC.
Instalacja sterowników Oracle JDBC w integracji danych Pentaho
Pentaho Data Integration wymaga zainstalowania sterowników Oracle JDBC w celu połączenia z dowolną bazą danych Oracle. Oprócz głównego pliku ojdbc8.jar wymaganych jest również kilka dodatkowych plików, które są częścią pełnej dystrybucji JDBC. Upewnij się, że pobierasz i instalujesz tylko składniki sterownika JDBC skompilowane dla JDK 1.8. Będą one miały „8” w nazwie pliku.
Aby rozpocząć, odwiedź stronę pobierania sterowników Oracle 12c JDBC pod adresem:
https://www.oracle.com/database/technologies/jdbc-ucp -122-downloads.html
Przewiń w dół do sekcji, w której znajdują się poszczególne pliki do pobrania.
Pliki do pobrania to:
ojdbc8.jaroraclepki.jarosdt_cert.jarosdt_core.jar
Każdy z tych plików należy pobrać i skopiować do folderu Pentaho data-integration\lib.
Jak zawsze, pamiętaj o ponownym uruchomieniu integracji danych Pentaho, aby nowe pliki jar zostały rozpoznane.
Na następnej stronie Oracle Wallet zostanie pobrany z serwera w chmurze.
Pobieranie portfela Oracle z Oracle Cloud
Uwaga:Jeśli używasz Safari na MacOSX, zmień preferencje w Safari, aby zapobiec automatycznemu otwieraniu „bezpiecznych” plików po pobraniu. Safari> Preferencje> Odznacz pole wyboru Otwórz „bezpieczne” pliki po pobraniu.
Zaloguj się do konsoli Oracle Cloud i przejdź do strony Autonomous Database. Kliknij link pod Nazwą wyświetlaną dla jednej z Twoich baz danych.
Gdy pojawi się ekran Szczegóły, kliknij Połączenie DB przycisk.
Gdy pojawi się okno połączenia z bazą danych, kliknij Pobierz portfel przycisk.
Podaj pasujące hasło do Portfela, a następnie kliknij niebieski Pobierz przycisk.
Zauważ, że nazwa pliku portfela składa się z pracy „Portfel” z dodanymi do niej nazwami autonomicznych baz danych. W tym przykładzie plik to:Wallet_ATPDatabase1.zip.
Zapisz plik Portfela w bezpiecznym miejscu.
Wróć do ekranu Szczegóły bazy danych, kliknij Połączenie z bazą danych ponownie. Przewiń w dół, aż zobaczysz sekcję zatytułowaną Ciągły połączenia . Zauważ, że ciąg połączenia odpowiada określonemu typowi połączenia zapisanemu w pliku tnsnames.ora, który znajduje się w portfelu. Zanotuj te nazwy, takie jak ta z _HIGH na końcu. Nazwy te powinny składać się z nazwy Twojej bazy danych (bez spacji), po której następuje _HIGH, _MEDIUM lub _LOW. W tym przykładzie nazwa bazy danych to „ATP Database1”, więc pierwszy ciąg połączenia ma nazwę:ATPDatabase1_HIGH. Zapisz lub skopiuj i zapisz wpis pod Nazwa TNS dla Twojej bazy danych.
Kroki integracji Oracle Wallet z PDI znajdują się na następnej stronie.
Integracja Oracle Cloud Wallet z integracją danych Pentaho
Należy wykonać szereg kroków, aby kierować integracją danych Pentaho w celu korzystania z portfela Oracle.
Upewnij się, że zainstalowano Pentaho Data Integration z niezbędnymi sterownikami Oracle JDBC. W tym momencie PDI nie powinno być uruchomione.
Edytuj niestandardowe.właściwości plik
Znajdź plik custom.properties znajdujący się w folderze data-integration\system\karaf\etc\.
Użyj Notatnika (Windows) lub TextEdit (MacOSX), aby edytować plik custom.properties i dodaj następujący wiersz na dole pliku (jeśli jeszcze go tam nie ma).
org.apache.karaf.security.providers =oracle.security.pki.OraclePKIProvider
Zapisz plik custom.properties i wyjdź z edytora tekstu.
Edytuj plik Spoon.bat lub spoon.sh pliki
W przypadku instalacji systemu Windows edytuj plik Spoon.bat (użyj Notatnika lub innego edytora tekstu). Przewiń w dół do około linii 112 tuż przed sekcja z REM ** Uruchom… **
Dodaj następujące linie (podświetlone na żółto).
REM ********************************************* ********************REM ** Ustaw opcje uruchomieniowe java **REM ** Zmień 2048m na wyższe wartości w przypadku braku pamięci **REM ** lub ustaw zmienną środowiskową PENTAHO_DI_JAVA_OPTIONS **REM ****************************************** ************************ jeśli "%PENTAHO_DI_JAVA_OPTIONS%"=="" ustaw PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize =256m"set OPT=%OPT%%PENTAHO_DI_JAVA_OPTIONS%"-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" "-Djava.library.path=%LIBSPATH%" "-DKETTLE_HOME=%KETTLE_HOME%" "- DKETTLE_REPOSITORY=%KETTLE_REPOSITORY%" "-DKETTLE_USER=%KETTLE_USER%" "-DKETTLE_PASSWORD=%KETTLE_PASSWORD%" "-DKETTLE_PLUGIN_PACKAGES=%KETTLE_PLUGIN_PACKAGES%" "=_SKETTLE_PASSWORD=%KETTLE_PASSWORD%" "-DKETTLE_PLUGIN_PACKAGES=%KETTLE_PLUGIN_PACKAGES%" "=_SKETTLE_PASSWORD%" "-_SKETTLE_%" do obsługi bezpiecznych połączeń Oracle Wallet@REM Zakłada się, że plik cwallet.sso znajduje się w zestawie folderów data-integration\Wallet\ OPT="-Djavax.net.ssl.trustStore=%KETTLE_DIR%\Wallet\cwallet.sso" %OPT%set OPT="-Djavax.net.ssl.trustStoreType=SSO" %OPT%set OPT="-Djavax. net.ssl.keyStore=%KETTLE_DIR%\Wallet\cwallet.sso" %OPT%set OPT="-Djavax.net.ssl.keyStoreType=SSO" %OPT%set OPT="-Doracle.net.tns_admin=%KETTLE_DIR %\Wallet" %OPT%REM ***************REM ** Uruchom... **REM ***************
Zapisz plik spoon.bat i wyjdź z edytora tekstu.
W systemie MacOSX kliknij prawym przyciskiem myszy plik spoon.sh, zaznacz Otwórz za pomocą a następnie wybierz aplikację TextEdit .
Przewiń plik w dół, aż znajdziesz sekcję z „# opcjonalną linią do dołączenia debugera”. Kod, który ma zostać dodany, zostanie umieszczony w miejscu tuż przed ten wiersz.
Dodaj następujące wiersze (podświetlone na niebiesko na poniższym obrazku):
# Opcje Java do obsługi bezpiecznych połączeń Oracle Wallet# Zakłada się, że plik cwallet.sso znajduje się w data-integration/Wallet/ folderOPT="-Djavax.net.ssl.trustStore=${BASEDIR}/Wallet/cwallet.sso ${OPT}"OPT="-Djavax.net.ssl.trustStoreType=SSO ${OPT}"OPT="-Djavax.net.ssl.keyStore=${BASEDIR}/Wallet/cwallet.sso ${OPT}" OPT="-Djavax.net.ssl.keyStoreType=SSO ${OPT}"OPT="-Doracle.net.tns_admin=${BASEDIR}/Portfel ${OPT}"
Zapisz plik spoon.sh i wyjdź z aplikacji TextEdit.
Skopiuj pliki portfela do PDI
Upewnij się, że masz portfel Oracle pobrany z chmury (patrz poprzednia strona). W tym przykładzie baza danych nosi nazwę „ATPDatabase1”, a nazwa pliku portfela to:Wallet_ATPDatabase1.zip
Rozpakuj plik portfela i zlokalizuj w nim następujące cztery pliki:
cwallet.ssosqnet.oratnsnames.oratrustore.jks
Pliki te są pokazane również na poniższym rysunku:
Zaznacz te cztery pliki i skopiuj je.
Przejdź do folderu Pentaho Data Integration. Utwórz podfolder o nazwie „Portfel”. Wklej cztery pliki Oracle Wallet do tego folderu Portfela, jak pokazano poniżej (Windows):
W systemie MacOSX skopiuj cztery pliki portfela i wklej je do folderu /Users/
Uruchomienie PDI
Po umieszczeniu tych plików można normalnie uruchomić Pentaho Data Integration, uruchamiając plik Spoon.bat (lub spoon.sh dla użytkowników MacOSX).
Aby uruchomić Pentaho Data Integration w systemie Windows, kliknij dwukrotnie łyżkę. program bat.
Aby uruchomić Pentaho Data Integration na MacOSX, kliknij prawym przyciskiem myszy program spoon.sh, wybierz Otwórz za pomocą> Inne... Zmień filtr na „Wszystkie aplikacje”, a następnie w Narzędzia folder wybierz Terminal . Następnie kliknij Otwórz przycisk.
W następnej sekcji omówiono konfigurację nowego połączenia z bazą danych z poziomu Pentaho Data Integration.
Tworzenie nowego połączenia z bazą danych w integracji danych Pentaho
Aby korzystać z Oracle Wallet w Pentaho Data Integration, należy skonfigurować połączenie typu „Generic Database”. Poniższe kroki opisują ten proces.
Podczas konfigurowania kroku danych wejściowych tabeli, danych wyjściowych tabeli lub wyszukiwania/aktualizacji wymiarów utwórz nowe połączenie z bazą danych.
- Nadaj nowemu połączeniu nazwę (wymyślasz).
- Zmień typ połączenia do ogólnej bazy danych.
- Zmień dialekt do Oracle.
- Wypełnij Niestandardowy adres URL połączenia w następujący sposób:
jdbc:oracle:thin:@atpdatabase1_high
Gdzie atpdatabase1_high to nazwa jednego z Twoich połączeń z bazą danych Oracle Cloud (omówione na poprzedniej stronie). Będzie się składał z nazwy Twojej bazy danych z dołączoną do niej _high. Na przykład, jeśli nazwa bazy danych to „DB 123456789”, możliwym adresem URL połączenia będzie:
jdbc:oracle:thin:@DB123456789_high - Wypełnij Nazwę niestandardowej klasy sterownika w następujący sposób:
oracle.jdbc.driver.OracleDriver - Wpisz swoją nazwę użytkownika i hasło do bazy danych Oracle Cloud.
- Kliknij Test przycisk, aby przetestować połączenie.
Wynik testu powinien wyglądać na pomyślny, jak pokazano poniżej.
Kliknij OK przycisk, aby zamknąć test połączenia. Kliknij OK przycisk, aby zapisać to połączenie z bazą danych.
Niektóre typowe błędy połączenia znajdują się na następnej stronie.
Częste błędy i problemy z połączeniem z portfelem Oracle
Istnieje kilka typowych błędów i problemów, które mogą wystąpić podczas korzystania z PDI i Oracle Cloud. Błędy i rozwiązania / obejścia są przedstawione poniżej.
Błąd IO:nie można rozwiązać identyfikatora połączenia
Jeśli pojawi się błąd, taki jak „Błąd IO:nie można rozwiązać identyfikatora połączenia”, oznacza to, że nie można znaleźć pliku tnsnames.ora lub podana nazwa TNS nie pasuje do jednego z połączeń. Na przykład:
Błąd podczas łączenia z bazą danych [OracleCloud] :org.pentaho.di.core.exception.KettleDatabaseException:Wystąpił błąd podczas próby połączenia z bazą danych Błąd podczas łączenia z bazą danych:(przy użyciu klasy oracle.jdbc.driver.OracleDriver) Błąd IO:nie można rozwiązać identyfikatora połączenia „atpdatabase1_hig”
Dokładnie sprawdź plik tnsnames.ora i upewnij się, że używasz nazwy połączenia, która pojawia się w pliku tnsnames.ora. W systemie operacyjnym Windows użyj programu NotePad, aby otworzyć plik tnsnames.ora. W systemie MacOSX użyj programu TextEdit, aby otworzyć plik tnsnames.ora.
ORA-01017:nieprawidłowa nazwa użytkownika/hasło; odmowa logowania
Jeśli pojawi się błąd, taki jak „ORA-01017:nieprawidłowa nazwa użytkownika/hasło; Odmowa logowania” oznacza, że podana nazwa użytkownika lub hasło Oracle są nieprawidłowe. Na przykład:
Błąd podczas łączenia z bazą danych [OracleCloud] :org.pentaho.di.core.exception.KettleDatabaseException:Wystąpił błąd podczas próby połączenia z bazą danych Błąd podczas łączenia z bazą danych:(przy użyciu klasy oracle.jdbc.driver.OracleDriver)ORA-01017 :nieprawidłowa nazwa użytkownika / hasło; odmowa logowania
Sprawdź nazwę użytkownika i hasło w instancji bazy danych Oracle, aby upewnić się, że są poprawne. Pamiętaj, że nazwa użytkownika i hasło do bazy danych Oracle będą inne niż na Twoim koncie na stronie internetowej Oracle Cloud. Zazwyczaj do testowania używamy użytkownika ADMIN, a hasło to zostało ustawione podczas tworzenia Autonomous Database lub Autonomous Data Warehouse. Na przykład na stronie 4 tego samouczka.
Upewnij się, że hasło nie zawiera żadnego z następujących znaków:@ / \ ?
Najłatwiejsze do testowania może być użycie użytkownika ADMIN ze stosunkowo „zwykłym” hasłem, takim jak Pw123Pw123Pw123 .
Pamiętaj, aby zmienić hasło na bardziej bezpieczne po zakończeniu testowania.
Nie można znaleźć klasy sterownika „oracle.jdbc.driver.OracleDriver”
Jeśli pojawi się błąd, taki jak:„Nie można znaleźć klasy sterownika „oracle.jdbc.driver.OracleDriver”, upewnij się, że sterowniki JDBC zostały skopiowane do folderu data-integration\lib, a PDI zostało ponownie uruchomione. Upewnij się również, że nie umieszczasz spacji przed „o” w oracle.jdbc.driver... Na przykład:
Błąd podczas łączenia z bazą danych [OracleCloud] :org.pentaho.di.core.exception.KettleDatabaseException:Wystąpił błąd podczas próby połączenia z klasą sterownika bazy danych „oracle.jdbc.driver.OracleDriver”, upewnij się, że Zainstalowany jest sterownik „Ogólna baza danych” (plik jar). oracle.jdbc.driver.OracleDriver
ORA-12529 TNS:Żądanie połączenia odrzucone na podstawie aktualnych reguł filtrowania
Otrzymasz błąd, taki jak:„ORA-12529 Żądanie TNS:Connect odrzucone na podstawie aktualnych reguł filtrowania ” podczas łączenia się z bazą danych może się zdarzyć, że ustawienia zabezpieczeń sieci dla autonomicznej bazy danych uniemożliwiają połączenia. Pełny komunikat o błędzie może wyglądać następująco:
Błąd podczas łączenia z bazą danych [OracleCloud] :org.pentaho.di.core.exception.KettleDatabaseException:Wystąpił błąd podczas próby połączenia z bazą danychBłąd podczas łączenia z bazą danych:(przy użyciu klasy oracle.jdbc.driver.OracleDriver)Odmówił połączenie z następującym błędem:ORA-12529, TNS:żądanie połączenia odrzucone na podstawie aktualnych reguł filtrowania
Zaloguj się do interfejsu zarządzania Oracle Cloud i przejrzyj ekran Informacje o autonomicznej bazie danych dla swojej bazy danych. Sprawdź Typ dostępu i Lista kontroli dostępu aby upewnić się, że zdalne sesje logowania są dozwolone z Twojej lokalizacji. Może być konieczne ponowne uruchomienie bazy danych
Błąd IO:odebrano alert krytyczny:handshake_failure, wygaśnięcie połączenia 188 ms., wygaśnięcie uwierzytelnienia 0 ms.
Ten błąd może wystąpić w przypadku niezgodności między wersją Java Development Kit a serwerem Oracle. Może to być związane z bibliotekami kodu używanymi do zabezpieczenia kanału komunikacyjnego między klientem a serwerem (np. TLS). Upewnij się, że masz najnowszą wersję pakietu Oracle Java Development Kit 8. Na przykład:
Błąd podczas łączenia z bazą danych [oracle_cloud_atp] :org.pentaho.di.core.exception.KettleDatabaseException:Wystąpił błąd podczas próby połączenia z bazą danych Błąd podczas łączenia z bazą danych:(przy użyciu klasy oracle.jdbc.driver.OracleDriver) Błąd IO:Otrzymano alert krytyczny:handshake_failure, wygaśnięcie połączenia 188 ms., wygaśnięcie uwierzytelnienia 0 ms.org.pentaho.di.core.exception.KettleDatabaseException:Wystąpił błąd podczas próby połączenia z bazą danych Błąd podczas łączenia z bazą danych:(przy użyciu klasy oracle.jdbc.driver Błąd .OracleDriver)IO:Odebrano alert krytyczny:handshake_failure, wygaśnięcie połączenia 188 ms., wygaśnięcie uwierzytelnienia 0 ms.
Błąd IO:przychodzące zamknięte przed otrzymaniem close_notify od partnera
Jeśli podczas uruchamiania transformacji pojawi się błąd, taki jak:„Błąd IO:Przychodzące zamknięte przed otrzymaniem peera close_notify”, może to oznaczać, że masz zbyt wiele otwartych połączeń bazy danych z serwerem Oracle. Może tak być w przypadku korzystania z usług „Zawsze bezpłatny” w Oracle Cloud. usługi te mają ograniczoną liczbę jednoczesnych połączeń.
Zamknij wszystkie dodatkowe otwarte karty transformacji. Wyjdź z Spoon i uruchom go ponownie. Otwórz tylko transformację, nad którą pracowałeś, i spróbuj uruchomić ją ponownie. Na przykład w dzienniku PDI:
2020/01/19 15:44:43 - Promotion Dim Lookup.0 - BŁĄD (wersja 8.2.0.0-342, kompilacja 8.2.0.0-342 od 2018-11-14 10.30.55 przez buildguy) :Błąd wystąpił, przetwarzanie zostanie zatrzymane:2020/01/19 15:44:43 - Promotion Dim Lookup.0 - Wystąpił błąd podczas próby połączenia z bazą danych2020/01/19 15:44:43 - Promotion Dim Lookup.0 - IO Błąd:ruch przychodzący zamknięty przed otrzymaniem komunikatu close_notify od peera:możliwy atak obcinający?, Upływ uwierzytelniania 0 ms.
W niektórych rzadkich przypadkach może to być również spowodowane niezgodnością w wersji używanego JDK. Wprowadzono pewne niezgodności związane z obsługą PKI w Java Development Kit w wersji 1.8. Zainstalowanie zaktualizowanego pakietu JDK 1.8 wydaje się rozwiązać te problemy.
Jeśli problem będzie się powtarzał (i łączysz się z serwerem nieprodukcyjnym), spróbuj ponownie uruchomić autonomiczną bazę danych Oracle, ponieważ może to zwolnić wszelkie utrzymujące się połączenia.
ORA-00018:przekroczono maksymalną liczbę sesji
ORA-00018:przekroczono maksymalną liczbę sesji błąd może się pojawić, jeśli w Twojej bazie danych zabraknie dostępnych połączeń. Może to stanowić problem podczas pracy z warstwą „Zawsze bezpłatna” bazy danych Oracle Autonomous. Błąd może wyglądać następująco:
org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta@75df4b1d - BŁĄD (wersja 8.2.0.0-342, kompilacja 8.2.0.0-342 od 2018-11-14 10.30.55 przez buildguy) :Błąd bazy danych wystąpił:org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta@75df4b1d - Wystąpił błąd podczas próby połączenia z bazą danychorg.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta@75df4b1d -org.pentaho.di.trans. steps.dimensionlookup.DimensionLookupMeta@75df4b1d - Błąd podczas łączenia z bazą danych:(przy użyciu klasy oracle.jdbc.driver.OracleDriver)org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta@75df4b1d przekroczona - maksymalna liczba sesji ORA-00018:/pre>Zamknij wszystkie dodatkowe otwarte karty transformacji. Wyjdź z Spoon i uruchom go ponownie. Otwórz tylko transformację, nad którą pracowałeś, i spróbuj uruchomić ją ponownie.
Jeśli problem będzie się powtarzał (i łączysz się z serwerem nieprodukcyjnym), spróbuj ponownie uruchomić autonomiczną bazę danych Oracle, ponieważ może to uwolnić wszelkie utrzymujące się problemy połączenia.Nieprawidłowe typy danych podczas tworzenia tabel
PDI powinno używać odpowiednich typów danych Oracle (INTEGER, NUMBER, DATE, VARCHAR) podczas tworzenia tabel za pomocą kroków wyszukiwania/aktualizacji wymiarów lub danych wyjściowych tabeli. Jeśli widzisz użycie typów danych, takich jak BIGSERIAL lub innych typów danych innych niż Oracle, spróbuj wykonać następujące czynności:
- Wróć do kroku źródłowego, takiego jak krok czytania CSV, i usuń zaznaczenie pola „Leniwa konwersja”
- Powróć do kroku Wyszukiwanie/aktualizacja wymiarów lub Dane wyjściowe tabeli i Edytuj połączenie z bazą danych. Upewnij się, że dialekt jest ustawiony na Oracle .
Kliknij przycisk TEST, aby upewnić się, że poświadczenia nadal działają. Zamknij okno dialogowe Połączenie z bazą danych. - Kliknij przycisk SQL i sprawdź proponowaną instrukcję SQL CREATE TABLE, aby upewnić się, że typy danych są teraz poprawne.
- Jeśli typy danych nadal nie są poprawne, spróbuj ponownie uruchomić PDI i ponownie wykonaj powyższe kroki.
Powolna reakcja podczas korzystania z Eksploratora bazy danych PDI z Oracle Cloud
Możesz zauważyć, że integracja danych Pentaho zajmie dużo czasu (i może się zawiesić) podczas korzystania z Narzędzia> Baza danych> Eksploruj funkcja do eksploracji bazy danych Oracle Cloud. Głównym powodem jest to, że większość instancji Oracle Cloud ma dużą liczbę wbudowanych schematów baz danych, które Eksplorator bazy danych PDI próbuje odczytać.
Zamiast korzystać z Eksploratora baz danych PDI, użyj narzędzia Oracle SQL Developer, aby zbadać swój schemat, usunąć stare tabele i dane zapytań, aby zobaczyć, jak działają przekształcenia. Oracle Cloud ma wbudowaną aplikację internetową SQL Developer, która jest łatwa w użyciu do tego celu.
Nieprawidłowa pamięć podręczna z krokiem wyszukiwania/aktualizacji wymiarów spowodowana przez Błąd serializacji wiersza do tablicy bajtów
Podczas aktualizowania danych za pomocą kroku wyszukiwania/aktualizacji wymiarów możesz napotkać błąd związany z kluczem technicznym (klucz zastępczy) i Błąd serializacji wiersza do tablicy bajtów . Jednym z przykładów tego błędu może być:
Dimension lookup/update.0 — BŁĄD (wersja 8.2.0.0-342, kompilacja 8.2.0.0-342 z 14.11.2018 r. 10.30.55 przez buildguy) :Nieoczekiwany errorDimension lookup/update.0 — BŁĄD (wersja 8.2 .0.0-342, kompilacja 8.2.0.0-342 od 2018-11-14 10.30.55 przez buildguy) :java.lang.RuntimeException:Błąd serializacji wiersza do bajtu arrayDimension lookup/update.0 - na org.pentaho.di.core .row.RowMeta.extractData(RowMeta.java:1134)Wyszukiwanie wymiarów/update.0 - w org.pentaho.di.trans.steps.dimensionlookup.DimensionLookup.addToCache(DimensionLookup.java:1522)Wyszukiwanie wymiarów -/aktualizacja.0. w org.pentaho.di.trans.steps.dimensionlookup.DimensionLookup.lookupValues(DimensionLookup.java:754)Wyszukiwanie wymiarów/aktualizacja.0 - w org.pentaho.di.trans.steps.dimensionlookup.DimensionLookup.processRow(DimensionLookup.processRowD) :232)Wyszukiwanie wymiarów/update.0 - na org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)Wyszukiwanie wymiarów/update.0 - na java.lang.Thread.run(Wątek.java :748)Wyszukiwanie/aktualizacja wymiarów.0 — Spowodowane przez:java.l ang.RuntimeException:CUSTOMER_DIM_ID BigNumber(38) :Wystąpił błąd typu danych:typ danych obiektu java.lang.Long [320] nie odpowiada meta wartości [BigNumber(38)]
Ten błąd może być spowodowany nieprawidłową wartością klucza technicznego w pamięci podręcznej lub brakiem dostępu do pamięci podręcznej unikalnych wartości klucza technicznego w kroku Wyszukiwanie/aktualizacja wymiarów.
Aby rozwiązać ten problem, spróbuj ponownie przeprowadzić transformację za pomocą opcji Włącz pamięć podręczną opcja została wyłączona w kroku Wyszukiwanie/aktualizacja wymiarów. Możesz także wyczyścić pamięć podręczną, klikając SQL i kliknij przycisk Wyczyść pamięć podręczną przycisk.