Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Định cấu hình Tích hợp dữ liệu Pentaho để sử dụng Oracle Wallet cho Oracle Cloud

Giới thiệu

Cơ sở dữ liệu đám mây Oracle sử dụng bảo mật ví Oracle. Ví Oracle chứa các chứng chỉ và khóa mật mã được sử dụng để thiết lập liên lạc được mã hóa, an toàn giữa máy khách Oracle và máy chủ cơ sở dữ liệu Oracle mục tiêu. Tích hợp dữ liệu Pentaho có thể được định cấu hình để sử dụng Ví Oracle nhằm thiết lập liên lạc an toàn giữa PDI và máy chủ đám mây Oracle.

Hướng dẫn này giả định rằng bạn đã thiết lập các thành phần sau:

  • Một tài khoản Đám mây Oracle có ít nhất một phiên bản cơ sở dữ liệu Oracle đang chạy. Hướng dẫn này (liên kết tại đây) cung cấp các bước để thiết lập tài khoản Đám mây Oracle và Cơ sở dữ liệu tự động. Kết nối giữa một ứng dụng khách như Oracle SQL Developer và Cơ sở dữ liệu tự trị phải được kiểm tra và xác nhận.
  • Tích hợp dữ liệu Pentaho phiên bản 7.x hoặc 8.x được cài đặt trên Windows hoặc MacOSX. Bạn có thể xem hướng dẫn cài đặt phiên bản mới nhất của PDI tại đây (Windows) và tại đây (MacOSX). Đặc biệt chú ý đến phiên bản của Bộ công cụ phát triển Java được sử dụng. Kể từ tháng 1 năm 2019, Tích hợp dữ liệu Pentaho 8.3 chạy trên Bộ công cụ phát triển Java 1.8 đã được kiểm tra và nhận thấy hoạt động bình thường.

Hướng dẫn này giả định PDI đã được cài đặt trong C:\ Pentaho \ data-integration trên Windows hoặc / Users / / Pentaho / data-integration trên MacOSX.

Trong phần tiếp theo, hướng dẫn tải xuống và cài đặt Trình điều khiển JDBC của Oracle được cung cấp.

Cài đặt Trình điều khiển Oracle JDBC trong Tích hợp Dữ liệu Pentaho

Tích hợp dữ liệu Pentaho yêu cầu cài đặt Trình điều khiển JDBC của Oracle để kết nối với bất kỳ cơ sở dữ liệu Oracle nào. Ngoài tệp ojdbc8.jar chính, một số tệp bổ sung là một phần của bản phân phối JDBC đầy đủ cũng được yêu cầu. Hãy chắc chắn chỉ tải xuống và cài đặt các thành phần trình điều khiển JDBC được biên dịch cho JDK 1.8. Chúng sẽ có “8” trong tên tệp.
Để bắt đầu, hãy truy cập trang Tải xuống trình điều khiển Oracle 12c JDBC tại:
https://www.oracle.com/database/technologies/jdbc-ucp -122-download.html

Cuộn xuống phần chứa các bản tải xuống riêng lẻ.

Các tệp để tải xuống là:

 ojdbc8.jaroraclepki.jarosdt_cert.jarosdt_core.jar 

Mỗi tệp này phải được tải xuống và sao chép vào thư mục Pentaho data-integration \ lib.

Như mọi khi, hãy nhớ khởi động lại Tích hợp dữ liệu Pentaho để các tệp jar mới được nhận dạng.

Trên trang tiếp theo, ví Oracle sẽ được tải xuống từ máy chủ đám mây.

Tải xuống Ví Oracle từ Đám mây Oracle

Lưu ý:Nếu bạn đang sử dụng Safari trên MacOSX, hãy thay đổi các tùy chọn trong Safari để ngăn các tệp “an toàn” tự động mở sau khi tải xuống. Safari> Tùy chọn> Bỏ chọn hộp kiểm Mở tệp “an toàn” sau khi tải xuống.

Đăng nhập vào bảng điều khiển Đám mây Oracle của bạn và điều hướng đến trang Cơ sở dữ liệu tự trị. Nhấp vào liên kết bên dưới Tên hiển thị cho một trong các cơ sở dữ liệu của bạn.

Khi màn hình Chi tiết xuất hiện, hãy nhấp vào Kết nối DB nút.

