EssbaseのUnicode実装の理解

この項の内容:

Unicodeについて

Unicodeモードのアプリケーションを使用する場合

ロケールおよびESSLANG変数

Unicodeモードのアプリケーションおよび非Unicodeモードのアプリケーション

EssbaseサーバーのUnicodeモードと非Unicodeモード

名前の長さの拡張

異なるバージョンのクライアント・プログラムとEssbaseアプリケーションの間の互換性

Unicode対応のC API

テキストのエンコード方式とロケールの特定

Unicode対応の管理ツール

取得ツール

SQLインタフェース

Sample_U.Basic

この章の情報は、ブロック・ストレージと集約ストレージ・データベースに適用されます。

Unicodeについて

国や言語の境界を超えてデータを共有することは、多国籍企業にとっての課題です。従来より、各コンピュータは、ロケール指定に基づいてテキストを保管したり、表示したりしてきました。ロケールは、通貨や日付のフォーマット、データのソート順、文字セットのエンコード方式などの、ローカル言語および文化的な規則を識別します。エンコード方式とは、文字テキストを、コード・ページまたはエンコード方式フォーマットで定義されたデータとして保管するために使用されるビットの組合せを指します。Essbaseでは、コード・ページによって、文字が非Unicodeエンコード方式のビットの組合せにマッピングされます。

異なるエンコード方式を使用すれば、異なる文字に同じビットの組合せをマッピングする可能性があるため、あるコンピュータで作成されたファイルは、異なるロケールの別のコンピュータ上では、誤って解釈される可能性があります。

Unicode標準を使用すると、ロケールの異なるコンピュータが文字データを共有できるようになります。Unicodeによって、複数の言語の文字セットを同時にサポートするために十分な、数千のビットの組合せを持つエンコード形式が提供されます。Unicodeでは、すべての文字マッピングを1つのエンコード形式に結合することにより、ロケール設定の異なるコンピュータ上で作成された文字データをユーザーが正しく表示できます。

Essbaseは、Unicode標準のバージョン2.1に準拠し、UTF-8エンコード方式を使用しています。www.unicode.orgを参照してください。

Essbaseでは、Unicodeの実装により、グローバル企業の従業員が、Essbaseデータベースに保管されている企業情報を自国の言語で表示できるようにしています。たとえば、それぞれの言語の別名テーブルを使用して、台湾のユーザーはデータベース・レポートを漢字で表示でき、フランスのユーザーは同じレポートをフランス語の文字で表示できます。

以降のトピックでは、EssbaseでのUnicode実装の特徴について説明します。

注:

Essbaseでは、ユーザー定義の文字セット(UDC)はサポートされていません。

Unicodeモードのアプリケーションを使用する場合

Unicodeモードのアプリケーションは、次の状況でのみ使用することを検討してください:

  • 異なる言語を使用するユーザーが、自国の言語および文字セットを使用して、同じデータベースの情報を表示できるようにする必要がある場合。

    たとえば、日本語とドイツ語の別名テーブルを使用して、日本とドイツのユーザーが共通の製品セットに関する情報を自国の言語で表示できるようにする場合です。

  • 非Unicodeモードのアプリケーションでサポートされている長さを超えるアーティファクト名を扱う必要がある場合。

    たとえば、アプリケーション名やデータベース名を、8文字よりも長くする必要がある場合や、マルチバイトの文字セットを使用して、さらに長い文字数のアーティファクト名を扱う必要がある場合です。

    制限。を参照してください。

  • 変換されたマルチバイトのEssbase実装で、「ラウンドトリップ」の問題が発生しました。2つの異なるビット値が同じ文字にマッピングされる可能性があります。この問題は、マルチバイトのオペレーティング・システムやアプリケーション・プログラム間の通信で発生することがあります。

    Javaアプリケーションとして、Administration ServicesおよびProvider Servicesは常にUnicodeで動作するため、ラウンドトリップの変換エラーは発生しません。

