ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →無償トライアル:
無償トライアルへ製品の情報と無償トライアルへ:
SASxpt ODBC Driver を使って、ODBC 接続をサポートするあらゆるアプリケーション・ツールからSAS xpt (XPORT) ファイルデータにデータ連携。
SAS xpt (XPORT) ファイルにデータベースと同感覚でアクセスして、使い慣れたODBC インターフェースで連携。
古川えりか
コンテンツスペシャリスト
CData ODBC Driver for SASXpt は、Microsoft のビルトインODBC サポートを使用して、追加設定なしで連携を可能にします。ODBC ドライバーは、PowerShell から実際のSAS xpt データへの連携を即座に実現します。
PowerShell に組み込まれている.NET Framework Provider for ODBC を使用して、SAS xpt を他のデータベースに複製するなどの統合タスクを素早く自動化できます。この記事では、SAS xpt をSQL Server に5 行のコードで複製する方法を説明します。
PowerShell コードを記述し、SAS xpt のダウンロード以下の例を参照してください。
未指定の場合は、初めにODBC DSN(data source name)で接続プロパティを指定します。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC Data Source Administrator を使用して、ODBC DSN を作成および構成できます。
URI をSASXpt ファイルを格納しているフォルダに設定すると、ローカルのSASXpt ファイルに接続できます。
Amazon S3 ソースに接続してSASXpt ファイルを読み込むことができます。以下のプロパティを設定して接続します:
ADLS Gen2 に接続してSASXpt ファイルを読み込むことができます。以下のプロパティを設定して接続します:
以下のコードは、DSN を使用してPowerShell でデータソースへの接続を初期化する方法を説明します。
$conn = New-Object System.Data.Odbc.OdbcConnection
$conn.ConnectionString = "DSN=CData SASXpt Source x64"
キャッシュを有効にした後、以下のコードを使用して、データをSQL Server に複製できます。
次の接続プロパティを設定し、キャッシュデータベースを構成します。
CacheProvider:ADO.NET プロバイダの名前です。これは、ご使用のバージョンの.NET のMachine.config にあります。例として、SQL Server を構成するにはSystem.Data.SqlClient と入力します。
CacheConnection:データベースの接続に必要なプロパティの接続文字列です。以下はSQL Server の一例です。
Server=localhost;Database=RSB;User Id=sqltest;Password=sqltest;
この例のSQL クエリを使用して、スキーマを含むキャッシュされたテーブル全体を更新できます。既存のキャッシュはすべて削除されます。
$conn.Open()
# Create and execute the SQL Query
$SQL = "CACHE DROP EXISTING SELECT * FROM " + $SampleTable_1
$cmd = New-Object System.Data.Odbc.OdbcCommand($sql,$conn)
$count = $cmd.ExecuteNonQuery()
$conn.Close()
ドライバーを使用すると、キャッシュ機能を完全に制御できます。その他のキャッシュコマンドと使用例については、ヘルプドキュメントを参照してください。他のデータベースに複製する手順についても、ヘルプドキュメントを参照してください。
PowerShell でSAS xpt を取得するには、OdbcDataAdapter メソッドのFill メソッドを呼び出します。データ操作コマンドを実行するには、OdbcCommand オブジェクトを初期化してからExecuteNonQuery を呼び出します。以下は、.NET Framework Provider for ODBC を介した、SAS xpt への コマンドの例です。
$sql="SELECT Id, Column1 from SampleTable_1"
$da= New-Object System.Data.Odbc.OdbcDataAdapter($sql, $conn)
$dt= New-Object System.Data.DataTable
$da.Fill($dt)
$dt.Rows | foreach {
$dt.Columns | foreach ($col in dt{
Write-Host $1[$_]
}
}