Khi cửa sổ Kết nối cơ sở dữ liệu xuất hiện, nhấp vào Tải xuống ví nút.

Cung cấp mật khẩu phù hợp cho Wallet, sau đó nhấp vào nút Tải xuống màu xanh lam nút.

Lưu ý rằng tên tệp ví bao gồm tác phẩm “Ví” với tên của cơ sở dữ liệu tự quản được thêm vào nó. Đối với ví dụ này, tệp là:Wallet_ATPDatabase1.zip.
Đảm bảo lưu tệp Wallet của bạn ở một nơi an toàn, bảo mật.

Quay lại màn hình Chi tiết cơ sở dữ liệu xuất hiện, nhấp vào Kết nối DB một lần nữa. Cuộn xuống cho đến khi bạn thấy phần có tiêu đề Chuỗi kết nối . Lưu ý rằng một chuỗi kết nối tương ứng với một kiểu kết nối cụ thể được lưu trong tệp tnsnames.ora được bao gồm trong ví. Hãy ghi chú những tên này chẳng hạn như tên có _HIGH ở cuối. Những tên này phải bao gồm tên cơ sở dữ liệu của bạn (không có khoảng trắng) theo sau là _HIGH, _MEDIUM hoặc _LOW. Trong ví dụ này, tên của cơ sở dữ liệu là “ATP Database1” nên chuỗi kết nối đầu tiên được đặt tên là:ATPDatabase1_HIGH. Viết ra hoặc sao chép và lưu mục nhập dưới Tên TNS cho cơ sở dữ liệu của bạn.

Các bước để tích hợp Ví Oracle vào PDI được cung cấp trên trang tiếp theo.

Tích hợp Oracle Cloud Wallet vào Tích hợp dữ liệu Pentaho

Một số bước phải được thực hiện để hướng dẫn tích hợp dữ liệu Pentaho để sử dụng Oracle Wallet.

Đảm bảo rằng Tích hợp dữ liệu Pentaho được cài đặt với Trình điều khiển Oracle JDBC cần thiết. PDI không nên chạy vào thời điểm này.

Chỉnh sửa custom.properties tệp

Tìm tệp custom.properties được tìm thấy trong thư mục data-integration \ system \ karaf \ etc \.

Sử dụng Notepad (windows) hoặc TextEdit (MacOSX) để chỉnh sửa tệp custom.properties và thêm dòng sau vào cuối tệp (nếu chưa có).
org.apache.karaf.security.providers =oracle.security.pki.OraclePKIProvider

Lưu tệp custom.properties và thoát khỏi trình soạn thảo văn bản.

Chỉnh sửa Spoon.bat hoặc thìa.sh tệp

Đối với cài đặt Windows, hãy chỉnh sửa tệp Spoon.bat (Sử dụng Notepad hoặc trình soạn thảo Văn bản khác). Cuộn xuống khoảng dòng 112 ngay trước phần có REM ** Run… **

Thêm các dòng sau (được đánh dấu bằng màu vàng).

 REM ****************************************************** ******************** REM ** Đặt tùy chọn thời gian chạy java ** REM ** Thay đổi 2048m thành giá trị cao hơn trong trường hợp bạn hết bộ nhớ ** REM ** hoặc đặt biến môi trường PENTAHO_DI_JAVA_OPTIONS ** REM ****************************************** ************************ if "% PENTAHO_DI_JAVA_OPTIONS%" =="" set PENTAHO_DI_JAVA_OPTIONS ="- Xms1024m" "-Xmx2048m" "-XX:MaxPermSize =256 phút "đặt OPT =% OPT%% PENTAHO_DI_JAVA_OPTIONS%" -Dhttps.protocols =TLSv1, TLSv1.1, TLSv1.2 "" -Djava.library.path =% LIBSPATH% "" -DKETTLE_HOME =% KETTLE_HOME% "" - Dkettle_repository =%ketle_repository%"" -dkettle_user =%ketle_user%"" để hỗ trợ kết nối bảo mật Oracle Wallet @ REM Giả sử rằng tệp cwallet.sso nằm trong data-integration \ Wallet \ folderet 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 ** Chạy ... ** REM ***************  

Lưu tệp muỗng.bat và thoát khỏi trình soạn thảo văn bản.

Trên MacOSX, nhấp chuột phải vào tệp muỗng.sh, đánh dấu Mở bằng và sau đó chọn ứng dụng TextEdit .