Unicodeモードのアプリケーションを使用するかどうかを決定する場合は、次の点に注意してください:

  • Unicodeモードのアプリケーションで非Unicodeテキスト・ファイルを使用するには、ロケールとその管理方法を理解していることが必要です。データベースの破損を引き起こす可能性のあるエラーを防止するために、UTF-8でエンコードされたファイルを使用することをお薦めします。

    ファイルのエンコード方式の管理を参照してください。

  • Unicodeモードのアプリケーションを操作するには、Unicodeモードのアプリケーションで使用される長い文字列を使用するために、非Unicodeモードのアプリケーションをサポートするために記述されたカスタム・クライアント・プログラムを作成する必要があります。この作業は、アプリケーションの設計に応じて、簡単な再構築で済む場合と再プログラミングが必要になる場合があります。変更されるプログラムのコーディング方法によっては、必要なメモリーが増えることがあります。

    『Oracle Essbase APIリファレンス』を参照してください。

ロケールおよびESSLANG変数

Essbaseでは、コンピュータのロケールを定義するためのESSLANG変数を使用しています。たとえば、アメリカ英語をサポートするには、ESSLANGをEnglish_UnitedStates.Latin1@Binaryに設定できます。

Essbaseサーバー・インストールごとに、ESSLANG変数を指定する必要があります。この変数は、コンピュータのオペレーティング・システムで定義されたロケールに設定されている必要があります。

クライアント・コンピュータでは、ESSLANG変数の指定はオプションです。ESSLANGが定義されている場合、Essbaseは、このESSLANG値をコンピュータ・ロケールとして使用します。ESSLANGが指定されていな場合は、オペレーティング・システムのロケールが使用されます。

ESSLANG変数は、Essbaseのインストール時に設定されます。Oracle Enterprise Performance Management System Installation and Configuration Guideを参照してください。

非Unicodeモードのクライアントおよびアプリケーションの場合は、クライアントとEssbaseサーバーのロケール値が同じである必要があります。Unicodeモードのアプリケーションの場合は、クライアントとEssbaseサーバーのロケール値が異なっていてもかまいません。

Unicodeモードのアプリケーションおよび非Unicodeモードのアプリケーション

アプリケーションは、Unicodeモードのアプリケーションまたは非Unicodeモードのアプリケーションのいずれかに指定されます。

Unicodeモードのアプリケーションは、複数の文字セットをサポートしています。Unicodeモードのアプリケーションを使用している場合、EssbaseはUTF-8エンコード形式を使用して、文字テキストを解釈および保管します。Unicodeモードのアプリケーションでの文字ベースのアーティファクト(メンバー名や別名の名前など)には、異なる言語の文字を含められます。

Unicodeモードのアプリケーションは、非Unicodeエンコード方式およびUTF-8の入力ファイルを受け入れるため、Essbaseはロケール・インディケータとユーザー・プロンプト表示を使用して、非Unicodeでエンコードされたファイルの読取りまたは書込みを行います。

Unicodeモードのアプリケーションで動作しているクライアントは、Essbaseサーバーとは異なるロケールにできます。たとえば、ロケールが日本語のクライアント・コンピュータと、ロケールがドイツ語のクライアント・コンピュータは、ロケールがスペイン語のEssbaseサーバーのインスタンス上の同じUnicodeモードのアプリケーションで動作できます。

Unicodeモードのアプリケーションの場合、ほとんどのアーチファクトには、非Unicodeモードのアプリケーションの場合よりも、長い名前を付けられます。アーチファクト名の長さは、バイト数ではなく、文字数に基づいて計算されます。名前の長さの拡張を参照してください。

非Unicodeモードのアプリケーションは、ロケール値によって定義された1つの文字セットをサポートしています。このロケール値は、Essbaseサーバーと、非Unicodeモードのアプリケーションで動作しているすべての非Unicodeクライアントで同じである必要があります。デフォルトでは、Essbaseはアプリケーションを非Unicodeモードで作成します。

アプリケーションの作成時にそのアプリケーションをUnicodeモードとして定義するか(Unicodeモードのアプリケーションの作成を参照)、非Unicodeモードのアプリケーションを別の手順でUnicodeモードに移行できます(アプリケーションのUnicodeモードへの移行を参照)。

注:

