リリースノート
1.1.0
Added
- 取得したデータから引用符を削除する機能を追加しました。
Changed
- ロガーとツールチップを更新しました。
1.0.1
Fixed
- CSVパスに関するプラグインの検証を修正しました。
- 健全性確認ステップレベルの検証を修正しました。
1.0.0
Added
- 初回リリース。
このドキュメントでは、OracleDB EDMプラグインv1.1.0の設定方法について説明します。Netskope Cloud Exchangeプラットフォームの Exact Data Match モジュールを使用します。 このプラグインは、構成された Oracle データベース サーバーから生データを取得して EDM ハッシュを生成するために使用されます。
前提条件
設定を完了するには、以下が必要です。
- Netskopeテナント(または、例えば本番環境と開発/テスト環境など、複数のテナント)。
- Netskope Cloud Exchangeテナントには、テナントプラグインと完全一致データ一致プラグインが既に設定されています。
- OracleDBサーバーのセットアップ
- データをフェッチするための読み取り専用( Select )アクセス権を持つOracleDBサーバー・データベース・ユーザー。
Oracle Database EDMプラグインのサポート
このプラグインは、構成された Oracle データベース サーバーから生データを取得して EDM ハッシュを生成するために使用されます。 このプラグインは、高度なデータサニタイズ、正規化、およびハッシュ生成機能をサポートしており、データの品質とセキュリティコンプライアンスを確保します。
| 特徴 | サポート |
|---|---|
| Pull | はい |
| Push | いいえ |
OracleDBデータベースの権限
| 権限の種類 | Requirement |
|---|---|
| ユーザー 読む 記載データベースへのアクセス | Required |
| OracleDBデータベースを読む権限 | Required |
| データベースポートアクセス | Required |
必要な権限
- データベース ユーザーは、指定されたデータベースに対する読み取り権限を持っている必要があります。
- 設定されたポート(デフォルト:1521)でOracleデータベースサーバーへのネットワーク接続が必要です。
- Cloud Exchange上に、一時ファイル処理のための十分なディスク容量を確保してください。
APIの詳細
データベースレコードを取得するために使うライブラリのリスト
このプラグイン PythonライブラリとOracle DBドライバを使用して、Oracleデータベースへの安全な接続を確立し、SQLクエリを実行してテーブルの生データを転送します。
Library: SQLAlchemyとOracleDB
Usage: SQLAlchemyは、効率的で高性能なデータベースアクセスを実現するために設計された、よく知られたエンタープライズレベルの永続化パターンを包括的に提供するPython SQLツールキットであり、SQLクエリを実行するためのシンプルでPythonらしいドメイン言語に適合されています。Oracle Connector/Pythonを使用すると、PythonプログラムからOracleデータベースにアクセスできます。
クライアント接続を作成する
from sqlalchemy import create_engine
eng = create_engine(connection_string) # creates connection with database.
読む専用セッションでSQLクエリを実行する
with eng.connect() as connection:
# used to stop user from executing any database modification query.
result = connection.execute(text("SET TRANSACTION READ ONLY"))
query = text(config["query"].strip(";"))
result = connection.execute(query)
取得したレコードからCSVファイルをバッチ処理で生成する
# csv_path will be new csv file
self.store_data_to_csv([columns], csv_path)
if fetch_only_sample_data:
rows = result.fetchmany(SAMPLE_CSV_ROW_COUNT)
else:
rows = result.yield_per(BATCH_SIZE)
self.store_data_to_csv(rows, csv_path, replace=False)
パフォーマンスマトリックス
以下は、約 100 万行 (25 列、各列は約 50 文字の文字列、各行に一意の値、1.3) の取得とサニタイズのために実施されたパフォーマンス測定です。以下の仕様を持つ大規模CEインスタンス上のデータベーステーブルからのデータ(GBサイズ、平均列一意性:約96%、平均行一意性:約96%)
| デスクリプション | 仕様 |
|---|---|
| スタックの詳細 | サイズ:大 RAM:32 GB CPU:16コア |
| サニタイズ処理なしでMySQLから取得したデータベーステーブルデータ | 約5,500行/秒 |
ワークフロー
- Oracle DBサーバー上に読む権限を持つユーザーを作成します。
- OracleDB EDMプラグインを設定します。
- OracleDB EDMプラグインとEDM Netskopeプラグイン間の共有を設定します。
- OracleDBプラグインを検証します。
動画を見る
再生ボタンをクリックして動画をご覧ください。
OracleDBサーバー上の構成
ユーザーを作成する
OracleDBデータベースにユーザーを作成するには、以下の手順に従ってください。
-
Oracleデータベースインスタンスにログインし、SQL Plusターミナルを開きます。
-
新しいユーザーを作成し、読むのみの権限を付与するには、DBA (データベース管理者) 権限を持つユーザーとして接続する必要があります。
SYS as SYSDBA
-
新しいユーザーを作成するには、次のSQLコマンドを実行してください。
CREATE USER <new_username> IDENTIFIED BY <new_password>; GRANT CONNECT TO <new_username>;
-
データを取得するための特定のテーブルへの読む専用アクセスをユーザーに付与します。
GRANT SELECT ON <table_name> TO <new_username>;
注記
- 交換する
そして ユーザー名とパスワードを入力してユーザーを作成してください。 - 読む専用アクセスを提供したいテーブル名に
を置き換えてください。
Oracleデータベースプラグインの設定
-
Cloud Exchange で、 Settings > Plugin Storeに移動します。
-
OracleDB v1.1.0 (EDM)プラグインを検索して選択してください。

