2011/02/23

バースティング その3 (Bursting part3)

今回はscott.emp表をjob列およびdeptnoで分割し、deptno毎のフォルダに配置します。バースティング設定の、「分割」と「配信元」の指定が異なるパターンの検証です。


【3. scott.emp表を、部門(deptno)毎、職種(job)毎にファイル出力】
データソースは以下の通りです。
select empno, ename, job, mgr, hiredate, sal, comm, deptno
  from emp
 order by deptno, job, empno


バースティングの設定は以下の図の通りです。


「分割」「配信元」にそれぞれjob, empnoが指定されている点、および配信定義SQLの下線部が変更されています。
select empno                  as key,
       'template1'            as template,
       'RTF'                  as template_format,
       'ja-JP'                as locale,
       'PDF'                  as output_format,
       'FILE'                 as del_channel,
       'c:\workspace\dept_' || to_char(deptno, 'fm00')
                              as parameter1,
       job || '.pdf'          as parameter2
  from emp

今回は配信定義にdeptno, jobが含まれています。deptnoとjobを特定するには各empnoを特定しなければならないため、「配信元」およびkey列にはempnoを指定します。
また、今回のように複数の列(deptno, job)で分割する場合、データソースのorder byの指定順が後ろの列を「分割」に指定すると意図した結果が得られるようです(empnoは分割対象ではないので除外)。

実行結果は以下の通りです。各部門のディレクトリにjobで命名されたファイルが出力されます。




なお、以下の設定でも同等の結果を得ることができます。

データソース:
select empno, ename, job, mgr, hiredate, sal, comm, deptno
  from emp
 order by job, deptno, empno


バースティングの設定:



今回の例におけるバースティングの動作概念は以下の通りです。

(*1) データソースは「分割」キーのjobの切り替わりのタイミング(異なる値が現れる箇所)で内部的に分割される。
(*2) 配信定義一覧はデータソースの分割箇所を引き継ぐ。
(*3) 分割の単位でファイルが出力される。


以上でバースティングの機能検証、および使用方法の確認を終えます。



[ Summary ]
In the examples above, Split by and Deliver by are set different.  scott.emp is divided into files by JOB and DEPTNO.


1st example:  
Data source and bursting property is shown in the first SQL and in the first figure.  Because BIP needs to determine DEPTNO and JOB in the list of delivery method for each record, you have to set EMPNO for Deliver by and key column.
When you split data with columns, you should set the last order by column of the data source (Note: EMPNO in the example is not split key, so that we can ignore it).
The bursting results are shown in the command prompt figure and the following PDF images.


2nd example:
You can get similar result with the second example.  order by of the data source, Split by and file name definition are changed.


The overall idea is in the last figure.


(*1) BIP divides the source data along the Split by setting.  i.e. BIP reads JOB column from the top, and put a mark when it encounters different value.
(*2) The list of delivery method takes over the source data with marked points.
(*3) BIP unloads data grouped by Split by setting.

0 件のコメント:

コメントを投稿