SELECT INTO ステートメント
SELECT INTO ステートメントを使って、書式付きデータをファイルにエクスポートできます。
SQL クエリを使ったデータのエクスポート
次のクエリは、comma-separated values(CSV)ファイルフォーマットにデータをエクスポートします。
SELECT City, CompanyName INTO [csv://[CData].[Default].Customers.txt] FROM [[CData].[Default].Customers] WHERE Country = 'US'ファイルURI で他のフォーマットを指定できます。利用可能な区切り文字はタブ、セミコロン、カンマです。デフォルトはカンマです。次の例は、tab-separated values(TSV)にエクスポートします。
SELECT City, CompanyName INTO [csv://[CData].[Default].Customers.txt;delimiter=tab] FROM [[CData].[Default].Customers] WHERE Country = 'US'
C#
String connectionString = "Server=127.0.0.1;Port=10000;TransportMode=BINARY"; using (ApacheHiveConnection connection = new ApacheHiveConnection(connectionString)) { ApacheHiveCommand cmd = new ApacheHiveCommand("SELECT City, CompanyName INTO [csv://[CData].[Default].Customers.txt] FROM [[CData].[Default].Customers] WHERE Country = 'US' ", connection); int rowsAffected = cmd.ExecuteNonQuery(); }
VB.NET
Dim connectionString As [String] = "Server=127.0.0.1;Port=10000;TransportMode=BINARY" Using connection As New ApacheHiveConnection(connectionString) Dim cmd As New ApacheHiveCommand("SELECT City, CompanyName INTO [csv://[CData].[Default].Customers.txt] FROM [[CData].[Default].Customers] WHERE Country = 'US'", connection) Dim rowsAffected As Integer = cmd.ExecuteNonQuery() End UsingURI で他のファイルフォーマットを指定できます。以下の例は、tab-separated values(TSV)にエクスポートします。
C#
String connectionString = "Server=127.0.0.1;Port=10000;TransportMode=BINARY"; using (ApacheHiveConnection connection = new ApacheHiveConnection(connectionString)) { ApacheHiveCommand cmd = new ApacheHiveCommand("SELECT * INTO [[CData].[Default].Customers] IN [csv://filename=c:/[CData].[Default].Customers.csv;delimiter=tab] FROM [[CData].[Default].Customers] WHERE Country = 'US'", connection); int rowsAffected = cmd.ExecuteNonQuery(); }
VB.NET
Dim connectionString As [String] = "Server=127.0.0.1;Port=10000;TransportMode=BINARY" Using connection As New ApacheHiveConnection(connectionString) Dim cmd As New ApacheHiveCommand("SELECT * INTO [[CData].[Default].Customers] IN [csv://filename=c:/[CData].[Default].Customers.csv;delimiter=tab] FROM [[CData].[Default].Customers] WHERE Country = 'US'", connection) Dim rowsAffected As Integer = cmd.ExecuteNonQuery() End Using