Unicodeモードのアプリケーションを非Unicodeモードに変換できません。

Unicodeモードのアプリケーションと非Unicodeモードのアプリケーションは同じEssbaseサーバー上に存在できます。

EssbaseサーバーのUnicodeモードと非Unicodeモード

Essbaseサーバーは、Unicodeモードのアプリケーションを作成する権限と、既存のアプリケーションをUnicodeモードに移行する権限を持っているときにUnicodeモードになります。EssbaseサーバーのUnicodeモードへの設定を参照してください。

EssbaseサーバーがUnicodeモードにあるかどうかは、アプリケーションの作成および移行にのみ影響します。EssbaseサーバーのUnicodeの設定には関係なく、Unicodeモードと非Unicodeモードの両方のアプリケーションを使用できます。

名前の長さの拡張

Unicodeモードのアプリケーションでは、アプリケーション、データベース、メンバーの名前などの文字列で使用可能な最大文字数は、非Unicodeモードのアプリケーションの場合よりも多くなります。

Unicodeのアーティファクト名の最大長は、各文字に必要なバイト数には関係なく、文字数に基づいています。非Unicodeのアーティファクト名の最大長は、バイト数で計算されます。

バイト数によって制限されないことは、中国語や日本語などのマルチバイトの文字セットを使用するアプリケーションにとって有利です。たとえば、Unicodeモードのアプリケーションでのメンバー名の制限は、たとえマルチバイト文字であっても80文字です。これに対して、非Unicodeアプリケーションでのメンバー名の制限は80バイトです。制限。を参照してください。

注:

この拡張されたサイズ制限は、アウトラインやユーザーが記述するクライアント・プログラムのサイズに影響を与える可能性があります。

拡張された名前サイズを活用するために、すべてのユーザーが同じロケールで作業する場合でも、Unicodeモードのアプリケーションを使用することがあります(Unicodeモードのアプリケーションを使用する場合を参照)。

異なるバージョンのクライアント・プログラムとEssbaseアプリケーションの間の互換性

Essbaseは、Unicodeモードと非Unicodeモードの両方のクライアント・プログラムをサポートしています。

非Unicodeモードのクライアント・プログラム(たとえば、MaxLシェル):

  • 短い文字列のEssbase APIで通信します

  • Unicodeモードのアウトラインを変更できません

  • Unicodeモードのアウトラインのアウトライン同期を実行できません

Unicodeモードのクライアント・プログラム(たとえば、管理サービス・コンソールやSmart View):

  • 長い文字列を使用して、Unicodeエンコード方式のEssbase APIで通信します

  • 非Unicodeモードのアウトラインをマルチバイト文字と同期できません

注:

管理サービス・コンソールまたは別のツールを使用してMaxLスクリプトを作成し、それをUTF-8で保存してからそのスクリプトをMaxLシェルで実行すると、MaxLシェルはUnicodeモードのクライアントの役割を前提にします。たとえば、この方法を使用すると、次元構築によってアウトラインを更新できます。スクリプトを作成する場合は、UTF-8シグネチャを含めることを忘れないでください。エンコード方式のインディケータを参照してください。

Unicode対応のC API

7.0より前のEssbaseリリースで使用されていたカスタム作成されたクライアント・プログラムは、これらのカスタム・プログラムが短い文字列および短いバッファを使用しているため、Unicodeモードのアプリケーションでは使用できません。

Unicodeモードのアプリケーションへの制限されたアクセスを提供するために、これらのプログラムの記述方法によっては、EssbaseのUnicode対応リリースで古いカスタム・クライアント・プログラムを再コンパイルできます。再コンパイルされると、これらのプログラムは、長いバッファおよび短い文字列で動作します。

Unicodeモードのアプリケーションと非Unicodeモードのアプリケーションへの完全なアクセスのためには、EssbaseのUnicode対応のAPI関数を使用して既存のカスタム・アプリケーションを変更する必要があります。書き換えられ、コンパイルされたクライアントは、Unicodeで完全にサポートされるため、長いバッファおよび長い文字列で動作します。『Oracle Essbase APIリファレンス』を参照してください。

テキストのエンコード方式とロケールの特定