Cuộn xuống trong tệp cho đến khi bạn tìm thấy phần có “# dòng tùy chọn để đính kèm trình gỡ lỗi”. Mã được thêm sẽ đi vào khoảng trống ngay trước dòng này.
Thêm các dòng sau (được tô màu xanh lam trong hình bên dưới):

 # Tùy chọn Java để hỗ trợ các kết nối bảo mật của Oracle Wallet # Giả sử rằng tệp cwallet.sso nằm trong 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} / Ví $ {OPT}" 

Lưu tệp muỗng.sh và thoát khỏi ứng dụng TextEdit.

Sao chép các tệp trên Wallet sang PDI

Đảm bảo rằng bạn đã tải xuống ví Oracle từ đám mây (xem trang trước). Đối với ví dụ này, cơ sở dữ liệu được đặt tên là “ATPDatabase1” và tên tệp ví là:Wallet_ATPDatabase1.zip
Giải nén tệp Wallet và tìm bốn tệp sau trong:

 cwallet.ssosqlnet.oratnsnames.oratrustore.jks 

Các tệp này cũng được hiển thị trong hình bên dưới:

Đánh dấu bốn tệp này và sao chép chúng.

Điều hướng đến thư mục Tích hợp Dữ liệu Pentaho. Tạo một thư mục con có tên là “Wallet”. Dán bốn tệp Oracle Wallet vào thư mục Wallet này như được hiển thị bên dưới (Windows):

Trên MacOSX, sao chép bốn tệp ví và dán chúng vào thư mục / Users / / Pentaho / data-integration / Wallet.

Chạy PDI

Khi các tệp đó đã sẵn sàng, bạn có thể bắt đầu Tích hợp dữ liệu Pentaho bình thường bằng cách chạy tệp Spoon.bat (hoặc thìa.sh cho người dùng MacOSX).
Để chạy Tích hợp dữ liệu Pentaho trên Windows, hãy nhấp đúp vào cái thìa. chương trình con dơi.

Để chạy Tích hợp dữ liệu Pentaho trên MacOSX, nhấp chuột phải vào chương trình muỗng.sh, chọn Mở bằng> Khác ... Thay đổi bộ lọc thành “Tất cả ứng dụng” và sau đó trong Tiện ích thư mục chọn Đầu cuối . Sau đó, nhấp vào nút Mở nút.

Phần tiếp theo sẽ thảo luận về việc thiết lập kết nối cơ sở dữ liệu mới từ bên trong Tích hợp dữ liệu Pentaho.

Tạo kết nối cơ sở dữ liệu mới trong tích hợp dữ liệu Pentaho

Để sử dụng Ví Oracle trong Tích hợp Dữ liệu Pentaho, kết nối loại “Cơ sở dữ liệu Chung” phải được định cấu hình. Các bước sau đây phác thảo quy trình này.

Khi thiết lập Bước nhập bảng, đầu ra bảng hoặc tra cứu / cập nhật thứ nguyên, hãy tạo kết nối cơ sở dữ liệu mới.

  • Đặt tên cho kết nối mới (do bạn tạo ra).
  • Thay đổi Loại kết nối vào cơ sở dữ liệu Chung.
  • Thay đổi Phương ngữ cho Oracle.
  • Điền vào URL kết nối tùy chỉnh như sau:
    jdbc:oracle:thin:@ atpdatabase1_high
    Trong đó atpdatabase1_high là tên của một trong những kết nối của bạn với cơ sở dữ liệu Đám mây Oracle (Đã xem xét ở trang trước). Nó sẽ được tạo thành từ tên cơ sở dữ liệu của bạn với _high được đính kèm với nó. Ví dụ:nếu tên cơ sở dữ liệu của bạn là “DB 123456789” thì URL kết nối khả thi sẽ là:
    jdbc:oracle:thin:@ DB123456789_high
  • Điền vào Tên lớp trình điều khiển tùy chỉnh như sau:
    oracle.jdbc.driver.OracleDriver
  • Điền tên người dùng và mật khẩu của bạn cho cơ sở dữ liệu Oracle Cloud của bạn.
  • Nhấp vào Kiểm tra để kiểm tra kết nối.

Kết quả kiểm tra sẽ thành công như được hiển thị bên dưới.

