# Azure Cloud Storage プレビュー

Azure Cloud Storage は、テキスト、バイナリ ファイル、メディア、ログ、アプリケーションのバックアップなどの非構造化データに対応する、Microsoft のマネージド オブジェクト ストレージサービスです。ホット、クール、アーカイブのアクセス層をサポートし、地理冗長レプリケーションを提供するとともに、Microsoft Entra ID (旧 Azure Active Directory) と統合して安全なアクセス制御を実現します。

Qlik Talend Cloud は、ターゲット ストレージ アカウントのコンテナへの読み取りアクセス権を持つ Microsoft Entra ID アプリケーション (サービス プリンシパル) を使用して、Azure Cloud Storage に接続します。コネクタは、指定されたコンテナからファイルを取得し、ファイルの内容をサンプリングしてスキーマを自動的に検出し、ファイルの変更日付と時刻に基づいて増分データ レプリケーションを実行します。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Azure-Cloud-Storage.htm)

#### 機能スナップショット

便利なリンクやサポートされている機能など、このコネクタの概要について説明します。

| 機能/性能 | サポートの詳細 |
| --- | --- |
| サポートされている Qlik Talend Data Integration プロジェクト | [レプリケーション プロジェクト](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/data-replication-task.htm)のみ。データ パイプライン プロジェクトはサポートされていません。 |
| [ターゲットの更新方法](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Change-processing.htm) | レプリケーション タスク:<br><br><ul><li><p>変更を適用</p></li><li><p>変更の保存</p></li></ul><br><br>データ レイク タスクにデータをランディング:<br><br><ul><li><p>変更データキャプチャ (CDC)</p></li></ul> |
| [SaaSアプリケーションへの接続](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm#Managing) | 手動でのメタデータ生成は必要ありません。 |
| [スキーマの自動進化](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Schema) | [列のデータ型を変更] 操作のみサポートされています。 |
| LOB 列 (NCLOB、CLOB、BLOB) のレプリケーション | サポートされていません。 |
| スケジュールされた CDC | 必須。これにより、ソースの変更に応じてターゲットが最新の状態に保たれます。<br><br>レプリケーション タスクについては、「[タスクのスケジューリング](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Scheduli2)」を参照してください。<br><br>レイク ランディング タスクについては、「[レイク ランディング タスクの CDC のスケジュール設定](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/landing-datalakes-settings.htm#Scheduli2)」を参照してください。 |
| 通知 | 部分的にサポート<br><br>[動作変更時の通知の設定](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Notifications.htm) |
| 監視 | このコネクタではフル ロードは関係ないため、CDC のみ。<br><br>[個々のデータ タスクの監視](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Monitoring-data-tasks.htm) |
| JSON 列ペイロードの自動ネスト解除 | サポートされていません。ソース データセット内の JSON 列ペイロードは、ターゲット上で自動的にネスト解除されません。 |

## 認証の準備

データにアクセスするには、アカウント資格情報を使用して接続を認証する必要があります。

情報メモ使用するアカウントに、フェッチするテーブルへのアクセス権があることを確認してください。

Azure Cloud Storage アカウントを設定するには、次が必要です。

* Azure Storage アカウントを持つ Azure サブスクリプション。
* レプリケートするファイルを含む、ストレージ アカウント内の Blob コンテナ。
* クライアント シークレットを持つ Microsoft Entra ID アプリケーション登録。
* ストレージ アカウントまたは特定のコンテナを対象として、アプリケーションのサービス プリンシパルに割り当てられた Storage Blob Data Reader ロール。これは読み取り専用アクセスに推奨される最小限の権限ロールです。

Microsoft Entra ID アプリケーションを登録し、資格情報を取得するには:

1. [Azure](https://portal.azure.com/) アカウントにログインします。
2. [Microsoft Entra ID] &gt; [アプリの登録] &gt; [新規登録] に移動します。
3. アプリケーションに次の情報を入力します。
   * 名前: 名前を入力します (例: QlikDataIntegration)。
   * サポートされているアカウント タイプ: [この組織ディレクトリ内のアカウントのみ] を選択します。
4. [登録] をクリックします。
5. アプリケーションの [概要] ページで、 [アプリケーション (クライアント) ID] と [ディレクトリ (テナント) ID] の両方をコピーし、安全なファイルに保存します。
6. [証明書とシークレット] &gt; [クライアント シークレット] に移動し、[新しいクライアント シークレット] を選択します。
7. クライアント シークレットの説明を入力し、有効期限を選択します。
8. [追加] をクリックします。
9. クライアント シークレットの値をコピーし、安全なファイルに保存します。
10. Azure ポータルでストレージ アカウントを開き、 [アクセス制御 (IAM)] &gt; [追加] &gt; [ロールの割り当てを追加] に移動します。
11. [Storage Blob Data Reader] ロールを選択し、このロールを登録したばかりのアプリケーションに割り当てます。
12. [保存] をクリックします。

### 対応ファイル形式

* 区切り記号付きテキストファイル: `.csv`、`.tsv`、`.psv`、`.txt` (設定可能な区切り記号)
* JSON Lines: `.jsonl`
* Parquet: `.parquet`
* Avro: `.avro`
* Excel: `.xlsx` (1 つのワークブックに複数のワークシートがサポートされています。各シートの行が複製され、シート名が `_sdc_source_file` 列に追加されます)
* Gzip 圧縮ファイル: `.gz` (上記のいずれかの形式を含む)

## 接続の作成

詳細については、「[SaaSアプリケーションへの接続](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm)」を参照してください。

1. 必要な接続プロパティを入力します。

2. 接続名に接続の名前を入力します。

3. 接続メタデータを開くを選択して、作成時の接続のメタデータを定義します。

4. [作成] をクリックします。

接続の設定

| 設定 | 説明 |
| --- | --- |
| データ ゲートウェイ | ユース ケースに応じて Data Movement gateway を選択します。<br><br>情報メモ<br><br>Qlik Talend Cloud スターター サブスクリプションでは Data Movement gateway をサポートしていないため、この項目は使用できません。別のサブスクリプション ティアを利用しており、Data Movement gateway を使用しない場合は、 [None] (なし) を選択します。<br><br>Data Movement gateway の利点とそれを必要とするユース ケースの詳細については、「[Qlik データ ゲートウェイ - データ移動](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm)」を参照してください。 |
| 開始日 | ソースからターゲットにデータをレプリケートする必要がある日付を `MM/DD/YYYY` 形式で入力します。 |
| ストレージ アカウント名 | Azure ストレージ アカウントの名前。例: mystorageaccount (`https://` または `.blob.core.windows.net` は含めない)。 |
| コンテナ名 | Blob コンテナ名。例: my-container。 |
| テナント ID | テナント ID。 |
| テーブル | テーブルの構成によって、どのファイルが読み取られ、その内容がどのように解釈されるかが決定されます。各テーブル定義には、ファイル検索パターン、テーブル名、ファイル処理をカスタマイズするためのオプション設定が含まれます。 |
| クライアント ID | クライアント ID。 |
| クライアント シークレット | クライアント シークレット。 |

### テーブルの構成

テーブル構成の各エントリは、コンテナ内のファイルから派生した論理テーブルを表します。各テーブルに対して、次のプロパティを設定できます。

| プロパティ | 必須またはオプション | 説明 |
| --- | --- | --- |
| テーブル名 | 必須 | 論理テーブルの名前を指定します (例: `my_orders_csv`)。これが Qlik Talend Cloud のストリーム名になります。 |
| 検索パターン | 必須 | ファイル名に一致する正規表現を指定します (例: `.*\.csv$` はすべての CSV ファイルに一致します)。これを、コンテナ内のファイル名、または指定されている場合は指定されたディレクトリに適用します。 |
| ディレクトリ | オプション | ファイル検索を絞り込むために、コンテナ内のフォルダー パス プレフィックスを入力します (例: `exports/orders/`)。スキャンされるファイルを制限することで、パフォーマンスを向上させます。これは正規表現ではありません。 |
| プライマリ キー | オプション | プライマリ キーとして使用する列名のコンマ区切りリストを定義します (例: `id` または `id,date`)。CSV ファイルの場合はヘッダー項目名を使用し、JSONL ファイルの場合はトップレベルのオブジェクト キーを使用します。空のままにすると、フルテーブル レプリケーションが使用されます。入力すると、ファイルの変更時間に基づいて増分レプリケーションが有効になります。 |
| 日時項目の指定 | オプション | スキーマ検出時に自動的に検出されない場合でも、日付/時刻フィールドとして扱う列名をカンマで区切ってリストします (例: `created_at`、`updated_at`)。 |
| 区切り | オプション | 区切り記号付きテキスト ファイルのフィールド区切り記号を指定します。既定は `,` (カンマ) です。TSV ファイルには `\t` を、PSV ファイルには `\|` を使用します。指定しない場合、区切り記号はファイル拡張子に基づいて自動検出されます。 |

* 正確なスキーマ処理とデータの一貫性を確保するために、`.jsonl` ファイルと `.csv` ファイルを個別のテーブルとして構成します。
* 検索パターンに一致するすべての `.csv` ファイルに、同一の列名と順序を持つ一貫したヘッダー行が含まれていることを確認してください。
* 各テーブルに定義されているすべての `.jsonl` ファイルで、一貫したオブジェクト属性キーを使用してください。信頼性の高いスキーマ検出のため、キー名と構造は一致している必要があります。

### レプリケートされたテーブル

テーブルは、ユーザーが指定するテーブル構成で定義されます。各テーブルは、指定された検索パターン、および該当する場合はディレクトリ プレフィックスに一致する、Blob コンテナ内の一連のファイルに対応します。コネクタは、テーブルごとに最大 5 つのファイルをサンプリングし、5 行ごとに読み取り、ファイルごとに最大 1,000 レコードを分析することでテーブル スキーマを検出します。

プライマリ キーが設定されている場合、レプリケーションはファイルの更新タイムスタンプに基づいた増分アプローチを使用します。最後の同期ブックマーク後に変更されたファイルは、各抽出時に処理されます。プライマリ キーが指定されていない場合、毎回の実行時にテーブル全体が完全にレプリケートされます。

以下のシステム列がデフォルトで各テーブルに追加されます。

| 列 | 説明 |
| --- | --- |
| `_sdc_source_container` | レコードの取得元である Azure Blob コンテナの名前。 |
| `_sdc_source_file` | レコードを含むファイルのフルパス。Excel ファイルの場合、シート名が追加されます (例: `exports/q1.xlsx/Sheet1`)。 |
| `_sdc_source_lineno` | ファイル内のレコードの行番号。 |
| `_sdc_extra` | 検出されたスキーマと一致しない追加の解析フィールド (`.jsonl` ファイルのみ)。 |

## 制限と考慮事項

* ストレージ アカウント名は URL ではなく、名前のみで指定します。
* Gzip 圧縮ファイル (`.gz`) がサポートされています。コネクタは、内部ファイル形式を決定するために、gzip ヘッダーから元のファイル名を読み取ります。`--no-name` で作成された Gzip ファイル (ヘッダーにファイル名なし) はスキップされます。
* `.csv`、`.txt`、`.tsv`、`.psv`、または `.jsonl` の拡張のファイルは、gzip マジック バイトがチェックされ、ファイルに `.gz` 拡張がない場合でも透過的に解凍されます。
* ネストされた圧縮 (例: 別の `.gz` 内の `.gz` ファイル) はサポートされておらず、スキップされます。
* [検索パターン] フィールドは、グロブ パターンではなく、正規表現構文を使用します (例: `*.csv` の代わりに `.*\.csv$` を使用)。
* 認識された拡張子のないファイルはスキップされ、警告が発行されます。
* コネクタには、Azure API レート制限 (HTTP 429) および一時的なサーバー エラー (HTTP 500、502、503、504) に対して、指数関数的バックオフによる組み込みの再試行ロジックが含まれており、最大 5 回まで試行されます。
* ファイルのエンコーディングは UTF-8 である必要があります。