2015-01-06 3 views
1

Windows Azure HDInsights Hadoop 클러스터를 사용하고 있으며 거기에서 하이브 테이블을 SQL Azure 서버로 내보내려고합니다.하이브에서 sql로 Sqoop 내보내기가 걸렸습니다.

하이브 테이블은 실제로 간단합니다 (실제로는 현재 공백 문자 및 기타 특수 기호가없는 하나의 열 데이터로 구성됩니다). 서버 측에서, 그것도 다음 스키마와 테이블의 100 % 후 붙어 수출 몇 가지 이유를 들어

$tableName = 'exp' 

$connectionString = "jdbc:sqlserver://$sqlDatabaseServerName.database.windows.net;[email protected]$sqlDatabaseServerName;password=$sqlDatabasePassword;database=$databaseName" 

$exportDir = "wasb://[email protected]/" 

$sqoopDef = New-AzureHDInsightSqoopJobDefinition -Command "export --connect $connectionString --table $tableName --export-dir $exportDir --fields-terminated-by '\t' --lines-terminated-by '\n'" 

$sqoopJob = Start-AzureHDInsightJob -Cluster $clusterName -JobDefinition $sqoopDef -Debug -Verbose 
Wait-AzureHDInsightJob -WaitTimeoutInSeconds 3600 -Job $sqoopJob 

Write-Host "Standard Error" -BackgroundColor Green 
Get-AzureHDInsightJobOutput -Cluster $clusterName -JobId $sqoopJob.JobId -StandardError 
Write-Host "Standard Output" -BackgroundColor Green 
Get-AzureHDInsightJobOutput -Cluster $clusterName ;-JobId $sqoopJob.JobId -StandardOutput 

: 내보내는를 들어

CREATE TABLE exp (line [nvarchar] (100)) 

, 나는 다음과 같은 PS 스크립트를 사용하고 있습니다 오류 및 예외없이 시간 초과 후 맵핑 및 완료.

당분간 하둡의 데이터를 볼 수 있습니다 (다른 경로를 지정하면 예외가 발생 함). 하이브 데이터 스키마와 SQL 테이블 스키마가 일치하지 않으면 예외가 있습니다. SQL 측에서 성공적인 연결의 증거를 봅니다.

그리고 예, 연결할 수 있도록 SQL Server 방화벽을 구성했으며 Windows Azure 서비스도 허용됩니다.

다음에해야 할 일에 대한 제안 사항이 있습니까? 어떤 도움을 주시면 감사하겠습니다.

답변

0

은 지금까지 문제는 SQL 테이블에 대한 클러스터 된 인덱스의 생성에 의해 해결되었다 : 푸른 SQL이없이 데이터 업로드를 금지 같은

create clustered index exp_clustered_index on exp(line); 

보인다.