Essbaseは、Unicodeモードのアプリケーションでの、非Unicodeでエンコードされたファイル(レポートや計算スクリプトなど)の使用をサポートしています。ファイルのエンコード方式の種類を識別するために、Essbaseではエンコード方式のインディケータ(UTF-8シグネチャまたはロケール・インディケータ)を探します。ファイルにどちらのエンコード方式のインディケータも含まれておらず、そのファイルがEssbaseサーバー上にない場合、Administration Servicesはユーザーにファイルのロケールを入力するよう求めます。エンコード方式のインディケータを参照してください。

Essbase Unicodeファイル・ユーティリティには、テキスト・ファイルにUTF-8シグネチャまたはロケール・インディケータを挿入するためのオプションが含まれています。または、テキスト・エディタやその他の手段を使用して挿入もできます。Essbase Unicodeファイル・ユーティリティを参照してください。

Unicode対応の管理ツール

Unicodeモードのアプリケーションを管理するために、Administration ServicesおよびMaxLシェルを使用できます。Unicodeモードのクライアントである管理サービス・コンソールでは、Unicodeモードのアプリケーションと非Unicodeモードのアプリケーションを管理できます。

Unicodeに関連した管理操作には、EssbaseサーバーのUnicode関連モードを、次の機能を使用可能または使用不可にするように変更することが含まれます:

  • Unicodeモードのアプリケーションの作成

  • 非UnicodeモードのアプリケーションのUnicodeモードへの移行

  • EssbaseサーバーおよびアプリケーションのUnicode関連ステータスの表示

Unicodeモードのアプリケーションの管理を参照してください。

取得ツール

Essbaseには、Unicodeモードのアプリケーションおよび非Unicodeモードのアプリケーションからデータを取得するためのいくつかの方法が用意されています。

レポート・スクリプト

レポート・スクリプトの出力ファイルは、アプリケーションのエンコード方式でエンコードされます。たとえば、レポート・スクリプトがUnicodeモードのアプリケーション内のデータベースに対して実行された場合、そのレポート・スクリプトの出力はUTF-8でエンコードされます。非Unicodeモードのアプリケーション内のデータベースに対して実行された場合、その出力はアプリケーションのエンコード方式でエンコードされます。

スプレッドシート

Smart Viewでは、Unicodeモードのアプリケーションおよび非Unicodeモードのアプリケーションでデータを表示できます。

Smart Viewを実行するには、Provider Servicesに接続します。これらのプログラムをインストールするには、Oracle Enterprise Performance Management System Installation and Configuration Guideを参照してください。

Smart Viewの操作方法については、Oracle Hyperion Smart View for Office User's Guideを参照してください。

SQLインタフェース

SQLインタフェースを使用すると、Unicodeモードのリレーショナル・データベースからUnicodeモードのEssbaseアプリケーションにデータをロードできます。表125は、Unicodeモードのアプリケーションおよび非Unicodeモードのアプリケーションでサポートされているエンコード方式を示しています:

表 125. SQLインタフェースでサポートされているUnicodeモードのアプリケーションおよび非Unicodeモードのアプリケーションのエンコード方式

アプリケーションのモード

リレーショナル・データベースのエンコード方式

非Unicode

サポートされる非Unicodeエンコード方式

Unicode

サポートされる非Unicodeエンコード方式

Unicode

UTF-8

SQLインタフェースでは、UTF-8エンコード方式のユーザー認証(ユーザー名とパスワード)およびアプリケーション情報が受け入れられます。

サポートされているロケールを参照してください。

Sample_U.Basic

Unicodeモードのアプリケーションの詳細を学習するには、Sample_U.Basicアプリケーションを使用します。Sample_U.Basicのメンバー名は英語で表示されます。

表126は、Sample_U.Basicデータベースに含まれている英語以外の別名テーブルとそのインポート・ファイルを示しています:

表 126. Sample_U.Basicデータベース内の英語以外の別名テーブル

言語

英語以外の別名テーブル

中国語

nameschn.alt

ドイツ語

namesger.alt

日本語

namesjpn.alt

ロシア語

namesrsn.alt