ACCESSDATA コマンド

さまざまな ODBC 準拠データ ソースからデータをインポートします。

64 ビットと 32 ビットのどちらの ODBC ドライバーを使用するかによって、このコマンドは ACCESSDATA64 または ACCESSDATA32 という形を取ります。

構文

{ACCESSDATA64 | ACCESSDATA32} {CONNECTOR | ODBC {"Driver"|"Dsn"|"File"}} NAME  <USER ユーザー ID> <PASSWORD 数値 | PROMPT_PASSWORD> TO テーブル名 CHARMAX 最大フィールド長 MEMOMAX 最大フィールド長 ALLCHARACTER SOURCE (接続設定) <HASH(ソルト値, フィールド)>
SQL_QUERY
(SQL 構文)
END_QUERY

パラメーター

名前 説明
CONNECTOR | ODBC {"Driver"|"Dsn"|"File"}

行いたい ODBC 接続の種類。

  • CONNECTOR – ネイティブの Analytics データ コネクターを使って接続する
  • ODBC "Driver" – お使いのコンピューターにインストールされている Windows ODBC ドライバーを使って接続する
  • ODBC "Dsn" – お使いのコンピューターに保存されている DSN(データ ソース名)を使って接続する
  • ODBC "File" – DSN ファイル(保存されている .dsn ファイル)を使って接続する
NAME

Analytics データ コネクター、ODBC ドライバー、または DSN の名前。

例:

  • NAME "Amazon Redshift"
  • NAME "Microsoft Access Driver (*.mdb, *.accdb)"
  • NAME "My Excel DSN"
  • NAME "excel.dsn"

USER ユーザーID

省略可能

ユーザー ID が必要なデータ ソースのユーザー ID。

PASSWORD 数値 | PROMPT_PASSWORD

省略可能

パスワードが必要なデータソース:

  • PASSWORD 数値 – 数値のパスワード定義を使用します。
  • PROMPT_PASSWORD - パスワード プロンプトを表示します。

    パスワード プロンプトでは、ユーザー ID を変更できます。

PASSWORD 数値を使用する場合は、以前に作成したパスワード定義を指定する必要があります。詳細については、PASSWORD コマンドSET コマンドを参照してください。

ヒント

PASSWORD コマンドを PASSWORD パラメーターnum とともに使用すると、PROMPT_PASSWORD の使用と同様の結果になります。両方のアプローチでユーザーにパスワードを要求します。PROMPT_PASSWORD にはユーザー ID を変更できるという利点があります。

TO テーブル名

コマンドの結果を送信する場所:

  • テーブル名は、結果の保存先となる Analytics テーブルのことです。

    テーブル名には、ファイル拡張子 .FIL を付けた文字列を引用符で囲んで指定する必要があります。例:TO "Output.FIL"

    デフォルトでは、テーブル データ ファイル(.fil)は、Analytics プロジェクトが入っているフォルダーに保存されます。

    既存の異なるフォルダーにデータ ファイルを保存するには、絶対または相対ファイル パスを指定します。

    • TO "C:\Output.FIL"
    • TO "Results\Output.FIL"

    メモ

    テーブル名は 64 文字の英数字(.FIL 拡張子を含まない)に制限されています。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。

CHARMAX 最大フィールド長

インポートしているソースの文字データから発生する Analytics テーブルの任意のフィールドの文字の最大長。

デフォルト値は 50 です。最大フィールド長を超えるデータは、Analytics にインポートすると切り捨てられます。

MEMOMAX 最大フィールド長

インポートするテキスト、ノート、またはメモ フィールドの文字の最大長。

デフォルト値は 100 です。最大フィールド長を超えるデータは、Analytics にインポートすると切り捨てられます。

ALLCHARACTER

省略可能

インポートされたすべてのフィールドには、自動的に文字のデータ型が割り当てられます。

Analytics にインポートされたデータのフィールドには、数値や日付時刻などのさまざまなデータ型を割り当て、書式の詳細を指定することができます。

ヒント

ALLCHARACTER は、数値 ID 値を含むテーブルをインポートする際に有効な場合があります。ALLCHARACTER を使用すると、Analytics は自動的に数値データ型を、文字データ型を使用すべき値に割り当てることができません。

SOURCE 接続設定

データ ソースへの接続に必要な接続設定(接続文字列)。

HASH(salt 値, フィールド)

省略可能