-
基本情報を入力してください:
-
Configuration Name: プラグインにふさわしい名前を入力してください。
指定した構成名はNetskopeテナントと共有する生成されたハッシュファイルの名前になります。 後でこの設定を削除して同じ名前で新しい設定を作成する場合、ハッシュファイルがNetskopeテナントに既に存在している可能性があることに注意してください。このような場合、ハッシュファイルをテナントにプッシュしようとすると、同じ名前のファイルが既に存在するため、エラーが発生します。 この問題を回避するには、一意の名前を使用することを検討してください。 -
Sync Interval: このプラグインソースからデータを取得する間隔。デフォルト値は12時間です。(デフォルト:12時間)

-
-
Next をクリックして、設定パラメータを入力してください。
-
Server IP/Hostname: OracleDBサーバーが設置されているIPアドレスまたはホスト名。
-
Username: OracleDBデータベースにアクセスするためのユーザー名。有効なユーザー名であり、アクセス権限のみが付与されていることを確認してください。
-
Password: 指定されたデータベースユーザー名に関連付けられたパスワード。
-
SID: データを取得するOracleデータベース名。データベース名は大文字と小文字を区別するため、データベース名が正しく入力されていることを確認してください。
-
Port: Oracleデータベースが稼働しているTCPポート番号を入力してください。
-
Query: データベースからデータを取得するための読む専用クエリを提供します。(読む専用クエリ) (「 Select 」クエリを意味します)
-
Remove Quotes: データファイルでフィールドが二重引用符で囲まれている場合、特に値にカンマが含まれている場合は、これを有効にしてください。引用符で囲まれたフィールドは、単一の列として解析されます。引用符の位置が不適切だと、行がスキップされる可能性があります。データベースからエクスポートされたCSVファイルに役立ちます。
デフォルトでは、引用符は文字通りのテキストとして扱われます。CSVファイルで引用符を削除するトグルを有効にしてください。 カンマを含むフィールド("123 ABC Street, Suite 100"など)を囲むには、二重引用符を使用します。 これにより、そのフィールドが単一の列として扱われることが保証されます。このモードでは、厳密なCSVフォーマットが必須となることに注意してください。フィールドが引用符で始まる場合、閉じ引用符の後に続き、コンマの前にある文字(スペースを含む)(例:"Word",)があると、その行はスキップされます。