Nhấp vào nút OK để đóng kiểm tra Kết nối. Nhấp vào nút OK để lưu kết nối cơ sở dữ liệu này.

Một số lỗi kết nối phổ biến được cung cấp trên trang tiếp theo.

Các vấn đề và lỗi kết nối ví Oracle phổ biến

Có một số lỗi và sự cố phổ biến mà bạn có thể gặp phải khi sử dụng PDI và Oracle Cloud. Các lỗi và giải pháp / cách giải quyết được trình bày bên dưới.

Lỗi IO:không thể giải quyết mã định danh kết nối

Nếu bạn nhận được lỗi chẳng hạn như “Lỗi IO:không thể giải quyết mã định danh kết nối” thì không thể tìm thấy tệp tnsnames.ora của bạn hoặc Tên TNS được cung cấp không khớp với một trong các kết nối. Ví dụ:

 Lỗi kết nối với cơ sở dữ liệu [OracleCloud]:org.pentaho.di.core.exception.KettleDatabaseException:Đã xảy ra lỗi khi cố gắng kết nối với cơ sở dữ liệu Lỗi kết nối với cơ sở dữ liệu:(sử dụng lớp oracle.jdbc.driver.OracleDriver) Lỗi IO:không thể phân giải mã định danh kết nối "atpdatabase1_hig" 

Kiểm tra kỹ tệp tnsnames.ora của bạn và đảm bảo rằng bạn đang sử dụng tên kết nối xuất hiện trong tệp tnsnames.ora. Trên hệ điều hành Windows, sử dụng chương trình NotePad để mở tệp tnsnames.ora. Trên MacOSX, sử dụng chương trình TextEdit để mở tệp tnsnames.ora.

ORA-01017:tên người dùng / mật khẩu không hợp lệ; đăng nhập bị từ chối

Nếu bạn nhận được lỗi như “ORA-01017:tên người dùng / mật khẩu không hợp lệ; đăng nhập bị từ chối ”có nghĩa là tên người dùng hoặc mật khẩu Oracle cung cấp không hợp lệ. Ví dụ:

 Lỗi kết nối với cơ sở dữ liệu [OracleCloud]:org.pentaho.di.core.exception.KettleDatabaseException:Đã xảy ra lỗi khi cố gắng kết nối với cơ sở dữ liệu Lỗi kết nối với cơ sở dữ liệu:(sử dụng lớp oracle.jdbc.driver.OracleDriver) ORA-01017 :tên người dùng / mật khẩu không hợp lệ; đăng nhập bị từ chối 

Kiểm tra tên người dùng và mật khẩu trên phiên bản cơ sở dữ liệu Oracle để đảm bảo rằng nó chính xác. Lưu ý rằng tên người dùng và mật khẩu cơ sở dữ liệu Oracle sẽ khác với tài khoản trang web Đám mây Oracle của bạn. Thông thường để kiểm tra, chúng tôi sử dụng người dùng ADMIN và mật khẩu này được đặt khi Cơ sở dữ liệu tự trị hoặc Kho dữ liệu tự trị được tạo. Ví dụ trên Trang 4 của hướng dẫn này.
Đảm bảo mật khẩu không chứa bất kỳ ký tự nào sau đây: @ / \?

Có thể dễ dàng nhất để thử nghiệm khi sử dụng người dùng ADMIN với mật khẩu tương đối “đơn giản” như Pw123Pw123Pw123 .
Hãy chắc chắn thay đổi mật khẩu thành một thứ gì đó an toàn hơn sau khi kiểm tra xong.

Không tìm thấy lớp trình điều khiển 'oracle.jdbc.driver.OracleDriver'

Nếu bạn gặp lỗi như:“Không thể tìm thấy lớp trình điều khiển‘ oracle.jdbc.driver.OracleDriver ’”, hãy đảm bảo rằng Trình điều khiển JDBC đã được sao chép vào thư mục data-integration \ lib và PDI đã được khởi động lại. Ngoài ra, hãy đảm bảo không đặt bất kỳ khoảng trắng nào trước ‘o’ trong oracle.jdbc.driver ... Ví dụ:

 Lỗi kết nối với cơ sở dữ liệu [OracleCloud]:org.pentaho.di.core.exception.KettleDatabaseException:Đã xảy ra lỗi khi cố gắng kết nối với lớp databaseDriver 'oracle.jdbc.driver.OracleDriver' không thể tìm thấy, hãy đảm bảo rằng Trình điều khiển 'cơ sở dữ liệu chung' (tệp jar) được cài đặt. oracle.jdbc.driver.OracleDriver 

