# マッピングファイルにアクセスしてタイプマッピングを定義

## 手順

1. Talend Studioのメインウィンドウのツールバーで![\[Project settings\] (プロジェクト設定)](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/projectsettings.svg)をクリックするか、メニューバーで[File] (ファイル) &gt; [Edit Project Properties] (プロジェクトプロパティを編集)とクリックして[Project Settings] (プロジェクト設定)ダイアログボックスを開きます。
2. ダイアログボックスのツリービューで[General] (全般)を展開し、[Metadata of TalendType] (タイプのメタデータ)を選択して[Metadata of TalendType] (TalendTypeのメタデータ)ビューを開くと、Talend Studioで使用されているすべてのデータベースタイプのマッピングファイルがリスト表示されます。

   ![\[プロジェクト設定\]ダイアログボックス内の\[TalendTypeのメタデータ\]設定。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/PreferencesMetadataTalendType.png)

   必要に応じてマッピングファイルを変更するには、ファイルをダブルクリックまたは選択し、[Edit] (編集)ボタンをクリックして[Edit mapping file] (マッピングファイルの編集)ダイアログボックスを開いてXMLコードを直接変更します。

   ファイルタイプに応じて、右側のボタンを使って次のようなアクションが可能です:
   * デフォルトのデータマッピングファイルをインポート、エクスポート、編集、復元できます。デフォルトのデータマッピングファイルを変更すると、既存のデータマッピングファイルが上書きされます。変更後は、Talend Studioの現行バージョンに対応するTalendのデフォルトデータタイプのマッピングファイルに復元できます。

     Talend Studioのマンスリーアップデートを適用すれば、デフォルトデータタイプのマッピングファイルを自動的に移行できます。

   * ユーザー定義のデータマッピングファイルをインポート、エクスポート、編集、削除できます。

   デフォルトのデータマッピングファイルとユーザー定義のデータマッピングファイルを区別する場合は、そのファイルをクリックします。[Remove] (削除)ボタンが有効になっていれば、それはユーザー定義のデータマッピングファイルです。

   タイプマッピングを定義する時は、Talendタイプからデータベースタイプへ、そしてデータベースタイプからTalendタイプへの両方にマッピングする必要があります。
   * &lt;dbTypes&gt;エレメントとその子エレメントである&lt;dbType&gt;によって、サポートされるデータベースタイプが定義されます。マッピングファイルに新しいデータベースを追加するには、&lt;dbTypes&gt;エレメントの下に&lt;dbType&gt;エレメントを追加する必要があります。下の例では、BOOLEANとYESNOという2つのデータベースタイプを追加します。

     ```
     <dbType type="BOOLEAN"/>
     <dbType type="YESNO"/>
     ```

     日付タイプごとにデフォルトのパターンを設定できます。これにより、テーブルからスキーマを取得したり推測したりする際に、日付タイプのカラムの日付パターンを自動的に設定できるようになります。次の例では、DATEとDATETIMEという2つのデータベース型が追加されています。

     ```
     <dbType type="DATE" defaultPattern="yyyy-mm-dd"/>
     <dbType type="DATETIME" defaultPattern="yyyy-mm-dd hh:mm:ss.SSSSSS"/>
     ```

   * &lt;talendToDbTypes&gt;エレメントとその子エレメントである&lt;talendType&gt;エレメントによって、メタデータカラムでTalendタイプを設定する時に、提案されたデータベースタイプリストとデフォルトのデータベースタイプが定義されます。Talendタイプを1つまたは複数のデータベースタイプにマップするには、talendTypeエレメントを&lt;talendToDbTypes&gt;エレメントに追加する必要があります。下の例では、Talendタイプid\_BooleanがBOOLEANとYESNOという2つのデータベースタイプにマップされています。

     ```
     <talendType type="id_Boolean">
     	<dbType type="BOOLEAN"/>
     	<dbType type="YESNO"/>
     </talendType>
     ```

   * &lt;dbToTalendTypes&gt;エレメントとその子エレメントである&lt;dbType&gt;によって、データベースからスキーマを取得する時に、提案されたTalendタイプリストとデフォルトのTalendタイプが定義されます。データベースタイプを1つまたは複数のTalendタイプにマップするには、dbTypeエレメントを&lt;dbToTalendTypes&gt;エレメントに追加する必要があります。下の例では、データベースYESNOがTalendタイプid\_Booleanにマップされています。

     ```
     <dbType type="YESNO">
     	<talendType type="id_Boolean"/>
     </dbType>
     ```

   情報メモ注: Talendタイプマッピングファイルにあるdefault、defaultLength、defaultPrecision、ignoreLen、ignorePre、preBeforelenの各属性は考慮されません。新しいタイプマッピングを定義する時にこれらの属性を追加する必要はありません。

   Accessデータベース用のXMLメタデータマッピングファイルは次のとおりです。
   ```
   <?xml version="1.0"?>
   <mapping>
       <dbms product="ACCESS" id="access_id" label="Mapping Access" default="true">
           <dbTypes>
               <dbType type="BIT" ignoreLen="true" ignorePre="true"/>
               <dbType type="BOOLEAN" ignoreLen="true" ignorePre="true"/>
               <dbType type="COUNTER"/>
               <dbType type="DATE" ignoreLen="true" ignorePre="true"/>
               <dbType type="DOUBLE" ignoreLen="true" ignorePre="true"/>
               <dbType type="DECIMAL" ignoreLen="true" ignorePre="true"/>
               <dbType type="FLOAT" ignoreLen="true" ignorePre="true"/>
               <dbType type="INTEGER" ignoreLen="true" ignorePre="true"/>
               <dbType type="NUMERIC" ignoreLen="true" ignorePre="true"/>
               <dbType type="REAL" ignoreLen="true" ignorePre="true"/>
               <dbType type="SMALLINT" ignoreLen="true" ignorePre="true"/>
               <dbType type="TINYINT" ignoreLen="true" ignorePre="true"/>
               <dbType type="TIME" ignoreLen="true" ignorePre="true"/>
               <dbType type="TIMESTAMP" ignoreLen="true" ignorePre="true"/>
               <dbType type="VARCHAR" default="true" defaultLength="200" ignorePre="true"/>
               <dbType type="DATETIME" ignoreLen="true" ignorePre="true"/>
               <dbType type="MEMO" ignoreLen="true" ignorePre="true"/>
               <dbType type="YESNO" ignoreLen="true" ignorePre="true"/>
           </dbTypes>

           <language name="java">
               <talendToDbTypes>
                   <!-- Adviced mappings  -->
                   <talendType type="id_List"/>
                   <talendType type="id_Boolean">
                       <dbType type="YESNO" default="true"/>
                       <dbType type="BOOLEAN"/>
                   </talendType>
                   <talendType type="id_Byte">
                       <dbType type="TINYINT" default="true"/>
                       <dbType type="SMALLINT"/>
                       <dbType type="INTEGER"/>
                   </talendType>
                   <talendType type="id_byte[]"> </talendType>
                   <talendType type="id_Character">
                       <dbType type="VARCHAR" default="true"/>
                   </talendType>
                   <talendType type="id_Date">
                       <dbType type="DATE" default="true"/>
                       <dbType type="TIMESTAMP"/>
                       <dbType type="TIME"/>
                       <dbType type="DATETIME"/>
                   </talendType>
                   <talendType type="id_BigDecimal">
                       <dbType type="NUMERIC" default="true"/>
                       <dbType type="DOUBLE"/>
                       <dbType type="FLOAT"/>
                       <dbType type="DECIMAL"/>
                       <dbType type="REAL"/>
                   </talendType>
                   <talendType type="id_Double">
                       <dbType type="DOUBLE" default="true"/>
                       <dbType type="NUMERIC"/>
                       <dbType type="FLOAT"/>
                       <dbType type="DECIMAL"/>
                       <dbType type="REAL"/>
                   </talendType>
                   <talendType type="id_Float">
                       <dbType type="FLOAT" default="true"/>
                       <dbType type="DOUBLE"/>
                       <dbType type="NUMERIC"/>
                       <dbType type="DECIMAL"/>
                       <dbType type="REAL"/>
                   </talendType>
                   <talendType type="id_Integer">
                       <dbType type="INTEGER" default="true"/>
                       <dbType type="SMALLINT"/>
                       <dbType type="TINYINT"/>
                       <dbType type="COUNTER"/>
                   </talendType>
                   <talendType type="id_Long">
                       <dbType type="INTEGER" default="true"/>
                       <dbType type="SMALLINT"/>
                       <dbType type="TINYINT"/>
                       <dbType type="COUNTER"/>
                   </talendType>
                   <talendType type="id_Object"> </talendType>
                   <talendType type="id_Short">
                       <dbType type="SMALLINT" default="true"/>
                       <dbType type="INTEGER"/>
                       <dbType type="TINYINT"/>
                       <dbType type="COUNTER"/>
                   </talendType>
                   <talendType type="id_String">
                       <dbType type="VARCHAR" default="true"/>
                       <dbType type="MEMO"/>
                   </talendType>
               </talendToDbTypes>
               <dbToTalendTypes>
                   <dbType type="BIT">
                       <talendType type="id_Boolean" default="true"/>
                   </dbType>
                   <dbType type="BOOLEAN">
                       <talendType type="id_Boolean" default="true"/>
                   </dbType>
                   <dbType type="COUNTER">
                       <talendType type="id_Integer" default="true"/>
                   </dbType>
                   <dbType type="DATE">
                       <talendType type="id_Date" default="true"/>
                   </dbType>
                   <dbType type="DECIMAL">
                       <talendType type="id_Double"/>
                       <talendType type="id_BigDecimal" default="true"/>
                       <talendType type="id_Float"/>
                   </dbType>
                   <dbType type="DOUBLE">
                       <talendType type="id_Double" default="true"/>
                       <talendType type="id_BigDecimal"/>
                       <talendType type="id_Float"/>
                   </dbType>
                   <dbType type="FLOAT">
                       <talendType type="id_Float" default="true"/>
                       <talendType type="id_BigDecimal"/>
                       <talendType type="id_Double"/>
                   </dbType>
                   <dbType type="INTEGER">
                       <talendType type="id_Integer" default="true"/>
                       <talendType type="id_Short"/>
                       <talendType type="id_Long"/>
                       <talendType type="id_Byte"/>
                   </dbType>
                   <dbType type="NUMERIC">
                       <talendType type="id_Float"/>
                       <talendType type="id_BigDecimal" default="true"/>
                       <talendType type="id_Double"/>
                   </dbType>
                   <dbType type="REAL">
                       <talendType type="id_Float" default="true"/>
                       <talendType type="id_BigDecimal"/>
                       <talendType type="id_Double"/>
                   </dbType>
                   <dbType type="SMALLINT">
                       <talendType type="id_Short" default="true"/>
                       <talendType type="id_Integer"/>
                       <talendType type="id_Long"/>
                       <talendType type="id_Byte"/>
                   </dbType>
                   <dbType type="TINYINT">
                       <talendType type="id_Byte" default="true"/>
                       <talendType type="id_Integer"/>
                       <talendType type="id_Short"/>
                       <talendType type="id_Long"/>
                   </dbType>
                   <dbType type="TIME">
                       <talendType type="id_Date" default="true"/>
                   </dbType>
                   <dbType type="TIMESTAMP">
                       <talendType type="id_Date" default="true"/>
                   </dbType>
                   <dbType type="VARCHAR">
                       <talendType type="id_String" default="true"/>
                   </dbType>
                   <dbType type="DATETIME">
                       <talendType type="id_Date" default="true"/>
                   </dbType>
                   <dbType type="MEMO">
                       <talendType type="id_String" default="true"/>
                   </dbType>
                   <dbType type="YESNO">
                       <talendType type="id_Boolean" default="true"/>
                   </dbType>
               </dbToTalendTypes>
           </language>
       </dbms>
   </mapping>
   ```