Cognos BI でCSVやExcelファイルをデータソースにする方法3点

Cognos BIは通常データソースは、リレーショナルDBかCubeを使用されていると思いますが、CSVやExcelのデータをデータソースとしたい、と相談される事があります。

対応方法としては、以下の3つがありますので紹介しておきます。

# 3つの対応方法

**1).Windows OSのODBC接続機能で、ExcelファイルにODBC接続を設定する。**
Windows OSでCognos BIを構成している場合に限られます。
CSVファイルはCognosサーバー上に配置します。

**2).個人用データ・セット機能を使う。**
OS関係なく使用できます。
CSVやExcelにあったデータは、まずはクライアントPC上に用意して、アップロードのイメージで指定されたデータベース(Content Store等)に保管されます。
**パーソナル・データ・セット**
https://www.ibm.com/support/knowledgecenter/ja/SSEP7J_10.2.2/com.ibm.swg.ba.cognos.ug_cra.10.2.2.doc/c_personal_data_sets.html

**3).外部データ管理機能を使う。**
既存のリレーショナルDBのテーブルのデータと、CSVやExcelのデータを結合して使用できる機能です。
同一レポート上で、DBからのデータとCSVやExcelファイルからのデータを同時に使用したい場合に選択します。
CSVやExcelファイルは、クライアントPC上を使用する事も、Cognosサーバー上のものを使用する事も可能です。

**外部データを管理**
https://www.ibm.com/support/knowledgecenter/ja/SSEP7J_10.2.2/com.ibm.swg.ba.cognos.ug_cr_rptstd.10.2.2.doc/c_rs_cwa_mng_ext_dta.html



# 1).Windows OSのODBC接続機能で、ExcelファイルにODBC接続を設定する。
手順を紹介します。

このようなCSVファイルを、Cognosサーバー上の任意のフォルダに配置しておきます。
![002.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/5cbd7689-a353-1b29-cb0a-7a8ccd500950.png)

Cognosサーバー上の、以下のフォルダで、「ODBCデータソース・アドミニストレーター」を起動します。（※32bit）
C:\Windows\SysWOW64>odbcad32.exe

「システムDSN」で「追加」をクリックし「Microsoft Text Driver(*.txt;*.csv)」を選択します。
![015.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/0a3954ae-b225-ed99-48cf-26b9e99f1659.png)

ファイルを配置しているフォルダを指定します。
![016.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/d22455f1-d550-95b8-5d9d-b10988551764.png)

データソース名を指定してOK。
![017.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/1bba889f-c103-3894-594e-44096979c547.png)

Cognos Administrationでデータソース接続を追加します。
![019.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/b5f4341c-e9fb-831c-13a7-d88acafba827.png)

タイプはODBCを選択し、先ほどのデータソース名を指定します。
![021.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/038b1ae3-d0dd-b2a7-4d8f-90f509c9c6c1.png)

後はFramework Managerのメタデータ・ウィザードで普通の表のように取り込みが可能です。
![025.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/161443ec-523c-e708-d4cc-cd8c59e58fbb.png)

パッケージを発行して、レポートを作成してください。


# 2).個人用データ・セット機能を使う。
先のCSVファイルは、クライアントPC上の任意のフォルダに配置している前提です。

Cognos Administrationでデータソースを追加します。
![005.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/4bf2ff14-ab28-bdf1-2d12-d981d8a89408.png)

タイプで「個人用データ・セット・リポジトリー」を選択します。
![007.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/c796ce68-da16-bcb3-c69d-5aeaafecd2e0.png)

任意のデータベースを指定してください。今回はContent Storeを指定しています。
※注意点として、DB2の場合、Cognosで使用するJDBCドライバーは以下の2ファイルを配置下さい。
db2jcc_license_cu.jar
db2jcc4.jar
こちらのファイルも配置していると、サポートされていないJDBCタイプと接続エラーになります。
db2jcc.jar
![008.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/dd57e2b6-897e-157e-8233-22189d5eed13.png)

以下のメニューから「個人用データ・セット」を起動します。
![037.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/bb2f2cf0-0012-d73f-f521-d777dd8c0ea2.png)

この状態で「参照」を選択します。
![009.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/f2d11276-05c6-ab9c-86a6-d097adb093a1.png)

CSVファイルを選択すると、以下のように表示されますので確認し「発行」します。
![010.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/49fa7faa-860d-abe0-c33f-68c8a42dd8f3.png)

パッケージとして発行されますので、任意のCognos Connection上のフォルダを指定します。
![011.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/c0c718df-f7af-2fb1-092d-7393b63f6cf8.png)

個人用データ・セットのメニューには、以下のエントリーが作成されます。
![012.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/2e4320fe-c899-b258-d0e1-3e7068054137.png)

発行されたパッケージを使用して、Report Authoringでレポートを作成できます。
![013.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/d7171e79-f1a0-0992-bdfa-45ddbfd802b9.png)


# 3).外部データ管理機能を使う。

リレーショナルDBのテーブルデータとの連携が可能なので、サンプルとして以下の表を作っています。
![001.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/560c58f5-6cc8-ead4-7304-54f871afc9e1.png)

この表を元に、簡単な棒グラフのレポートを作成しています。
このレポート中に、CSVファイル上のデータで別の棒グラフを追加する事が目標です。
![003.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/0e185e27-29d9-3552-5e37-7b037e2126e0.png)

上記のレポートをReport Authoringで開き、図の「外部データを管理」のアイコンをクリックします。
![028.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/a3fd61ff-5a93-34f2-fa01-3a7d2a009b92.png)

「参照」からCSVファイルを追加すると、データアイテムが表示されます。「次へ」。
![029.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/eaab45c1-e9ec-f2d4-33d8-cb176356d786.png)

この様に、リレーショナルDB上のテーブル（クエリー・サブジェクト）を右側で指定し、結合キーでのリンクを作成します。
![030.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/b2746a45-106a-77e1-afea-12767d8cff29.png)

データ型や集計の規則を指定する事ができます。
![031.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/65faa973-8652-f650-0444-c28412a97f33.png)

結合のカーディナリティを指定します。
![032.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/fab9d2e3-b4a4-8402-c7a3-6cc45b81ceb2.png)

パッケージとして発行します。
![033.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/a9258645-3244-8d35-9a74-4aac81989cb3.png)

発行されたパッケージの中身は以下のような構成になります。
※DB2SAMPLEの下がリレーショナルDBのテーブルで元々パッケージに含まれていたもの、ExtDataの下がCSVファイルのものになります。
![034.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/3e4a46cc-c83d-95fd-5ece-0b350a137128.png)

このパッケージを用いて、新規に棒グラフを追加して、CSVファイルからのデータアイテムを配置し、表示する事が可能です。
![035.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/283f113e-dad6-92c0-c1ca-9ad953c61ce0.png)

また、同一の棒グラフ内にもリレーショナルDBのデータとCSVのデータを合わせて表示する事もできます。
![036.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/cb970fc6-871d-3ea5-63f8-688b12a933e9.png)

外部データ管理で、CSVファイルのCognosサーバーやファイルサーバーへの保管や、レポート実行時の自動ロードについて、こちらのTechnoteも参考になります。

**Automatically loading external data into Cognos Report Studio and Cognos Workspace Advanced reports on UNIX, Linux, and Windows**
http://www-01.ibm.com/support/docview.wss?uid=swg21696606

**External Data option "Allow the server to automatically load the file" is disabled**
http://www-01.ibm.com/support/docview.wss?uid=swg21670934

以上になります。
CSVやExcelデータの使用は、良く聞かれる話だと思いますので、覚えておいて頂けると幸いです。