暗号ハッシュ値として指定されたフィールドをインポートします。ハッシュ値は単方向の変換であり、フィールドのインポート後に復号化できません。

  • salt 値 フィールドの値のハッシュを強化するためにソース データ値と連結された英数字文字列。引用符で囲まれた文字列としてハッシュ値を入力します。

    ソルト値は 128 文字以下です。(  )  "

    文字は使用しないでください。
  • フィールド ハッシュ化する 1 つ以上のフィールドのリスト。引用符で囲まれた文字列としてフィールドを入力し、各フィールドをカンマで区切ります。

    データソースの物理フィールド名ではなく、[データ アクセス]ウィンドウ プレビューとステージング領域に表示されるフィールド名を指定する必要があります。

    メモ

    [データ アクセス]ウィンドウ プレビューに表示されるフィールド名は、SQL クエリ("フィールド名" AS "エイリアス")のフィールド エイリアス値です。エイリアス値を使用して、フィールドを参照する必要があります。

HASH("QZ3x7", "SSN_NO, CC_NO, Last_Name")

ACLScript でのハッシュ値のインポート中におけるハッシュ値の比較については、ACCESSDATA でハッシュ化されたデータを ACLScript HASH( ) 関数でハッシュ化されたデータと比較するを参照してください。

SQL_QUERY (SQL構文) END_QUERY

SQL のインポート文。

丸括弧内はすべて SQL クエリの構成要素のため有効な SQL である必要があります。

ネイティブの Analytics データ コネクターを使用してデータをインポートする

Amazon Redshift クラウド データ サービスからのデータをインポートする必要があるとします。そうするには、Analytics Amazon Redshift データ コネクターを使用します。

ACCESSDATA64 CONNECTOR NAME "Amazon Redshift" USER "ACL_user" PROMPT_PASSWORD TO "Entitlement_History.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( boolsaschar=0;cachesize=100;database=usage;declarefetchmode=0;maxbytea=255;maxlongvarchar=8190;maxvarchar=255;port=5439;servername=acl_test.highbond.com;singlerowmode=1;sslmode=require;textaslongvarchar=0;usemultiplestatments=0;useunicode=1)
  SQL_QUERY(
    SELECT
      "entitlement_history"."organization" AS "organization",
      "entitlement_history"."user_email" AS "user_email",
      "entitlement_history"."plan_id" AS "plan_id",
      "entitlement_history"."date_from" AS "date_from",
      "entitlement_history"."date_to" AS "date_to"
    FROM
      "prm"."entitlement_history" "entitlement_history"
) END_QUERY

Windows ODBC ドライバーを使用してデータをインポートする

Microsoft Access データベースからデータをインポートする必要があるとします。インポートを行うには、Windows ODBC ドライバーを使用して MS Access に接続します。

ACCESSDATA32 ODBC "Driver" NAME "Microsoft Access Driver (*.mdb)" TO "Invoices.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( dbq=C:\Users\lachlan_murray\Documents\ACL Data\Sample Data Files\Sample.mdb;defaultdir=C:\Users\lachlan_murray\Documents\ACL Data\Sample Data Files;driverid=281;fil=MS Access;maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;threads=3;usercommitsync=Yes)
  SQL_QUERY(
    SELECT
      `Customer`.`CustID` AS `CustID`,
      `Customer`.`Company` AS `Company`,
      `Customer`.`Address` AS `Address`,
      `Customer`.`City` AS `City`,
      `Customer`.`Region` AS `Region`,
      `Customer`.`PostalCode` AS `PostalCode`,
      `Customer`.`Country` AS `Country`,
      `Customer`.`Phone` AS `Phone`,
      `Orders`.`OrderID` AS `OrderID`,
      `Orders`.`CustID` AS `Orders_CustID`,
      `Orders`.`ProdID` AS `ProdID`,
      `Orders`.`OrderDate` AS `OrderDate`,
      `Orders`.`Quantity` AS `Quantity`,
      `Product`.`ProdID` AS `Product_ProdID`,
      `Product`.`ProdName` AS `ProdName`,
      `Product`.`UnitPrice` AS `UnitPrice`,
      `Product`.`Descript` AS `Descript`,
      `Product`.`ShipWt` AS `ShipWt`
    FROM
      (`Customer` `Customer`
    INNER JOIN
      `Orders` `Orders`
          ON `Customer`.`CustID` = `Orders`.`CustID`
      )
INNER JOIN
    `Product` `Product`
      ON `Orders`.`ProdID` = `Product`.`ProdID`
WHERE
    (
      `Customer`.`Region` = 'BC'
      OR `Customer`.`Region` = 'WA'
    )
  ) END_QUERY

