適用対象: Azure Data Factory
Azure Synapse Analytics
ヒント
Microsoft Fabric の Data Factory (企業向けのオールインワン分析ソリューション) を試してみてください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について確認してください。
この記事では、Azure Data Factory または Synapse Analytics パイプラインでコピー アクティビティを使用して、Spark からデータをコピーする方法について説明します。 これは、コピー アクティビティ全般の概要を説明するコピー アクティビティの概要の記事に基づいています。
Von Bedeutung
Spark コネクタ バージョン 2.0 では、ネイティブ Spark のサポートが強化されています。 ソリューションで Spark コネクタ バージョン 1.0 を使用している場合は、2025 年 9 月 30 日より前に Spark コネクタをアップグレードしてください。 バージョン 2.0 とバージョン 1.0 の違いについて詳しくは、こちらのセクションをご覧ください。
サポートされる機能
この Spark コネクタは、次の機能でサポートされます。
サポートされる機能 | IR |
---|---|
Copy アクティビティ (ソース/-) | ① ② |
Lookup アクティビティ | ① ② |
① Azure 統合ランタイム ② セルフホステッド統合ランタイム
コピー アクティビティによってソースまたはシンクとしてサポートされているデータ ストアの一覧については、サポートされているデータ ストアに関する記事の表を参照してください。
このサービスでは接続を有効にする組み込みのドライバーが提供されるので、このコネクタを使用してドライバーを手動でインストールする必要はありません。
前提条件
データ ストアがオンプレミス ネットワーク、Azure 仮想ネットワーク、または Amazon Virtual Private Cloud 内にある場合は、それに接続するようセルフホステッド統合ランタイムを構成する必要があります。
データ ストアがマネージド クラウド データ サービスである場合は、Azure Integration Runtime を使用できます。 ファイアウォール規則で承認されている IP にアクセスが制限されている場合は、Azure Integration Runtime の IP を許可リストに追加できます。
また、Azure Data Factory のマネージド仮想ネットワーク統合ランタイム機能を使用すれば、セルフホステッド統合ランタイムをインストールして構成しなくても、オンプレミス ネットワークにアクセスすることができます。
Data Factory によってサポートされるネットワーク セキュリティ メカニズムやオプションの詳細については、「データ アクセス戦略」を参照してください。
作業の開始
パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。
- データ コピー ツール
- Azure portal
- .NET SDK
- Python SDK
- Azure PowerShell
- REST API
- Azure Resource Manager テンプレート
UI を使用して Spark のリンク サービスを作成する
次の手順を使用して、Azure portal UI で Spark のリンク サービスを作成します。
Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンクされたサービス] を選択して、[新規] をクリックします。
- Azureデータファクトリー
- Azure Synapse
Spark を検索し、Spark コネクタを選択します。
サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。
コネクタの構成の詳細
次のセクションでは、Spark コネクタに固有の Data Factory エンティティの定義に使用されるプロパティについて詳しく説明します。
リンク サービスのプロパティ
Spark コネクタでバージョン 2.0 がサポートされるようになりました。 Spark コネクタのバージョンをバージョン 1.0 からアップグレードするには、このセクションを参照してください。 プロパティの詳細については、対応するセクションを参照してください。
バージョン 2.0
Spark のリンクされたサービス バージョン 2.0 では、次のプロパティがサポートされています。
プロパティ | 説明 | 必須 |
---|---|---|
type | type プロパティは Spark に設定します | はい |
version | 指定するバージョン。 値は 2.0 です。 |
はい |
ホスト | Spark サーバーの IP アドレスまたはホスト名 | はい |
port | Spark サーバーがクライアント接続のリッスンに使用する TCP ポート。 Azure HDInsight に接続する場合は、port で 443 を指定します。 | はい |
serverType | Spark サーバーの種類。 使用可能な値: SparkThriftServer |
いいえ |
thriftTransportProtocol | Thrift レイヤーで使用するトランスポート プロトコル。 使用可能な値: HTTP |
いいえ |
認証タイプ | Spark サーバーへのアクセスに使用する認証方法。 使用可能な値: Anonymous、UsernameAndPassword、WindowsAzureHDInsightService |
はい |
ユーザー名 | Spark サーバーへのアクセスに使用するユーザー名。 | いいえ |
パスワード | ユーザーに対応するパスワード。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 | いいえ |
httpPath | Spark サーバーに対応する部分的な URL。 | いいえ |
SSLを有効にする | サーバーへの接続が TLS を使用して暗号化されるかどうかを指定します。 既定値は、true です。 | いいえ |
サーバー証明書検証を有効にする | 接続時にサーバー SSL 証明書の検証を有効にするかどうかを指定します。 常にシステム 信頼ストアを使用します。 既定値は、true です。 |
いいえ |
connectVia (接続ビア) | データ ストアに接続するために使用される統合ランタイム。 詳細については、「前提条件」セクションを参照してください。 指定されていない場合は、既定の Azure Integration Runtime が使用されます。 | いいえ |
例:
{
"name": "SparkLinkedService",
"properties": {
"type": "Spark",
"version": "2.0",
"typeProperties": {
"host": "<cluster>.azurehdinsight.net",
"port": "<port>",
"authenticationType": "WindowsAzureHDInsightService",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
}
}
}
バージョン 1.0
Spark のリンク サービス バージョン 1.0 では、次のプロパティがサポートされています。
プロパティ | 説明 | 必須 |
---|---|---|
type | type プロパティは Spark に設定します | はい |
ホスト | Spark サーバーの IP アドレスまたはホスト名 | はい |
port | Spark サーバーがクライアント接続のリッスンに使用する TCP ポート。 Azure HDInsight に接続する場合は、port で 443 を指定します。 | はい |
serverType | Spark サーバーの種類。 使用可能な値: SharkServer、SharkServer2、SparkThriftServer |
いいえ |
thriftTransportProtocol | Thrift レイヤーで使用するトランスポート プロトコル。 使用可能な値: Binary、SASL、HTTP |
いいえ |
認証タイプ | Spark サーバーへのアクセスに使用する認証方法。 使用可能な値: Anonymous、Username、UsernameAndPassword、WindowsAzureHDInsightService |
はい |
ユーザー名 | Spark サーバーへのアクセスに使用するユーザー名。 | いいえ |
パスワード | ユーザーに対応するパスワード。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 | いいえ |
httpPath | Spark サーバーに対応する部分的な URL。 | いいえ |
SSLを有効にする | サーバーへの接続が TLS を使用して暗号化されるかどうかを指定します。 既定値は false です。 | いいえ |
trustedCertPath | TLS 経由で接続するときにサーバーを検証するための信頼された CA 証明書を含む .pem ファイルの完全なパス。 このプロパティは、セルフホステッド IR 上で TLS を使用している場合にのみ設定できます。 既定値は、IR でインストールされる cacerts.pem ファイルです。 | いいえ |
useSystemTrustStore | システムの信頼ストアと指定した PEM ファイルのどちらの CA 証明書を使用するかを指定します。 既定値は false です。 | いいえ |
allowHostNameCNMismatch | TLS 経由で接続するときに、CA が発行した TLS/SSL 証明書名がサーバーのホスト名と一致する必要があるかどうかを指定します。 既定値は false です。 | いいえ |
allowSelfSignedServerCert | サーバーからの自己署名証明書を許可するかどうかを指定します。 既定値は false です。 | いいえ |
connectVia (接続ビア) | データ ストアに接続するために使用される統合ランタイム。 詳細については、「前提条件」セクションを参照してください。 指定されていない場合は、既定の Azure Integration Runtime が使用されます。 | いいえ |
例:
{
"name": "SparkLinkedService",
"properties": {
"type": "Spark",
"typeProperties": {
"host": "<cluster>.azurehdinsight.net",
"port": "<port>",
"authenticationType": "WindowsAzureHDInsightService",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
}
}
}
データセットのプロパティ
データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事を参照してください。 このセクションでは、Spark データセットでサポートされるプロパティの一覧を示します。
Spark からデータをコピーするには、データセットの type プロパティを SparkObject に設定します。 次のプロパティがサポートされています。
プロパティ | 説明 | 必須 |
---|---|---|
type | データセットの type プロパティは、SparkObject に設定する必要があります | はい |
スキーマ | スキーマの名前。 | いいえ (アクティビティ ソースの "query" が指定されている場合) |
table | テーブルの名前。 | いいえ (アクティビティ ソースの "query" が指定されている場合) |
テーブル名 | スキーマがあるテーブルの名前。 このプロパティは下位互換性のためにサポートされています。 新しいワークロードでは、schema と table を使用します。 |
いいえ (アクティビティ ソースの "query" が指定されている場合) |
例
{
"name": "SparkDataset",
"properties": {
"type": "SparkObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Spark linked service name>",
"type": "LinkedServiceReference"
}
}
}
コピー アクティビティのプロパティ
アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、Spark ソースでサポートされるプロパティの一覧を示します。
ソースとしての Spark
Spark からデータをコピーするは、コピー アクティビティのソースの種類を SparkSource に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。
プロパティ | 説明 | 必須 |
---|---|---|
type | コピー アクティビティのソースの type プロパティを SparkSource に設定する必要があります | はい |
問い合わせ | カスタム SQL クエリを使用してデータを読み取ります。 例: "SELECT * FROM MyTable" 。 |
いいえ (データセットの "tableName" が指定されている場合) |
例:
"activities":[
{
"name": "CopyFromSpark",
"type": "Copy",
"inputs": [
{
"referenceName": "<Spark input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "SparkSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Spark のデータ型マッピング
Spark との間でデータをコピーするときに、サービス内で次の中間データ型マッピングが使用されます。 コピー アクティビティでソースのスキーマとデータ型がシンクにマッピングされるしくみについては、スキーマとデータ型のマッピングに関する記事を参照してください。
Spark データ型 | 中間サービスのデータ型 (バージョン 2.0 の場合) | 中間サービスのデータ型 (バージョン 1.0 の場合) |
---|---|---|
BooleanType | Boolean | Boolean |
ByteType | Sbyte | Int16 |
ShortType | Int16 | Int16 |
IntegerType | Int32 | Int32 |
LongType | Int64 | Int64 |
FloatType | Single | Single |
DoubleType | Double | Double |
DateType | DateTime | DateTime |
TimestampType | DateTimeOffset | DateTime |
StringType | String | String |
BinaryType | Byte[] | Byte[] |
DecimalType | Decimal | Decimal |
ArrayType | String | String |
StructType | String | String |
MapType | String | String |
TimestampNTZType | DateTime | DateTime |
YearMonthIntervalType | String | サポートされていません。 |
DayTimeIntervalType | String | サポートされていません。 |
Lookup アクティビティのプロパティ
プロパティの詳細については、Lookup アクティビティに関するページを参照してください。
Spark コネクタをアップグレードする
[ リンクされたサービスの編集] ページで、バージョンとして 2.0 を選択し、リンクされたサービス プロパティ バージョン 2.0 を参照してリンクされたサービスを構成します。
Spark のリンクされたサービス バージョン 2.0 のデータ型マッピングは、バージョン 1.0 とは異なります。 最新のデータ型マッピングについては、「Spark のデータ型マッピング」を参照してください。
Spark バージョン 2.0 とバージョン 1.0 の違い
Spark コネクタ バージョン 2.0 は新しい機能を提供し、バージョン 1.0 のほとんどの機能と互換性があります。 次の表に、バージョン 2.0 とバージョン 1.0 の機能の違いを示します。
バージョン 2.0 | バージョン 1.0 |
---|---|
SharkServer と SharkServer2 は、serverType ではサポートされていません。 |
SharkServer と SharkServer2 は、serverType でサポートされます。 |
バイナリと SASL は、thriftTransportProtocl ではサポートされていません。 |
バイナリと SASL は、thriftTransportProtocl でサポートされます。 |
ユーザー名認証の種類はサポートされていません。 | ユーザー名認証の種類をサポートします。 |
enableSSL の既定値は true です。 trustedCertPath 、useSystemTrustStore 、allowHostNameCNMismatch 、allowSelfSignedServerCert はサポートされていません。 enableServerCertificateValidation はサポートされています。 |
enableSSL の既定値は false です。 さらに、trustedCertPath 、useSystemTrustStore 、allowHostNameCNMismatch 、allowSelfSignedServerCert をサポートします。 enableServerCertificateValidation はサポートされません。 |
次のマッピングは、Spark データ型から、サービスによって内部的に使用される中間サービス データ型に使用されます。 TimestampType -> DateTimeOffset YearMonthIntervalType -> String 日中間隔タイプ -> 文字列 |
次のマッピングは、Spark データ型から、サービスによって内部的に使用される中間サービス データ型に使用されます。 TimestampType -> 日付時刻 一覧表示されているバージョン 2.0 でサポートされているその他のマッピングは、バージョン 1.0 ではサポートされていません。 |
関連コンテンツ
Copy アクティビティでソースおよびシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。