今すぐお試しください!

製品の詳細SQL Analysis Services PowerShell Cmdlets を確認して、無償評価版をダウンロード:

今すぐダウンロード

PowerShell でSQL Analysis Services Data データをCSV に落としてみた

標準PowerShell cmdlets を使ってSQL Analysis Services テーブルにアクセス。

CData Cmdlets Module for SQL Analysis Services は、直感的なSQL Analysis Services データ連携を提供する標準cmdlet です。 本記事では、SSAS Cmdlets を使ったサンプルを提供します。

Creating a Connection to Your SQL Analysis Services Data

接続するには、Url プロパティを有効なSQL Server Analysis Services エンドポイントに設定して認証を提供します。XMLA アクセスを使用して、HTTP 経由でホストされているSQL Server Analysis Services インスタンスに接続できます。 Microsoft ドキュメント configure HTTP access を参照してSQL Server Analysis Services に接続してください。

SQL をSQL Server Analysis Services に実行するには、ヘルプドキュメントの「Analysis Services データの取得」を参照してください。接続ごとにメタデータを取得する代わりに、CacheLocation を設定できます。

  • HTTP 認証

    AuthScheme を"Basic" または"Digest" に設定してUser とPassword を設定します。CustomHeaders に他の認証値を指定します。

  • Windows (NTLM)

    Windows のUser とPassword を設定して、AuthScheme をNTLM に設定します。

  • Kerberos およびKerberos Delegation

    Kerberos を認証するには、AuthScheme をNEGOTIATE に設定します。Kerberos 委任を使うには、AuthScheme をKERBEROSDELEGATION に設定します。必要があれば、User、Password およびKerberosSPN を設定します。デフォルトでは、本製品は指定されたUrl でSPN と通信しようと試みます。

  • SSL/TLS:

    デフォルトでは、本製品はサーバーの証明書をシステムの信頼できる証明書ストアと照合してSSL/TLS のネゴシエーションを試みます。別の証明書を指定するには、利用可能なフォーマットについてヘルプドキュメントの「SSLServerCert」プロパティを参照してください。

You can then access any cube as a relational table: When you connect the data provider retrieves SSAS metadata and dynamically updates the table schemas. Instead of retrieving metadata every connection, you can set the CacheLocation property to automatically cache to a simple file-based store.

See the Getting Started section of the CData documentation, under Retrieving Analysis Services Data, to execute SQL-92 queries to the cubes.

$conn = Connect-SSAS  -User "$User" -Password "$Password" -URL "$URL"

Selecting Data

Follow the steps below to retrieve data from the Adventure_Works table and pipe the result into to a CSV file:

Select-SSAS -Connection $conn -Table Adventure_Works | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myAdventure_WorksData.csv -NoTypeInformation

You will notice that we piped the results from Select-SSAS into a Select-Object cmdlet and excluded some properties before piping them into an Export-Csv cmdlet. We do this because the CData Cmdlets append Connection, Table, and Columns information onto each "row" in the result set, and we do not necessarily want that information in our CSV file.

The Connection, Table, and Columns are appended to the results in order to facilitate piping results from one of the CData Cmdlets directly into another one.

Deleting Data

The following line deletes any records that match the criteria:

Select-SSAS -Connection $conn -Table Adventure_Works -Where "Fiscal_Year = FY 2008" | Remove-SSAS

Inserting and Updating Data

The cmdlets make data transformation easy as well as data cleansing. The following example loads data from a CSV file into SQL Analysis Services, checking first whether a record already exists and needs to be updated instead of inserted.

Import-Csv -Path C:\MyAdventure_WorksUpdates.csv | %{
  $record = Select-SSAS -Connection $SSAS -Table Adventure_Works -Where ("Id = `'"+$_.Id+"`'")
  if($record){
    Update-SSAS -Connection $ssas -Table Adventure_Works -Columns ("Fiscal_Year","Sales_Amount") -Values ($_.Fiscal_Year, $_.Sales_Amount) -Where ("Id = `'"+$_.Id+"`'")
  }else{
    Add-SSAS -Connection $ssas -Table Adventure_Works -Columns ("Fiscal_Year","Sales_Amount") -Values ($_.Fiscal_Year, $_.Sales_Amount)
  }
}

As always, our goal is to simplify the way you connect to data. With cmdlets users can install a data module, set the connection properties, and start building. Download Cmdlets and start working with your data in PowerShell today!

 
 
ダウンロード