問題タブ [polybase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - Azure SQL データ ウェアハウスで Polybase を使用して Hadoop (Azure IaaS) HDFS ファイルにアクセスする
Azure SQLDW で Polybase を使用して Cloudera Cluster (Azure で IaaS としてプロビジョニング) の HDFS の区切りファイルにアクセスしようとしていますが、次のエラーが発生しています。
メッセージ 105019、レベル 16、状態 1、行 40 EXTERNAL TABLE アクセスは、内部エラーが原因で失敗しました: 'HdfsBridge_IsDirExist の呼び出しで Java 例外が発生しました。Java 例外メッセージ: Call From DB55/10.0.0.59 to 10. . . :8020 がソケット タイムアウト例外で失敗しました: org.apache.hadoop.net.ConnectTimeoutException: チャネルの接続準備が整うのを待っている間に 20000 ミリ秒のタイムアウトが発生しました。ch : java.nio.channels.SocketChannel[connection-pending remote=10.56.140.31/10.56.140.31:8020]; 詳細については、 http ://wiki.apache.org/hadoop/SocketTimeout を参照してください。: エラー [DB55/10.0.0.59 から 10.56.140.31:8020 への呼び出しがソケット タイムアウト例外で失敗しました: org.apache.hadoop.net.ConnectTimeoutException: チャネルの接続準備が整うのを待っている間に 20000 ミリ秒のタイムアウトが発生しました。ch : java.nio.channels.SocketChannel[connection-pending remote=10. . . /10. . .*:8020]; 詳細については、次を参照してください: http://wiki.apache.org/hadoop/SocketTimeout]外部ファイルへのアクセス中に発生しました。
次の Polybase T-SQL スクリプトを使用しました。
マスターキーを作成します。
IDENTITY = 'user_name', Secret = 'password'; を使用して、データベース スコープの資格情報 HadoopUser1 を作成します。
CREATE EXTERNAL DATA SOURCE MyHadoopCluster WITH (
TYPE = HADOOP,
LOCATION ='hdfs://10. . : 8020',
RESOURCE_MANAGER_LOCATION = '10. . : 8032',
CREDENTIAL = HadoopUser1 );CREATE EXTERNAL FILE FORMAT TextFile WITH ( FORMAT_TYPE = DelimitedText, FORMAT_OPTIONS (FIELD_TERMINATOR = ',') );
CREATE EXTERNAL TABLE dbo.PolyCloudera ( Id INT NOT NULL, Number INT NOT NULL, ZIPCODE INT NOT NULL ) WITH ( LOCATION='/user/hive/warehouse/sample_poly', DATA_SOURCE=MyHadoopCluster, FILE_FORMAT=TextFile );
Cloudera Cluster と Azure SQLDW の間に接続の問題はありません (BCP、JDBC を使用して Cloudera Cluster から SQLDW インスタンスにデータを取り込むことができたため) Cloudera Cluster はまだ kerberized されていません。データベース スコープの資格情報で指定された user_name と password は、Cloudera Cluster の基盤となる Linux ファイル システムに存在します。この問題について何か助けていただければ幸いです。
azure - polybase で Unicode フィールド ターミネータを使用する
Azure BLOB ストレージに保存されている外部データの PolyBase 外部ファイル形式の定義を作成しているときに、フィールド ターミネータを Unicode 文字として指定するのに苦労しています。Unicode 文字を指定する理由は、Azure データ ファクトリを使用して Azure BLOB にデータを読み込むときに、\u0081のような Unicode 文字でない限り、コピー アクティビティが列区切り記号として複数の文字を指定することをサポートしないためです。