Salesforce (SFDC)データベース - インポート
ブリッジの要件
このブリッジ:ドライバーを<TDC_HOME>/data/download/MIMB/にダウンロードするためには、https://repo.maven.apache.org/maven2/ やその他のツールサイトへのインターネットアクセスが必要です。
ブリッジの仕様
ベンダー | Salesforce |
ツール名 | データベース |
ツールバージョン | Winter'18 (API v41.0)〜最新バージョン |
ツールのWebサイト | http://www.salesforce.com/ |
サポートされている方法論 | [リレーショナルデータベース] データストア(物理データモデル) REST API経由の |
データプロファイリング | |
増分収集 | |
マルチモデル収集 | |
モデル選択のためのリモートリポジトリーの参照 |
仕様
ツール: REST API経由の Salesforce / DatabaseのWinter'18 (API v41.0)~最新バージョン
http://www.salesforce.com/をご覧ください。
メタデータ: [リレーショナルデータベース] データストア(物理データモデル)
コンポーネント: SalesForceObjectsバージョン11.2.0
免責事項
このインポートブリッジでは、インターネットに接続して次のサードパーティライブラリーをダウンロードする必要があります:
- オープンソースのサードパーティライブラリーをダウンロードする場合はhttps://repo.maven.apache.org/maven2/など
- その他のサードパーティソフトウェア(データベース特定のJDBCドライバーなど)は該当するサイトへ
ダウンロードされたサードパーティライブラリーは、$HOME/data/download/MIMB/に格納されています。
HTTPSが失敗した場合、インポートブリッジはHTTPを試します。
- インターネットへのアクセスにプロキシを使用している場合は、JREでそのプロキシを設定する必要があります(Miscellaneousパラメーターで -j オプションをご覧ください。)。
- インポートブリッジではインターネットにフルにアクセスできない場合は、インターネットアクセスがある別のサーバーから$HOME/data/download/MIMB/ディレクトリーをコピーします。$HOME/bin/MIMB.sh (または.bat) -dというコマンドを使えば、すべてのブリッジで使用される全サードパーティライブラリーを一度にダウンロードできます。
このインポートブリッジを実行すると、ライセンス規約の責任、およびダウンロードしたサードパーティソフトウェアライブラリーによって生じる潜在的なセキュリティの脆弱性を受け入れることになります。
概要
このインポートブリッジは、コンシューマーを認証し、利用可能な物理メタデータ(テーブルなど)を取得します。コンシューマーが既にユーザーの認証情報を持っていると仮定するユーザー名 - パスワード認証フローを利用します。
要件
ユーザーがSalesforceドキュメントを送信する場合は、特定のセキュリティ設定を指定し、標準オブジェクトとカスタムオブジェクトでこのアクセスを許可する必要があります。
権限の設定方法:
- Salesforce内で[セットアップ]をクリックし、[ユーザーの管理]をクリックします
- [ユーザーの管理]ツリーの下で[プロファイル]をクリックします。
- [プロファイル]が右側に表示されたら、編集するプロファイルを選択し、対応するプロファイルの横にある[編集]リンクをクリックします。
標準オブジェクト: [ドキュメント]セクションで[読み取り]権限が選択されていることを確認します。
カスタムオブジェクト: 各カスタムオブジェクトに読み取り権限が選択されていることを確認します。
APIバージョン: This bridge supports any バージョンs of Salesforce from Winter'18 バージョン (API v41.0) to the latest バージョン such as Spring'23 (API v57.0).
This bridge will automatically detect the API バージョン <MajorInt>.<MinorInt> of the Saleforce Server to make the following requests:
- 'Describe Global' URI: /v<MajorInt>.<MinorInt>/sobjects/
- 'sObject Basic Information' URI: /v<MajorInt>.<MinorInt>/sobjects/sObject/
- 'SOQL Query' URI: /v<MajorInt>.<MinorInt>/query?
Note the above automatic バージョン detection can be overwritten for forcing a specific バージョン using the option -api.バージョン in the Miscellaneous parameter.
OAuth認証の設定方法:
- Salesforce Administrativeコンソール内に"Manage Connected Apps"を作成します
次のようにプロパティを設定します:
- OAuth設定を有効にします
- [Available OAuth Scopes]で、[Provide access to your data via Web (Web)]を選択します
MM/MIMBで:
-「コンシューマーキー」と「コンシューマーシークレット」を指定します
- Miscellaneousパラメーターで"-access_token"を指定します。これを指定すると、ブリッジはインポート前にアクセストークンを取得しようとはせず、提供されたものを使用します。
OAuth 2.0 JWT Bearerフローを設定する場合:
- Javaユーティリティのキーツールを使ってキーペアを生成します。エントリーの名前をSalesforceにします。例:
%JAVA_HOME%\bin\keytool -genkeypair -keystore %JAVA_HOME%\lib\security\cacerts -storepass *specify JKS password* -storetype PKCS12 -alias Salesforce -keyalg RSA -keysize 2048 -dname "CN=Salesforce.Import.Bridge@metaintegration.info, OU=Poltava, O=Metaintegration, L=SanJose, ST=CA, C=US" -validity 365
- 生成されたキーペアを証明書ファイルとしてエクスポートします。例:
%JAVA_HOME%\bin\keytool -exportcert -keystore %JAVA_HOME%\lib\security\cacerts -storepass *specify JKS password* -alias Salesforce -file Salesforce.crt -rfc
- 生成されたシークレットキーのPEMファイルであるSalesforce.pemをエクスポートします。例:
openssl pkcs12 -in KeyStore.jks.p12 -nocerts -nodes -out Salesforce.pem
- ファイルのコンテンツが適切であることを確認します。例:
キー属性: <属性なし>
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCqtbOsYWiJXTrU
bHUnLvNH5Kieuer3RGSrogiWv2fLjQGXbHWSDjMbCFVU72T3+hT7uyKgfwA8P9V1
...
EioPeaQkpfOkdqNLEf9aZQ==
-----END PRIVATE KEY-----
- このファイルのコンテンツは、「コンシューマーシークレット」ブリッジパラメーターで指定します。
-Salesforce管理コンソールで、「接続済みアプリ」を作成します
プロパティを次のように設定します:
- OAuth設定を有効にします
- [デジタル書名を使用]を有効にし、生成された証明書をアップロードします。
[Available OAuth Scopes]で:
- [Provide access to your data via Web (Web)]を選択します
- [Perform requests at any time (refresh_token, offline_access)]を選択します
[OAuth Policies]で:
- [Admin approved users are pre-authorized]を指定します
[Profiles]で:
- 必須のプロファイルを指定します
このフローを利用する場合は、必須である「ユーザー」を指定し、「パスワード」を空にします。
よくある質問
該当なし
制限事項
現在判明している一般的な制限事項は、https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.htmlをご覧ください。
3番目のカラムにある[Description]というフィールドはSalesforce APIによって省略され、その結果、どのプロファイルの下にも表示されません。
サポート
トラブルシューティングパッケージを次の項目と共に提供してください:
- デバッグログ(UIまたはconf/conf.propertiesでMIR_LOG_LEVEL=6を使って設定可能)
- 利用できる場合はメタデータバックアップ(技術的理由によりこの共通オプションが実装されていないブリッジがあるものの、Miscellaneousパラメーターで-backupオプションを使って設定可能)
- SalesForce access_tokenの取得方法:
curl https://*your SalesForce instance URL* -d "grant_type=password" -d "client_id=*your SalesForce Client ID*" -d "client_secret=*your secret*" -d "username=*your SalesForce username*" -d "password=*your SalesForce password*" -H "X-PrettyPrint: 1"
ユーザー名/パスワードの認証パラメーター値を持っていなくても、アクセストークンとSalesforceインスタンスのURLを持っている場合は、Miscellaneousパラメーターを使用して指定できます(詳細はその説明を参照してください)。この場合は依然として、無視されるテキストをすべての必須パラメーターに入力する必要があります。
ブリッジパラメーター
パラメーター名 | 説明 | タイプ | 値 | デフォルト | 範囲 |
インスタンス/自分のドメインURL | SalesforceログインエンドポイントURL。 デフォルトでは(値が空の場合)、https://login.salesforce.comです。 会社のインスタンスURL (https://na30.salesforce.comなど)または自分のドメインURL (https://myCompanyName.my.salesforce.com/など)を使用できます。 OAuth 2.0クライアント認証フローを使用し、パスワードを空のままにしておく場合は、会社のインスタンスURLが必須です。そうでない場合は、「Cannot retrieve access token. Make sure you specify proper Instance/My Domain URL」(アクセストークンを取得できません。適切なインスタンス/マイドメインのURLを指定してください)というエラーが表示されます |
STRING | |||
ユーザー | 接続済みアプリが装っているユーザーのユーザー名。 | STRING | |||
[Password] (パスワード) | 接続済みアプリが装っているユーザーのパスワード。OAuth 2.0 Client Credentials Flowを使用する場合は、このパラメーターを空のままにします。 セキュリティトークンとは、信頼されていないネットワークからSalesforceにログインするためにパスワードの末尾に追加する必要がある、自動的に生成されるキーのことです。認証リクエストを渡す時にパスワードとトークンを連結します。 https://help.salesforce.com/articleView?id=remoteaccess_oauth_username_password_flow.htm&;type=5 |
パスワード | |||
コンシューマーキー | 接続済みアプリの定義からのコンシューマーキーです。 接続済みアプリのコンシューマーキー。これは、接続済みアプリの[接続済みアプリの管理]ページ、または接続済みアプリの定義で見つかります。 https://help.salesforce.com/articleView?id=remoteaccess_oauth_username_password_flow.htm&;type=5 |
STRING | 必須 | ||
コンシューマーシークレット | 接続済みアプリの定義からのコンシューマーシークレット。 接続済みアプリのコンシューマーシークレット。これは、接続済みアプリの[接続済みアプリの管理]ページ、または接続済みアプリの定義で見つかります。 https://help.salesforce.com/articleView?id=remoteaccess_oauth_username_password_flow.htm&;type=5 |
パスワード | |||
オブジェクト | セミコロン( ; )またはコンマ ( , )で区切られたオブジェクト名のリスト。例: object1, object2 空のリストは、利用可能なオブジェクトがすべてインポートされることを意味します。 オブジェクト名はワイルドカードパターンとして指定できます。例: topic? *topic* topic_?,*topic* |
REPOSITORY_SUBSET | |||
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 (デフォルト) SALESFORCEのオプション -access_token <token> Salesforceアクセストークンを設定します。大文字と小文字が区別される[長い]英数字キーで、一時的な(分または時)アクセスSalesforceに使用されます。アクセストークンの期限が切れると、使用を試みても失敗します。Salesforceの用語では、アクセストークンはセッションID (SID)であり、他のシステムにおけるCookieセッションによく似ています。悪用されないように保護する必要があります。 -api.バージョン <MajorInt>.<MinorInt> Forces the Salesforce API バージョン to be used instead of the latest detected by the bridge. The バージョン value must be specified in the format <MajorInt>.<MinorInt>, e.g. '41.0'. |
STRING |
ブリッジのマッピング
マッピング情報は利用できません