ORA-12529 TNS:Yêu cầu kết nối bị từ chối dựa trên các quy tắc lọc hiện tại

Trong số bạn nhận được lỗi như:“ ORA-12529 TNS:Yêu cầu kết nối bị từ chối dựa trên các quy tắc lọc hiện tại ”Khi kết nối với cơ sở dữ liệu, có thể xảy ra trường hợp Cài đặt bảo mật mạng của bạn cho cơ sở dữ liệu tự quản đang ngăn kết nối. Thông báo lỗi hoàn chỉnh có thể xuất hiện như sau:

 Lỗi kết nối với cơ sở dữ liệu [OracleCloud]:org.pentaho.di.core.exception.KettleDatabaseException:Đã xảy ra lỗi khi cố gắng kết nối với cơ sở dữ liệu Lỗi kết nối với cơ sở dữ liệu:(sử dụng lớp oracle.jdbc.driver.OracleDriver) Người nghe đã từ chối kết nối với lỗi sau:ORA-12529, TNS:yêu cầu kết nối bị từ chối dựa trên các quy tắc lọc hiện tại 

Đăng nhập vào giao diện quản lý Đám mây Oracle và xem lại màn hình Thông tin cơ sở dữ liệu tự trị cho cơ sở dữ liệu của bạn. Kiểm tra Loại truy cập Danh sách Kiểm soát Truy cập để đảm bảo các phiên đăng nhập từ xa được phép từ vị trí của bạn. Bạn có thể cần khởi động lại cơ sở dữ liệu

Lỗi IO:Đã nhận được cảnh báo nghiêm trọng:handshake_failure, kết nối mất hiệu lực 188 ms., xác thực mất hiệu lực 0 ms.

Lỗi này có thể xảy ra khi có sự kết hợp sai giữa phiên bản của Bộ công cụ phát triển Java và máy chủ Oracle. Nó có thể liên quan đến các thư viện mã được sử dụng để bảo mật kênh liên lạc giữa máy khách và máy chủ (ví dụ:TLS). Đảm bảo rằng bạn có bản phát hành mới nhất của Oracle Java Development Kit 8. Ví dụ:

 Lỗi kết nối với cơ sở dữ liệu [oracle_cloud_atp]:org.pentaho.di.core.exception.KettleDatabaseException:Đã xảy ra lỗi khi cố gắng kết nối với cơ sở dữ liệu Lỗi kết nối với cơ sở dữ liệu:(sử dụng lớp oracle.jdbc.driver.OracleDriver) Lỗi IO:Đã nhận được cảnh báo nghiêm trọng:handshake_failure, connect lapse 188 ms., Authentication lapse 0 ms.org.pentaho.di.core.exception.KettleDatabaseException:Đã xảy ra lỗi khi cố gắng kết nối với cơ sở dữ liệu Lỗi kết nối với cơ sở dữ liệu:(using class oracle.jdbc.driver .OracleDriver) Lỗi IO:Đã nhận được cảnh báo nghiêm trọng:handshake_failure, kết nối mất hiệu lực 188 ms., Xác thực mất hiệu lực 0 ms. 

IO Error:Inbound đã đóng trước khi nhận được close_notify của ngang hàng

Nếu bạn gặp lỗi như:“Lỗi IO:Inbound đã đóng trước khi nhận peer’s close_notify” khi chạy chuyển đổi, có thể là trường hợp bạn có quá nhiều kết nối cơ sở dữ liệu đang mở tới máy chủ Oracle. Trường hợp này có thể xảy ra nếu bạn đang sử dụng các dịch vụ “Luôn miễn phí” trên Đám mây Oracle. các dịch vụ này có một số lượng hạn chế các kết nối đồng thời.