-
-
Next をクリックして、ハッシュ生成およびサニタイズパラメータを入力してください。
-
サニタイズおよびハッシュ生成操作に適したオプションSelect 。
- Sanitization (Name Column): 「名前列」チェックボックスをオンにして、コンテンツをサニタイズしてください。(デフォルト:チェックなし)消毒処理では、以下の動作が行われます。
- One character: セルに文字が1つしか含まれていない場合、そのセルは無効とみなされます。
- Digits: 数字を含むセルは無効としてマークされます。
- Stopwords: リストにあるストップワードに一致するセルは無効としてマークされます(これは、[ストップワードを削除] チェックボックスがオンになっている場合にのみ機能します)。
- Non-alphanumeric characters: セルを検証するには、すべての特殊文字を削除してください。
- ハッシュ生成は2つの部分に分かれています。
- Normalization: ドロップダウンリストから値Select 、データ値を正規化してください。 (デフォルト:なし)
- Create Dictionary: ドロップダウンから値Select 、選択したフィールドの一意の値の辞書を作成します。 NetskopeテナントのDLPルールで使用できます。 (デフォルト:なし)
- Sanitization (Name Column): 「名前列」チェックボックスをオンにして、コンテンツをサニタイズしてください。(デフォルト:チェックなし)消毒処理では、以下の動作が行われます。
-
Remove Stopwords: サニタイズ処理の一環として特定のストップワードを削除する場合は、チェックマークを付けてください。(デフォルト:(チェックなし)変更を反映させるには、該当するフィールドの「名前列」がチェックされていることを確認してください。
注記
- 使う 正規化パラメータで取得した結果を正規化します。 例えば、123-45-6789や123 45 6789のような番号は、123456789として扱われます。数値の正規化では、ドット、ダッシュ、スペースなどの文字は無視されます。文字列正規化は文字のケース感度を無視します。
- 「辞書の作成」オプションは、必要な場合にのみ使用してください。この操作はリソースを大量に消費し、システムパフォーマンスに影響を与える可能性があります。 最適な効率性を得るために、このオプションを慎重に選択してください。

-
-
Nextをクリックしてください。Preview Good FileまたはPreview Bad Fileをクリックして、サニタイズサンプルの出力をプレビューしてください。
プラグインをサニタイズ機能を有効にして使用している場合、追加処理が発生するためパフォーマンスが異なる場合があります。 -
Proceed without sanitization: 消毒処理を進めるには、このオプションのチェックを外してください。(デフォルト:チェック済み)
このオプションのチェックを外すと、すべてのデータがハッシュ生成の対象となります。チェックを外すと、有効なファイルの内容のみがハッシュ生成の対象となります。 -
「保存」をクリックしてください。「完全一致データ一致」>「プラグイン」ページにリダイレクトされ、設定済みのプラグインを確認できます。

Oracle DBとCloud Exchange間の共有を構成する
共有構成は、生成された EDM ハッシュを宛先プラットフォームと共有するために使用されます。 EDMハッシュをNetskopeテナントと共有するには、共有設定を作成します。 次の手順で行います。
-
Exact Data Match > Sharingに移動してAdd Sharing Configurationをクリックしてください。

-
共有パラメータを設定します。
- Source Configuration: 設定済みのEDM OracleプラグインSelect 。
- Destination Configuration: EDMハッシュの共有先Select 。
- Target: 値は、選択された宛先構成に応じて自動的に設定されます。

-
Saveをクリックしてください。

Oracle DBプラグインを検証する
Cloud Exchange でプルを検証する
Cloud Exchangeで構成済みのプラグインが正しくプルされたことを確認するには、 Settings > Loggingに移動してOracleDB EDMプラグインのログを検索してください。
プラグインの動作は、Cloud Exchange のLogging にあるログから確認できます。

ソースプラグインの共有設定が確立されている場合、そのステータスはSharing and Upload Management pageで監視できます。
ステータス値は以下のとおりです。
- Scheduled: 共有設定が完了しており、プル操作とプッシュ操作が処理待ちのキューに入っていることを示します。
- Generating Hash: ハッシュの生成プロセスが開始されたことを示します。この段階では、バックグランドのフェッチ > 検証 > サニタイズ (選択した場合) > ステージングされたハッシュの生成が含まれます。
- Uploading Hash: 宛先構成へのハッシュのアップロードが開始されたことを示します。
- Upload Completed: ハッシュが宛先設定にアップロードされたことを示します。
- Checking Apply Status: この段階では、ハッシュが宛先構成に適用されている状態を確認します。
- Apply In Progress: これは、ハッシュ処理が宛先で開始され、進行中の状態であることを示しています。
- Completed: ハッシュファイルが宛先設定に正常にプッシュされたことを示します。
- Failed: アクションの最終結果の実行に失敗したことを示します。アクションは、ハッシュの生成、ハッシュのアップロード、適用ステータスの確認です。
共有EDMハッシュは、Cloud ExchangeのLogging にあるログから確認できます。

Netskopeテナントへのプッシュを検証する
Cloud ExchangeからNetskopeテナントへのEDMハッシュのプッシュを確実に行うには:
-
Netskopeテナントにログインし、 Policies > DLPに移動します。

-
Edit RulesをクリックしてData Loss Preventionを選択してください。

-
On the Exact Match tab, a list of files is shown.

Oracle DBプラグインのトラブルシューティング
Oracle DBプラグインを構成できません
OracleDB EDMプラグインの設定ができない場合、以下のいずれかの理由が考えられます。
- 間違ったクレデンシャルが提供されました。
- ユーザーに必要な権限がありません。
- ホスト名またはサーバーのIPアドレスが間違っています。
- データベース名が間違っています。
What to do:
- 必ず正しいクレデンシャルを入力してください。
- ユーザーがデータベースとテーブルに必要な権限を持っていることを確認してください。
- ホスト名/サーバーIPアドレスが正しいことを確認してください。
- データベース名が正しいことを確認してください。
ハッシュ生成が失敗するか、時間がかかりすぎる
ハッシュ生成が失敗した場合、またはパフォーマンスが低下した場合。
What to do:
- Cloud Exchangeの空きディスク容量を確認してください(CSVファイルサイズの少なくとも2倍の容量が必要です)。
- ファイル/テーブルのサイズを縮小するか、より小さなテーブルに分割してください。
- パフォーマンス向上のため、必要でない場合はサニタイズ機能を無効にしてください。
- 処理中はシステムリソースを監視してください。
既知の行動
- サニタイズ処理は処理速度を約65%低下させる可能性があるが、データ品質を向上させる。
- 辞書の作成はリソースを大量に消費するため、 必要な場合にのみ行うべきです。
- このプラグインは処理中に一時ファイルを作成しますが、それらは自動的に削除されます。
- 非常に大きなファイルの場合、SSH接続のタイムアウトが発生する可能性があります。タイムアウト値を増やすことを検討してください。
- メモリ使用量はCSVファイルサイズ/テーブルサイズに比例します。大容量ファイルの処理中はシステムリソースを監視してください。

