OpenStack Swift Object Storeファイルシステム - ベータ版 - インポート
ブリッジの仕様
ベンダー | OpenStack |
ツール名 | Swift Object Store ファイルシステム |
ツールバージョン | 1.0 |
ツールのWebサイト | https://www.openstack.org/software/releases/queens/components/swift |
サポートされている方法論 | [ファイルシステム] マルチモデル、データストア(NoSQL / 階層) REST API経由の |
データプロファイリング | |
増分収集 | |
マルチモデル収集 | |
モデル選択のためのリモートリポジトリーの参照 |
仕様
ツール: REST API経由のOpenStack / Swift Object Storeファイルシステムバージョン1.0
https://www.openstack.org/software/releases/queens/components/swiftをご覧ください。
メタデータ: [ファイルシステム] マルチモデル、データストア (NoSQL / 階層)
コンポーネント: OpenStackSwiftバージョン11.2.0
概要
このインポートブリッジは、OpenStack Swiftに実装されたデータレイクをクロールし、(データカタログの目的で)すべてのデータファイルからメタデータを検出(リバースエンジニアリング)します。
要件
SUPPORTED FILES
This import bridge supports the following file formats:
- Delimited (Flat) files such as CSV (see details below)
- Positional (Fixed Length) files typically from mainframe (see details below)
- COBOL COPYBOOK files typically from mainframe (see details below)
- Open Office Excel XML .XSLX (see details below)
- W3C XML
- JSON (JavaScript Object Notation)
- Apache Avro
- Apache Parquet
- Apache ORC
as well as the compressed バージョンs of the above formats:
- ZIP (as a compression format, not as archive format)
- BZIP
- GZIP
- LZ4
- Snappy (as standard Snappy format, not as Hadoop native Snappy format)
DELIMITED FILES
This import bridge detects (reverse engineer) the metadata from a data file of type Delimited ファイル (also known as Flat ファイル).
この区切り付きファイルの検出は、ファイル拡張子(.CSVや.PSVなど)ではなくファイルコンテンツのサンプリングに基づいて行われます。
インポートブリッジはヘッダー行を検出し、それを使ってフィールド名を作成します。検出できない場合はジェネリックのフィールド名が作成されます。
インポートブリッジは、デフォルトで含まれている次のフィールドセパレーターを自動的に検出できるよう、最大1000行までサンプリングします。
, (コンマ)、; (セミコロン)、: (コロン)、\t (タブ)、| (パイプ)、0x1 (Ctrl + A)
また、自動検出の過程でさらに多くのセパレーター(二重文字など)が追加されることもあります。
サンプリング中にインポートブリッジはファイルデータ型(DATE、NUMBER、STRINGなど)の検出も行います。
固定長ファイル
このインポートブリッジは、定位置ファイル(別名「固定長ファイル」)タイプのデータファイルのメタデータを作成します。
このメタデータは、データファイル(customers.dat、または拡張子がない単なるcustomersなど)のサンプリングによって自動的に検出(リバースエンジニアリング)されることはありません。
したがって、このインポートブリッジは、.positional_file_definitionという拡張子を持つ形式のファイルでなければならない「固定長」ファイルをインポートします。
(たとえばcustomers.dat.positional_file_definitionという形式のファイルは、内部でフィールドが定義されたfile customersという名前のファイルのメタデータを生成します)
これは固定長ファイルのRDBMS DDLと同等です。このように長い拡張子を付けることで、このデータ定義ファイルは、その拡張子が含まれている各ファイルシステムのディレクトリー内で実際のデータファイルと共存できるようになります。
「固定幅ファイル定義」ファイル形式は次のように定義されます:
- フォーマットファイルは次のヘッダーで始まる必要があります:
カラム名、位置、幅、データ型、コメント
- 位置はすべて一意で、0以上であることが必要です。
a,1
b,5
- 位置が存在するカラムと存在しないカラムがある場合、ファイル形式は無効です。
a,1
b,
c,5
- 一部のカラムに位置は存在しないものの幅はある場合、アプリケーションはそのようなカラムが順序指定されているものと想定し、幅に基づいて位置を計算します。
a,,4 -> a,1,4
b,,25 -> b,5,25
- 位置が存在する場合、アプリケーションはドキュメンテーションでのみ幅を使用します。
a,1,4
b,5,25
- タイプとコメントはドキュメンテーションとしてのみ使用されます。
a,1,4,int
b,5,25,char[25],identifier
COBOL COPYBOOKファイル
このインポートブリッジがインポートできるのはCOBOL COOPYBOOKファイル( データ定義が含まれる)のみであるため、実際のCOBOLデータファイルからメタデータを検出(リバースエンジニアリング)することはできません。
このようなCOBOL COPYBOOKファイルの検出は、ファイル拡張子(.CPYなど)ではなくファイルコンテンツのサンプリングに基づいて行われます。
このブリッジは、真にフラットでバイト位置が定義されたレコード構造が反映される[物理階層モデル]を作成します。これはDI/ETLプロセスへのスティッチングに便利です。したがって、物理モデルにはフラットレコードの定義に必要な物理エレメントがすべて存在します。これは、すべてのエレメントが含まれている1つのテーブルです。適切なインポートブリッジパラメーターが設定されている場合はOCCURSエレメントに複数のカラムが含まれます。
現在、このインポートブリッジはCOPY動詞をサポートしておらず、COPYステートメントが始まる行と位置で解析エラーをレポートします。CopyステートメントでCopybookをインポートするためには、含まれている配置済みセクションと共に拡張Copybookファイルを作成(COPY動詞を置換)します。大半のCOBOLコンパイラーには、COPYステートメントとREPLACEステートメントを拡張して前処理されたCopybookのみを出力するオプションがあります。
よくある質問
Q: デフォルトの開始カラムが[6]でデフォルトの終了カラムが[72]なのはなぜですか?
A: インポートブリッジパーサーは1ではなく0からカラムのカウントを開始します。そのため、デフォルトでは標準の最初の6カラムを行番号用に、次のカラムをコメントインジケーター用に残し、(80のうち)最後の8カラムを追加の行コメント情報用に残します。
EXCEL (XLSX)ファイル
このインポートブリッジは、Excel XML形式(XLSX)タイプのデータファイルからメタデータを検出(リバースエンジニアリング)します。
このExcelファイルの検出は.XLSXというファイル拡張子に基づいて行われます。
インポートブリッジはヘッダー行を検出し、それを使ってフィールド名を作成します。検出できない場合はジェネリックのフィールド名が作成されます。
インポートブリッジは1000行までサンプリングし、DATE、NUMBER、STRINGといったファイルのデータ型を検出します。
Excelファイルに複数のシートがある場合、各シートは同じシート名のファイルやテーブルと相当する項目としてインポートされます。
インポートブリッジは、マシンのローカルを使用してファイルを読み取り、文字セットエンコーディングファイルの用途の指定を可能にします。
制限事項
現在判明している一般的な制限事項は、https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.htmlをご覧ください。
サポート
トラブルシューティングパッケージを次の項目と共に提供してください:
- デバッグログ(UIまたはconf/conf.propertiesでMIR_LOG_LEVEL=6を使って設定可能)
- 利用できる場合はメタデータバックアップ(技術的理由によりこの共通オプションが実装されていないブリッジがあるものの、Miscellaneousパラメーターで-backupオプションを使って設定可能)
ブリッジパラメーター
パラメーター名 | 説明 | タイプ | 値 | デフォルト | 範囲 |
RESTエンドポイント: | サービスに対するプログラムリクエストに署名するためのRESTエンドポイントです。 | STRING | |||
Auth V1エンドポイント: | インポートブリッジを認証するためのAuth V1エンドポイント。 | STRING | |||
ユーザー | ユーザー名 | STRING | |||
パスワード | パスワード | パスワード | |||
コンテナー | コンテナー名。 | STRING | |||
Miscellaneous | はじめに ダッシュで始まるMiscellaneousオプションを指定し、必要であればその後にパラメーターを追加できます。例: - connection.cast MyDatabase1="MICROSOFT SQL SERVER" 該当する場合は複数回使用できるオプションもあります。例: - connection.rename NewConnection1=OldConnection1 -connection.rename NewConnection2=OldConnection2; オプションのリストは長い文字列になるため、${MODEL_BRIDGE_HOME}\data\MIMB\parametersにあり拡張子が.txtであるファイルからロードすることもできます。その場合、オプションはすべて、このパラメーターの唯一の値としてそのファイル内で定義されることが必要です。例: ETL/Miscellaneous.txt JAVA環境のオプション -java.memory <Javaメモリの最大サイズ> (以前の-m) 64ビットJREではデフォルトで1G、またはconf/conf.properties内の設定に従います。例: -java.memory 8G -java.memory 8000M -java.parameters <Javaランタイム環境コマンドラインオプション> (以前の-j) -java.parameters -Dname=value -Xms1G のように、-java.parametersの後ろのテキストはすべてそのままJREに渡されるため、このオプションはMiscellaneousパラメーター内の最後に来る必要があります。インターネットへのアクセスにプロキシを使用している場合は、必要なサードパーティのソフトウェアライブラリーをダウンロードできるよう、次のオプションを設定する必要があります(このオプションはhttps://repo.maven.apache.org/maven2/にアクセスするため、そして例外的にいくつかの他のツールサイトにアクセスするために不可欠です)。 注: プロキシは、(会社の)外部トラフィックをHTTPSで暗号化しながら、HTTPでプロキシにアクセスできる内部トラフィックを信頼しているものがほとんどです。この場合、HTTPSリクエストはHTTPでプロキシに到達し、プロキシはそれをHTTPSで暗号化します。 -java.parameters -java.parameters -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass モデルインポートのオプション -model.name <モデル名> モデル名をオーバーライドをオーバーライドします。例: -model.name "My Model Name" -prescript <スクリプト名> このオプションによって、ブリッジの実行前にスクリプトを実行できるようになります。 スクリプトはbinディレクトリー(またはconf/conf.propertiesのM_SCRIPT_PATHで指定)にあり、拡張子が.batか.shであることが必要です。 スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。 スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。 例: -prescript "script.bat arg1 arg2" -postscript <スクリプト名> このオプションによって、ブリッジが正しく実行された後にスクリプトを実行できるようになります。 スクリプトはbinディレクトリー(またはconf/conf.propertiesのM_SCRIPT_PATHで指定)にあり、拡張子が.batか.shであることが必要です。 スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。 スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。 例: -postscript "script.bat arg1 arg2" -cache.clear インポート前にキャッシュをクリアするため、増分収集せずにフルインポートを実行します。 モデルが変更されず、-cache.clearパラメーターが使われていない場合(増分収集)、新しいバージョンは作成されません。 モデルが変更されず、-cache.clearパラメーターが設定されている場合(増分ではなくフルソースインポート)、新しいバージョンが作成されます。 -backup <directory> さらなるトラブルシューティングのため、入力メタデータを保存できるようにします。指定された<directory>は空であることが必要です。 -restore <ディレクトリー> 復元するバックアップ<ディレクトリー>を指定します。 データ接続オプション 使用するソースとターゲットのデータストアを参照するよう、通常はETL/DIツールとBIツールのインポートブリッジによってデータ接続が生成されます。これらのデータ接続はメタデータ管理ツールによって実際のデータストア(データベースやファイルシステムなど)への接続(メタデータスティッチング)に使われ、完全なエンドツーエンドのデータフローの来歴とインパクト分析が行われます。各データ接続の名前はインポートモデルごとに一意です。DI/BIデザインツールで使われているデータ接続名を可能な限り使用します。そうでない場合は、データベース/スキーマ名、ファイルシステムのパス、Uniform Resource Identifier (URI)など、短くても意味のある接続名が生成されます。次のオプションを使えば、接続を操作できます。これらのオプションによって、レガシーオプションである-c、-cd、-csが置き換えられます。 -connection.cast ConnectionName=ConnectionType SQL解析のためにジェネリックデータベース接続(ODBCやJDBCなど)を正確なデータベースタイプ(ORACLEなど)にキャストします。例: -connection.cast "My Database"="MICROSOFT SQL SERVER" サポートされているデータストア接続タイプのリストは次のとおりです。 ACCESS APACHE CASSANDRA DB2/UDB DENODO GOOGLE BIGQUERY HIVE MYSQL NETEZZA ORACLE POSTGRESQL PRESTO REDSHIFT SALESFORCE SAP HANA SNOWFLAKE MICROSOFT SQL AZURE MICROSOFT SQL SERVER SYBASE SQL SERVER SYBASE AS ENTERPRISE TERADATA VECTORWISE HP VERTICA -connection.rename OldConnection=NewConnection 既存の接続を新しい名前に変更します。例: -connection.rename OldConnectionName=NewConnectionName 既存の複数のデータベース接続の名前を変更し、新しい1つのデータベース接続に統合できます。例: -connection.rename MySchema1=MyDatabase -connection.rename MySchema2=MyDatabase -connection.split oldConnection.Schema1=newConnection データベース接続を1つまたは複数のデータベース接続に分割します。 1つのデータベース接続をスキーマごとの1つの接続に分割できます。例: -connection.split MyDatabase すべてのデータベース接続をスキーマごとの1つの接続に分割できます。例: -connection.split * データベースにスキーマ名を追加することで、データベース接続を明示的に分割し、新しいデータベース接続を作成できます。例: -connection.split MyDatabase.schema1=MySchema1 -connection.map SourcePath=DestinationPath ソースパスをデスティネーションパスにマッピングします。これは、異なるパスが同じオブジェクト(ディレクトリーまたはファイル)をポイントしている場合にファイルシステム接続にとって便利です。 Hadoopでは、あるプロセスがHDFSの完全パスで指定されたCSVファイルに書き込む一方、別のプロセスが、デフォルトのファイル名と拡張子を持つ相対パスで指定されている同じファイルによって実装されたHiveテーブル(外部)から読み取ります。例: -connection.map /user1/folder=hdfs://host:8020/users/user1/folder/file.csv Linuxでは、/users/johnや/users/paulといった複数のシンボリックリンクによって、/dataのような特定のディレクトリー(またはファイル)が参照されます。例: -connection.map /data=/users/John -connection.map /data=/users/paul Windowsでは、M:やN:といった複数のネットワークドライブによって、C:\dataのような特定のディレクトリーが参照されます。例: -connection.map C:\data=M:\ -connection.map C:\data=N:\ -connection.casesensitive ConnectionName... 検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別しないデフォルトのマッチングルールがオーバーライドされます。例: -connection.casesensitive "My Database" -connection.caseinsensitive ConnectionName... 検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別するデフォルトのマッチングルールがオーバーライドされます。例: -connection.caseinsensitive "My Database" -connection.level AggregationLevel 外部接続の集計レベルを指定します。例: -connection.level catalog サポートされている値のリスト: server catalog schema (デフォルト) ファイルシステムのオプション -file.encoding <エンコーディング値> テキストファイルを読み取るためにエンコーディング値を使用します(区切りおよび固定幅など)。 サポートされている言語と実際のエンコーディング値(行末の括弧内)は次のとおりです。例: -file.encoding shift_jis 中東欧言語(ISO-8859-2) 中東欧言語(Windows-1250) 繁体字中国語(Big5) 簡体字中国語(GB18030) 簡体字中国語(GB2312) キリル言語(ISO-8859-5) キリル言語(Windows-1251) DOS (IBM-850) ギリシャ語(ISO-8859-7) ギリシャ語(Windows-1253) ヘブライ語(ISO-8859-8) ヘブライ語(Windows-1255) 日本語(Shift_JIS) 韓国語(KS_C_5601-1987) タイ語(TIS620) タイ語(Windows-874) トルコ語(ISO-8859-9) トルコ語(Windows-1254) UTF 8 (UTF-8) UTF 16 (UTF-16) 西ヨーロッパ言語(ISO-8859-1) 西ヨーロッパ言語(ISO-8859-15) 西ヨーロッパ言語(Windows-1252) ロケールエンコーディング エンコード変換なし -processing.max.threads <数字> (以前の-tps) 最大スレッド数(デフォルトは1)までの並列処理を可能にします。例: -processing.max.threads 10 -processing.max.time <time> (以前の-tl) すべてのファイルを処理する時間制限を設定します。時間は秒、分、時で指定できます。例: -processing.max.time 3600s -processing.max.time 60m -processing.max.time 1h -processing.max.files <数字> (以前の-fl) 処理するファイルの最大数を設定します(デフォルトでは制限はありません)。例: -processing.max.files 100 ただし、パーティションディレクトリーに含まれていることもある大量のファイルを扱うため、このオプションを使用する場合は注意が必要です。代わりに、パーティションディレクトリーパラメータを指定してパーティションディレクトリーを適切に宣言する必要があります。その仕様は、処理する類似ファイルの数を制限する以外に、データレイクの適切なモデルを大量のファイルではなくパーティションとして生成します。 -partitions.latest (以前の-fresh.partition.models) パーティショニング済みディレクトリーパラメーターで定義したパーティションの処理中に、最後に変更されたファイルのみ使用します。 なお、-cache.clearオプションを指定した場合、このオプションはオーバーライドされません。このオプションはさらに、メタデータのインポートだけでなく、サンプリングとプロファイリングにも影響します。 -partitions.disable.detection (以前の-disable.partitions.autodetection) 自動パーティション検出を無効にします([パーティションディレクトリー]オプションが空の場合) -cache.reuse (以前の-skip.download) 依存項目のダウンロードを無効にすることにより、キャッシュに既にダウンロードされているものを再利用します。 -hadoop.key <Hadoopの設定オプション> (以前の-hadoop) Hadoopライブラリーのキー値を設定します(デフォルトではなし)。例: -hadoop.key key1=val1;key2=val2 -path.substitute <パス> <新しいパス> (以前の-subst) ルートパスを新しいパスに置き換えます。例: -path.substitute K: C:\test -detailed.log 処理済みのファイルのパスをすべてデバッグログに出力します。 区切り付きファイルのオプション -delimited.disable.header.parsing (以前の-delimited.no_header) 区切り付きファイルのヘッダー解析を無効にします(ヘッダーはデフォルトで解析され、フィールド名が検出されます)。 区切り付きファイルにヘッダーがない場合、またはヘッダーのインポートを無効にする場合(フィールド名が機密である場合)、このオプションを使用します。 -delimited.ignore.top.rows <数字> (以前の-delimited.top_rows_skip) 区切り付きファイルの先頭にある行数をスキップします(デフォルトでは0)。 区切り付きファイルの先頭に数行の説明が含まれている場合にこのオプションを使用します。 -delimited.ignore.top.rows 1 -delimited.add.separators <comma separated separators> (以前の-delimited.extra_separators) 区切り付きファイルを解析する時に使用可能な区切りを追加します。 検出される区切り文字には、デフォルトで , (コンマ)、; (セミコロン)、: (コロン)、\t (タブ)、| (パイプ)、0x1 (Ctrl + A)、BS (\u0008)、: (コロン)が含まれています。 追加の区切り文字は複数文字になることもあります。例: -delimited.add.separators ~,||,|~ PARQUETファイルのオプション -parquet.max.compressed.size <値> (以前の-parquet.compressed.max.size) 圧縮サイズが指定値を上回るParquetアーカイブファイルを無視します(デフォルト値は10,000,000バイト)。例: -parquet.compressed.max.size=10000000 |
STRING |
ブリッジのマッピング
Meta Integration Repository (MIR) メタモデル (OMG CWM標準に基づく) |
"OpenStack Swift Object Store ファイルシステム - New Beta Bridge" メタモデル ファイルシステム (ファイル) |
マッピングのコメント |
属性 | 配列基本項目、フィールド、属性、配列フィールド、基本項目、固定幅フィールド、パーティションフィールド | |
Comment | コメント | |
名前 | 名前 | |
位置 | 位置、オフセット | |
クラス | 配列エレメント、グループ項目、配列グループ項目、配列オブジェクト、エレメント、オブジェクト、シート | |
名前 | 名前 | |
PropertyElementTypeScope | UDP | |
名前 | 名前 | |
範囲 | 範囲 | |
PropertyType | UDP | |
データ型 | データ型 | |
DesignLevel | デザインレベル | |
名前 | 名前 | |
位置 | 位置 | |
StoreModel | Cobolファイル、Parquetファイル、Delimitedファイル、Avroファイル、Jsonファイル、コレクション、Orcファイル、Xmlファイル、Excelファイル、ファイル、固定幅ファイル | |
Name | 名前 | |
NativeType | タイプ | |
TypeValue | 条件名 | |
Name | 名前 | |
値 | 値 |