Đóng bất kỳ tab chuyển đổi bổ sung nào bạn đã mở. Thoát khỏi Spoon và khởi động lại nó. Chỉ mở chuyển đổi mà bạn đang thực hiện và thử chạy lại. Ví dụ trong nhật ký PDI:

 2020/01/19 15:44:43 - Promotion Dim Lookup.0 - LỖI (phiên bản 8.2.0.0-342, bản dựng 8.2.0.0-342 từ 2018-11-14 10.30.55 bởi buildguy):Lỗi đã xảy ra, quá trình xử lý sẽ bị dừng:2020/01/19 15:44:43 - Promotion Dim Lookup.0 - Đã xảy ra lỗi khi cố gắng kết nối với cơ sở dữ liệu2020 / 01/19 15:44:43 - Promotion Dim Lookup.0 - IO Lỗi:Inbound đã đóng trước khi nhận được close_notify của ngang hàng:có thể có cuộc tấn công cắt bớt ?, Xác thực mất hiệu lực 0 mili giây. 

Trong một số trường hợp hiếm hoi, điều này cũng có thể được gây ra bởi sự không phù hợp trong bản sửa đổi của JDK đang được sử dụng. Có một số điểm không tương thích được giới thiệu với sự hỗ trợ PKI trong Bộ công cụ phát triển Java phiên bản 1.8. Cài đặt JDK 1.8 được cập nhật dường như giải quyết được những vấn đề này.

Nếu sự cố vẫn tiếp diễn (và bạn đang kết nối với máy chủ không sản xuất), hãy thử khởi động lại cơ sở dữ liệu tự trị của Oracle vì điều này có thể giải phóng mọi kết nối còn tồn đọng.

ORA-00018:vượt quá số phiên tối đa

ORA-00018:vượt quá số phiên tối đa lỗi có thể xuất hiện nếu cơ sở dữ liệu của bạn hết các kết nối có sẵn. Đây có thể là một vấn đề khi làm việc với tầng “Luôn miễn phí” của cơ sở dữ liệu Oracle Autonomous. Lỗi có thể xuất hiện như sau:

 org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta@75df4b1d - ERROR (phiên bản 8.2.0.0-342, bản dựng 8.2.0.0-342 từ 2018-11-14 10.30.55 bởi buildguy):Lỗi cơ sở dữ liệu đã xảy ra:org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta@75df4b1d - Đã xảy ra lỗi khi cố gắng kết nối với cơ sở dữ liệuorg.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta@75df4b1d -org.pentaho.di.trans. step.dimensionlookup.DimensionLookupMeta@75df4b1d - Lỗi kết nối với cơ sở dữ liệu:(sử dụng class oracle.jdbc.driver.OracleDriver) org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta@75df4b1d - ORA-00018:vượt quá số phiên tối đa 

Đóng bất kỳ tab chuyển đổi bổ sung nào bạn đã mở. Thoát khỏi Spoon và khởi động lại nó. Chỉ mở quá trình chuyển đổi mà bạn đang thực hiện và thử chạy lại.
Nếu sự cố vẫn tiếp diễn (và bạn đang kết nối với máy chủ không sản xuất), hãy thử khởi động lại cơ sở dữ liệu tự trị của Oracle vì điều này có thể giải phóng bất kỳ kết nối.

Kiểu dữ liệu không chính xác khi tạo bảng

PDI nên sử dụng các kiểu dữ liệu Oracle thích hợp (INTEGER, NUMBER, DATE, VARCHAR) khi tạo bảng thông qua các bước Tra cứu / Cập nhật Thứ nguyên hoặc Đầu ra Bảng. Nếu bạn thấy việc sử dụng các kiểu dữ liệu như BIGSERIAL hoặc các kiểu dữ liệu không phải Oracle khác, hãy thử các cách sau:

  • Quay lại bước nguồn của bạn, chẳng hạn như bước đọc CSV và bỏ chọn hộp "Chuyển đổi lười biếng"
  • Quay lại bước Tra cứu / Cập nhật Thứ nguyên hoặc Đầu ra Bảng của bạn và Chỉnh sửa Kết nối Cơ sở dữ liệu. Đảm bảo Phương ngữ được đặt thành Oracle .
    Nhấp vào nút KIỂM TRA để đảm bảo thông tin đăng nhập vẫn hoạt động. Đóng hộp thoại Kết nối cơ sở dữ liệu.
  • Nhấp vào nút SQL và kiểm tra câu lệnh SQL CREATE TABLE được đề xuất để đảm bảo các kiểu dữ liệu hiện là chính xác.
  • Nếu loại dữ liệu vẫn không chính xác, hãy thử khởi động lại PDI và thực hiện lại các bước trên.

Phản hồi chậm khi sử dụng Trình khám phá cơ sở dữ liệu PDI với Đám mây Oracle

