1

Netezza IDE でクエリを実行し、結果を CSV ファイルの形式でエクスポートしたいと考えています。シェルやその他のスクリプトを使用して、同じことができる API はありますか?

SQL クエリを実行し、結果をテキスト ファイルまたは CSV ファイル (推奨) で取得できる、誰もが知っている Netezza で利用可能なシェルはありますか?

4

7 に答える 7

1

Netezza には、クライアント アプリケーションが NZ からデータを引き出すために使用できる ODBC ドライバーがあります。

また、nzsql コマンド ライン クエリ ツールを使用してデータをファイルに保存するシェル スクリプトを作成することもできます。私は、SQL を文字列フィールドとコンマ文字の連結として書く傾向があります。

SELECT FIELD1||','||FIELD2

これは、データベースの MPP の性質を利用できるため、多くの場合、クライアント アプリが実行するよりも高速なデータベース内の連結を実行します。

PowerShell 経由で ODBC 接続を使用して、Netezza からデータを引き出すことに成功しました。

$conn = new-object system.data.odbc.odbcconnection
$conn.connectionstring = "Driver={NetezzaSQL};servername=*SERVERNAME*;port=*PORT*;database=*DATABASE*;username=*USERNAME*;password=*PASSWORD*"
$conn.open()

$cmd = new-object System.Data.Odbc.OdbcCommand
$cmd.CommandText = [System.IO.File]::ReadAllText("C:\SQL\MySQLFile.sql")
$cmd.connection = $conn
$cmd.CommandTimeout = 0

$datareader = $cmd.ExecuteReader();
$stream = new-object System.IO.StreamWriter("C:\SQL\MyExportFile.csv", TRUE)

while ($datareader.Read()) { $stream.WriteLine($datareader[0]) }
$stream.close()
$datareader.close()
$conn.close()

SQL 自体がフィールド間にコンマを追加します。

于 2013-05-07T02:02:02.630 に答える
0

パイプで区切られたデータが必要で、フィールドがあまりない場合は、nzsql コマンドで指定するだけです。

nzsql -d $DB-u $USER-pw $PASS -h $HOST -c 
   "SELECT OTLT_KEY||'|'||NHS_OTL_CD||'|'||NPD_ST||'|'||NPD_CNTY||'|' 
   FROM OTL_NHS_RLTD" > ./OTL_NHS_RLTD.psv
于 2014-09-12T23:48:03.607 に答える
-1

nzsql -d $DB-u $USER-pw $PASS -h $HOST -c "SELECT OTLT_KEY||'|'||NHS_OTL_CD||'|'||NPD_ST||'|'||NPD_CNTY||'| ' FROM OTL_NHS_RLTD" > ./OTL_NHS_RLTD.psv

また

nzsql -d $DB-u $USER-pw $PASS -h $HOST -c "SELECT OTLT_KEY||'|'||NHS_OTL_CD||'|'||NPD_ST||'|'||NPD_CNTY||'| ' FROM OTL_NHS_RLTD" -o /path/OTL_NHS_RLTD.psv

于 2016-04-03T18:11:56.907 に答える