Informaticaのデータ統合サービスCloud Data Integrationの命名規則

# はじめに
はじめまして。 [NTTデータ ソリューション事業本部 デジタルサクセスソリューション事業部](https://www.nttdata.com/jp/ja/services/data-and-intelligence/) の nttd-nagano です。

[Informatica（インフォマティカ）](https://www.informatica.com/jp/) のクラウドデータマネージメントプラットフォームとして、「[Intelligent Data Management Cloud](https://www.informatica.com/jp/platform.html)」（※1。以下IDMCと記載）というものがあります。

**今回は、そのIDMCのデータ統合サービス「Cloud Data Integration」（※2。以下CDIと記載）の命名規則をご紹介します。**

![idmc_summary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031738/cd91356b-23ec-d184-3d59-926a66a06023.png)

<details><summary>※1. Intelligent Data Management Cloud</summary>
略称はIDMC。旧称はIICS。クラウドデータマネジメントプラットフォーム。以下IDMCと記載。
</details>

<details><summary>※2. Cloud Data Integration</summary>
略称はCDI。データ統合サービス。ETL処理（※3）やELT処理（※4）を担う。以下CDIと記載。
</details>

<details><summary>※3. ETL処理</summary>
データベースなどに蓄積されたデータから必要なものを抽出（Extract）し、目的に応じて変換（Transform）し、データを必要とするシステムに格納（Load）すること。
</details>

<details><summary>※4. ELT処理</summary>
ETL処理（※3）と対比して使われることが多い言葉。データ統合処理の順序を従来型のE→T→Lの順ではなく、E→L→Tの順でおこなう。近年ではDBMSの性能が爆発的に向上したことから、その性能を有効活用するために使われる手法｡
</details>

# 命名規則は重要

一般的にプログラミングにおいて、 **命名規則（Naming Conventions）は重要です。**
各開発者に命名規則を守ってもらうことで、 **可読性、保守性、一貫性を保てるからです。**

これはIDMCのデータ統合サービス「CDI」において、マッピング等のアセットを作成する際でも同様です。

さて、Informaticaの製品として「PowerCenter」や「Data Engineering Integration」というデータ統合製品があり、これらについては公式ドキュメントに命名規則が記載されています。

一方で、 **「CDI」の公式ドキュメントには、命名規則は記載されていません。**

一応、公式ドキュメント外に「 [Naming Conventions - Informatica Cloud Data Integration](https://success.informatica.com/velocity/stages/cloud-data-warehouse-and-data-lake/implement/best-practices/naming-convention-cloud-data-integration.html) 」という記事はあるのですが、CDI以外の情報も記載されており、少し冗長です。

そこで今回は、 この記事と過去の製品の命名規則を参考に、 **CDIの命名規則（接頭辞のみ）を検討してみました。**

# CDIの命名規則

いきなりですが、以降が検討結果です。

## 接続関連

|項目|接頭辞|
|---|---|
|接続|`con_` （または `conn_` ）|

接続については、データベースの種類など「接続タイプ」に相当する情報も含めた方がよいでしょう。

## タスクフロー関連

|項目|接頭辞|
|---|---|
|タスクフロー|`tf_`|
|割り当てタスク|`ast_`|
|データタスク（データ統合タスク）|`dat_`|
|コマンドタスク|`cmt_`|
|ディシジョンタスク|`dec_`|

タスクの接頭辞以降は、書こうと思えば細かく書けてしまうのですが、効率を考えると種類ごとの連番などを付与する程度に留めるとよいでしょう。

## マッピングタスク関連

|項目|接頭辞|
|---|---|
|マッピングタスク|`mt_` （または `mct_` ）|

## マッピング関連

|項目|接頭辞|
|---|---|
|マッピング|`m_`|
|マップレット|`mplt_`|
|ソーストランスフォーメーション|`src_`|
|ターゲットトランスフォーメーション|`tgt_`|
|Javaトランスフォーメーション|`jtx_`|
|SQLトランスフォーメーション|`sql_`|
|Webサービストランスフォーメーション|`ws_`|
|アグリゲータトランスフォーメーション|`agg_`|
|クレンジングトランスフォーメーション|`cln_`|
|シーケンストランスフォーメーション|`seq_`|
|ジョイナトランスフォーメーション|`jnr_`|
|ソータートランスフォーメーション|`srt_`|
|データマスキングトランスフォーメーション|`dmsk_`|
|トランゼクション制御トランスフォーメーション|`tc_`|
|ノーマライザトランスフォーメーション|`nrm_`|
|フィルタトランスフォーメーション|`fil_`（または `flt_` ）|
|マップレットトランスフォーメーション|`mplt_`|
|ラベラートランスフォーメーション|`lab_`|
|ランクトランスフォーメーション|`rnk_`|
|ルックアップトランスフォーメーション|`lkp_`|
|ルータートランスフォーメーション|`rtr_`|
|ルール仕様トランスフォーメーション|`rsp_`|
|共有体トランスフォーメーション|`un_` （または `uni_` ）|
|式トランスフォーメーション|`exp_`|
|検証用トランスフォーメーション|`vrf_`|
|構造パーサートランスフォーメーション|`spar_`|
|解析トランスフォーメーション|`prs_`|
|重複排除トランスフォーメーション|`ddp_`|
|階層パーサートランスフォーメーション|`hpar_`|
|階層ビルダトランスフォーメーション|`hrbld_`|
|入力トランスフォーメーション|`inp_`|
|出力トランスフォーメーション|`out_`|

トランスフォーメーションの接頭辞以降は、書こうと思えば細かく書けてしまうのですが、効率を考えると種類ごとの連番などを付与する程度に留めるとよいでしょう。

## その他

|項目|接頭辞|
|---|---|
|インテリジェント構造モデル|`ism_`|

# 参考：命名規則についてやるべきこと・やってはいけないこと

ちなみに、公式サイトのKnowledge Baseに、 [FAQ: What are the Do's and Dont's for naming convention in CDI?](https://knowledge.informatica.com/s/article/000214828?language=en_US)  （「 FAQ: CDIの命名規則でやるべきこととやってはいけないことは何ですか？」）という記事があったため、翻訳してみました。

**Do's（やるべきこと）**

|項目|説明|
|---|---|
|分かりやすい名前を使う|フィールドの目的や内容を明確に説明する名前を選んでください。これにより、マッピングまたは統合ロジックがより分かりやすくなります。|
|特殊文字を避ける|互換性を保ち、さまざまなシステムでの潜在的な問題を避けるために、フィールド名には英数字とアンダースコアを使用してください。|
|Informaticaの命名規則に従う|Informaticaには独自の命名規則や推奨事項がある場合があります。具体的な推奨事項については、Informaticaが提供する公式ドキュメントまたはガイドラインを確認してください。|
|キャメルケースまたはアンダースコアを使う|一貫した命名スタイル、キャメルケース (例: myField) またはアンダースコア (例: my_field) を選択します。マッピングまたは変換全体を通じて、選択したスタイルを維持してください。|
|明確にするための接頭辞または接尾辞を使う|フィールドのタイプまたは目的を示すために、プレフィックスまたはサフィックスの使用を検討してください。たとえば、フィールドがソースカラムを表す場合は、src_column_nameを使用します。|
|オブジェクト間で一貫性を保つ|ソースフィールド、ターゲットフィールド、トランスフォーメーション変数、パラメータなど、さまざまなオブジェクト間で命名規則の一貫性を保ちます。一貫性は、統合ワークフローの理解と維持に役立ちます。|
|予約語を避ける|Informaticaまたはデータベースのコンテキストで特定の意味を持つ可能性のある予約語を使用しないように注意してください。|
|業務固有の命名基準を考慮する|組織が業務固有の命名基準を確立している場合は、必ずそれに従うようにしてください。これは、命名規則に対する統一されたアプローチを維持するのに役立ちます。|

**Don'ts（やってはいけないこと）**

|項目|説明|
|---|---|
|オブジェクト名に特殊文字を使用しない|Informaticaやその他の多くのシステムでは、オブジェクト名(テーブル名、列名、変数名など)に特殊文字(&、%、$、#など)やスペースを使用しないことが一般的に推奨されています。互換性を保ち、システムのパースと処理の問題を回避するには、英数字とアンダースコアを使用してください。|
|スペースの代わりにアンダースコアを使う|Informaticaではオブジェクト名にスペースを使用できますが、代わりにアンダースコア(_)を使用するのが一般的な慣例です。これは、コマンドライン環境やスクリプトでスペースが問題を引き起こす場合があり、アンダースコアの方が広く受け入れられているためです。|
|予約語に注意する|オブジェクト名には、プログラミング言語やデータストレージシステムの予約語やキーワードを使用しないでください。これにより、競合が防止され、コードがより読みやすくなります。|
|一貫した命名規則に従う|変数、ポート、フィールド、接続などのシンボルに対して一貫した命名規則を確立し、これに従ってください。一貫性により可読性が向上し、マッピングとワークフロー全体で標準化されたアプローチを維持するのに役立ちます。|
|アンダースコアの過度の使用を避ける|アンダースコアはシンボル名の単語を区切るためによく使用されますが、読みやすさに影響を与える可能性があるため、過度の使用は避けてください。明確で説明的な名前と不必要な複雑さの回避との間でバランスをとってください。|
|意味のある名前を使う|説明的でオブジェクトの目的や内容を伝えるシンボル名を選択してください。これにより、コードの理解とチームメンバー間のコラボレーションが強化されます。|
|大文字と小文字の区別を考慮する|動作環境での大文字と小文字の区別に注意してください。Informaticaなどの一部のシステムでは、名前の大文字と小文字を区別せずに名前を扱う場合がありますが、大文字と小文字を区別するシステムもあります。シンボルの大文字と小文字に一貫性を持たせることをお勧めします。|
|システム固有の制限を確認する|システムによっては、最大長や許可される文字など、シンボル名に特定の制限がある場合があります。明確に遵守するには、連携する特定のプラットフォームのドキュメントを参照してください。|

なお、この記事には明示的に記載されていませんが、 **アセット名やトランスフォーメーション名などに日本語などのマルチバイト文字を使うことも避けましょう** （もちろんデータ統合処理対象のデータとしては使用できます）。

# おわりに

以上、「Informaticaのデータ統合サービスCloud Data Integrationの命名規則」でした。

**[CDIは30日間の無料体験ができる](https://www.informatica.com/jp/trials/informatica-cloud.html)** ので、この機会に試してみてはいかがでしょうか。

## 仲間募集

NTTデータ ソリューション事業本部 では、以下の職種を募集しています。

<details><summary>1. クラウド技術を活用したデータ分析プラットフォームの開発・構築(ITアーキテクト/クラウドエンジニア)</summary>

クラウド／プラットフォーム技術の知見に基づき、DWH、BI、ETL領域におけるソリューション開発を推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/cloud_engineer

</details>

<details><summary>2. データサイエンス領域（データサイエンティスト／データアナリスト）</summary>

データ活用／情報処理／AI／BI／統計学などの情報科学を活用し、よりデータサイエンスの観点から、データ分析プロジェクトのリーダーとしてお客様のDX／デジタルサクセスを推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/datascientist

</details>

<details><summary>3.お客様のAI活用の成功を推進するAIサクセスマネージャー</summary>

DataRobotをはじめとしたAIソリューションやサービスを使って、
お客様のAIプロジェクトを成功させ、ビジネス価値を創出するための活動を実施し、
お客様内でのAI活用を拡大、NTTデータが提供するAIソリューションの利用継続を推進していただく人材を募集しています。
https://nttdata-career.jposting.net/u/job.phtml?job_code=804

</details>

<details><summary>4.DX／デジタルサクセスを推進するデータサイエンティスト《管理職/管理職候補》</summary>
データ分析プロジェクトのリーダとして、正確な課題の把握、適切な評価指標の設定、分析計画策定や適切な分析手法や技術の評価・選定といったデータ活用の具現化、高度化を行い分析結果の見える化・お客様の納得感醸成を行うことで、ビジネス成果・価値を出すアクションへとつなげることができるデータサイエンティスト人材を募集しています。

https://nttdata-career.jposting.net/u/job.phtml?job_code=898

</details>

## ソリューション紹介

<details><summary> Trusted Data Foundationについて</summary><div>

～データ資産を分析活用するための環境をオールインワンで提供するソリューション～
https://www.nttdata.com/jp/ja/lineup/tdf/
最新のクラウド技術を採用して弊社が独自に設計したリファレンスアーキテクチャ（Datalake+DWH+AI/BI）を顧客要件に合わせてカスタマイズして提供します。
可視化、機械学習、DeepLearningなどデータ資産を分析活用するための環境がオールインワンで用意されており、これまでとは別次元の量と質のデータを用いてアジリティ高くDX推進を実現できます。

</div></details>


<details><summary> TDFⓇ-AM（Trusted Data Foundation - Analytics Managed Service）について</summary><div>

～データ活用基盤の段階的な拡張支援（Quick Start) と保守運用のマネジメント（Analytics Managed）をご提供することでお客様のDXを成功に導く、データ活用プラットフォームサービス～
https://www.nttdata.com/jp/ja/lineup/tdf_am/
TDFⓇ-AMは、データ活用をQuickに始めることができ、データ活用の成熟度に応じて段階的に環境を拡張します。プラットフォームの保守運用はNTTデータが一括で実施し、お客様は成果創出に専念することが可能です。また、日々最新のテクノロジーをキャッチアップし、常に活用しやすい環境を提供します。なお、ご要望に応じて上流のコンサルティングフェーズからAI/BIなどのデータ活用支援に至るまで、End to Endで課題解決に向けて伴走することも可能です。

</div></details>

<details><summary> NTTデータとInformaticaについて</summary><div>

データ連携や処理方式を専門領域として10年以上取り組んできたプロ集団であるNTTデータは、データマネジメント領域でグローバルでの高い評価を得ているInformatica社とパートナーシップを結び、サービス強化を推進しています。
https://www.nttdata.com/jp/ja/lineup/informatica/

</div></details>

<details><summary>NTTデータとTableauについて </summary><div>

ビジュアル分析プラットフォームのTableauと2014年にパートナー契約を締結し、自社の経営ダッシュボード基盤への採用や独自のコンピテンシーセンターの設置などの取り組みを進めてきました。さらに2019年度にはSalesforceとワンストップでのサービスを提供開始するなど、積極的にビジネスを展開しています。

これまでPartner of the Year, Japanを4年連続で受賞しており、2021年にはアジア太平洋地域で最もビジネスに貢献したパートナーとして表彰されました。
また、2020年度からは、Tableauを活用したデータ活用促進のコンサルティングや導入サービスの他、AI活用やデータマネジメント整備など、お客さまの企業全体のデータ活用民主化を成功させるためのノウハウ・方法論を体系化した「デジタルサクセス」プログラムを提供開始しています。
https://www.nttdata.com/jp/ja/lineup/tableau/

</div></details>

<details><summary>NTTデータとAlteryxについて </summary><div>
Alteryxは、業務ユーザーからIT部門まで誰でも使えるセルフサービス分析プラットフォームです。

Alteryx導入の豊富な実績を持つNTTデータは、最高位にあたるAlteryx Premiumパートナーとしてお客さまをご支援します。

導入時のプロフェッショナル支援など独自メニューを整備し、特定の業種によらない多くのお客さまに、Alteryxを活用したサービスの強化・拡充を提供します。

https://www.nttdata.com/jp/ja/lineup/alteryx/

</div></details>

<details><summary>NTTデータとDataRobotについて </summary><div>
DataRobotは、包括的なAIライフサイクルプラットフォームです。

NTTデータはDataRobot社と戦略的資本業務提携を行い、経験豊富なデータサイエンティストがAI・データ活用を起点にお客様のビジネスにおける価値創出をご支援します。

https://www.nttdata.com/jp/ja/lineup/datarobot/

</div></details>

<details><summary>NTTデータとDatabricksについて </summary><div>
NTTデータでは、Databricks Inc.とソリューションパートナー契約を締結し、クラウド・データプラットフォーム「Databricks」の導入・構築、および活用支援を開始しています。

NTTデータではこれまでも、独自ノウハウに基づき、ビッグデータ・AIなど領域に係る市場競争力のあるさまざまなソリューションパートナーとともにエコシステムを形成し、お客さまのビジネス変革を導いてきました。
Databricksは、これら先端テクノロジーとのエコシステムの形成に強みがあり、NTTデータはこれらを組み合わせることでお客さまに最適なインテグレーションをご提供いたします。

https://www.nttdata.com/jp/ja/lineup/databricks/

</div></details>