Bạn có thể nhận thấy Tích hợp dữ liệu Pentaho sẽ mất nhiều thời gian (và có thể bị lỗi) khi sử dụng Công cụ> Cơ sở dữ liệu> Khám phá tính năng khám phá cơ sở dữ liệu Đám mây Oracle. Lý do chính là hầu hết các phiên bản Đám mây Oracle đều có một số lượng lớn các lược đồ cơ sở dữ liệu tích hợp sẵn mà Trình khám phá cơ sở dữ liệu PDI cố gắng đọc.

Thay vì sử dụng PDI’s Database Explorer, hãy sử dụng công cụ Oracle’s SQL Developer để khám phá lược đồ của bạn, xóa các bảng cũ và truy vấn dữ liệu để xem các chuyển đổi đang hoạt động như thế nào. Oracle Cloud có một ứng dụng web SQL Developer được tích hợp sẵn rất dễ sử dụng cho mục đích này.

Bộ nhớ đệm không hợp lệ với Bước Tra cứu / Cập nhật Thứ nguyên gây ra bởi Lỗi tuần tự hóa hàng thành mảng byte

Trong khi cập nhật dữ liệu bằng bước Tra cứu / Cập nhật thứ nguyên, bạn có thể gặp phải lỗi liên quan đến khóa kỹ thuật (khóa thay thế) và Lỗi tuần tự hóa hàng thành mảng byte . Một ví dụ về lỗi này sẽ là:

 Tra cứu thứ nguyên / cập nhật.0 - LỖI (phiên bản 8.2.0.0-342, bản dựng 8.2.0.0-342 từ 2018-11-14 10.30.55 bởi buildguy):Lỗi không mong muốn Tra cứu thứ nguyên / cập nhật.0 - LỖI (phiên bản 8.2 .0.0-342, xây dựng 8.2.0.0-342 từ 2018-11-14 10.30.55 bởi buildguy):java.lang.RuntimeException:Lỗi tuần tự hóa hàng thành mảng byteDimension lookup / update.0 - at org.pentaho.di.core .row.RowMeta.extractData (RowMeta.java:1134) Tra cứu thứ nguyên / cập nhật.0 - tại org.pentaho.di.trans.steps.dimensionlookup.DimensionLookup.addToCache (DimensionLookup.java:1522) Tra cứu thứ nguyên / cập nhật.0 - tại org.pentaho.di.trans.steps.dimensionlookup.DimensionLookup.lookupValues ​​(DimensionLookup.java:754) Tra cứu thứ nguyên / cập nhật.0 - tại org.pentaho.di.trans.steps.dimensionlookup.DimensionLookup.processRow (DimensionLookup.java :232) Tra cứu thứ nguyên / cập nhật.0 - tại org.pentaho.di.trans.step.RunThread.run (RunThread.java:62) Tra cứu thứ nguyên / cập nhật.0 - tại java.lang.Thread.run (Thread.java :748) Tra cứu thứ nguyên / cập nhật. 0 - Gây ra bởi:java.l ang.RuntimeException:CUSTOMER_DIM_ID BigNumber (38):Đã xảy ra lỗi kiểu dữ liệu:kiểu dữ liệu của đối tượng java.lang.Long [320] không tương ứng với giá trị meta [BigNumber (38)] 

Lỗi này có thể do giá trị khóa kỹ thuật không chính xác trong bộ đệm ẩn hoặc bước Cập nhật / Tra cứu thứ nguyên không thể truy cập vào bộ đệm ẩn của các giá trị khóa kỹ thuật duy nhất.

Để giải quyết vấn đề này, hãy thử chuyển đổi lại với chức năng Bật bộ nhớ cache đã tắt tùy chọn trong bước Tra cứu / Cập nhật thứ nguyên. Bạn cũng có thể muốn xóa bộ nhớ cache bằng cách nhấp vào SQL và sau đó nhấp vào nút Xóa bộ nhớ cache nút.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để lưu BLOB dưới dạng tệp trong PL / SQL?

  2. Sử dụng Bí danh trong mệnh đề WHERE

  3. Kết nối Oracle với PostgreSQL

  4. Giới thiệu về PL / SQL VARRAY trong Cơ sở dữ liệu Oracle

  5. Giới thiệu về phần tử định dạng V trong Oracle