Windows DSN(データソース名)を使用してデータをインポートする

Microsoft Excel ファイルからデータをインポートする必要があるとします。インポートを行うには、Windows DSN を使用して Excel に接続します。

ACCESSDATA32 ODBC "Dsn" NAME "Excel Files" TO "Trans_April_15_cutoff.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( dbq=C:\Users\lachlan_murray\Documents\ACL Data\Sample Data Files\Trans_April.xls;defaultdir=C:\Users\lachlan_murray\Documents\ACL Data\Sample Data Files;driverid=1046;maxbuffersize=2048;pagetimeout=5)
  SQL_QUERY(
    SELECT
      `Trans_Apr_`.`CARDNUM` AS `CARDNUM`,
      `Trans_Apr_`.`AMOUNT` AS `AMOUNT`,
      `Trans_Apr_`.`TRANS_DATE` AS `TRANS_DATE`,
      `Trans_Apr_`.`CODES` AS `CODES`,
      `Trans_Apr_`.`CUSTNO` AS `CUSTNO`,
      `Trans_Apr_`.`DESCRIPTION` AS `DESCRIPTION`
    FROM
      `Trans_Apr$` `Trans_Apr_`
    WHERE
      (
          `Trans_Apr_`.`TRANS_DATE` <= {ts '2003-04-15 00:00:00'}
      )
  ) END_QUERY

備考

メモ

このコマンドの動作の詳細については、Analytics のヘルプを参照してください。

ODBC 接続設定と SQL インポート文の作成

ODBC 接続設定と SQL インポート文は例に示すように通常、きわめて長く複雑です。

ACCESSDATA コマンドのこれらの部分を最も簡単に作成するには、まず Analytics の Data Access ウィンドウを使ってターゲットのデータ ソースに接続してからデータをインポートします。次に、ログから、接続設定やインポート文など ACCESSDATA コマンド全体をコピーし、必要に応じてこのコマンドをカスタマイズします。

抑制されるパスワード値

Analytics のデータ アクセス ウィンドウを使用して ACCESSDATA コマンドを実行し、パスワードを入力すると、パスワード値はログに記録されません。PROMPT_PASSWORD パラメーターが代用されます。

ACCESSDATA ログ ファイル

2 つのログ ファイルは ACCESSDATA コマンドに関連付けられたトランザクションを記録し、データ接続が失敗した場合にトラブルシューティングで使用できます。

  • ServerDataAccess.log はデータをインポートする前のすべての作業とエラーを記録します

    場所:C:\Users\<ユーザー アカウント>\AppData\Local\ACL\ACL for Windows\Data Access\ServerDataAccess.log

    メモ

    ServerDataAccess.log の "Server" は Analytics がインストールされているコンピューターでローカルに実行されている Analytics のデータ アクセス コンポーネントを参照します。

  • DataAccess.log には、インポート操作に関する情報と、

    場所 ..\<Analytics プロジェクト フォルダー>\DataAccess.log

    にインポートしようとしているデータが含まれる Analytics プロジェクトに関する情報が記録されます。

ACCESSDATA でハッシュ化されたデータを ACLScript HASH( ) 関数でハッシュ化されたデータと比較する

ハッシュ データの未加工値を読み取れない場合でも、データの結合または分析時に役立ちます。

インポート中に ACCESSDATA でハッシュ化された値を、ACLScript の HASH( ) 関数を使用してハッシュ化された値と比較する場合は、Analytics の数値または日付時刻フィールドを文字値に変換し、データをハッシュ化する前に前後のスペースを切り取る必要があります。

文字に変換するときには、日付時刻フィールドは次の形式を使用する必要があります。

  • 日付時刻 "YYYY-MM-DD hh:mm:ss"
  • 日付 "YYYY-MM-DD"
  • 時刻 "hh:mm:ss"

次の例は、STRING( ) および ALLTRIM( ) 関数を使用して、ACLScript's HASH( ) 関数を使用して値をハッシュ化する前に、数値のクレジットカード番号フィールドをを文字データに変換します。

COMMENT ACL HASH 関数は、データのインポート後に使用されます
HASH(ALLTRIM(STRING(CC_No, 16)), "QZ3x7")

Analytics 値をハッシュ化すると、ACCESSDATA コマンド インポートの一部としてハッシュ化された値を比較できます。

ACL のスクリプト作成ガイド 14.1