Informatica Cloud Mass Ingestionを使用してSnowflakeで半構造化データをロードする4つのステップ
データの量と複雑さが増す中、半構造化データはこれまで以上に一般的なものとなっています。半構造化データとは、あらかじめ設定されたデータモデルやスキーマに従って配列されていない情報のことです。半構造化データには豊富な情報が含まれるため、効率的な管理がより複雑になります。
半構造化データは、従来のリレーショナル・データベースには格納できず、ログ、xmlファイル、json、Avro、Parquetなどさまざまなファイル形式のデータが含まれます。
固定された厳密なスキーマがないため、半構造化されたデータ ストレージは困難です。複数のデータソースからのデータが別々のサイロに格納されているため、データ間の関係を解釈すると、効率的にデータを取り込み、処理し、分析することが難しくなります。
このように複雑な半構造化データを大規模に管理するためには、どのようにすればよいのでしょうか。
この記事では、インフォマティカのエンドツーエンドのIntelligent Data Management Cloud(IDMC)を使用して、Snowflakeへのデータの取り込みと処理を効率的に行う方法について説明します。IDMCは、クラウドネイティブで、AIを搭載し、メタデータ駆動型です。
IDMCを使用すると、さまざまなソースから大量のデータを迅速に取り込むことができます。これらのソースには、データベース、アプリケーション、ストリーミング、ファイルなどがあり、クラウドまたはオンプレミスのリポジトリに、あるいはリアルタイム分析用のメッセージングハブに取り込まれます。これにより、データ処理とレポーティングを支援します。
IDMCのデータ取り込みとレプリケーションサービスであるInformatica Cloud Mass Ingestionを使用すると、コーディングを必要とせずにSnowflakeにデータを取り込むことができます。
以下は、ハイレベルなユースケースのアーキテクチャ図です。クラウドデータレイクからクラウドデータウェアハウスにデータを移動させる方法を示しています。ここでは、IDMCのデータインジェストサービスに焦点を当ててみましょう。
Snowflakeに半構造化データをロードするための 4 つのステップ
Snowflakeに半構造化データをロードするために CMI を使用する主な利点には、次のようなものがあります。
- スピード: シンプルな 4 ステップのウィザード ベースのエクスペリエンスにより、データ インジェスト ジョブを数分で作成します。
- シンプルさ : すぐに使用できる接続性を備えた単一の統合されたクラウドネイティブ データ取り込みソリューションを使用して、データ取り込みを簡素化します。
- スケール: テラバイト単位のデータ、パターン、レイテンシーを取り込みます。データ制限なしでリアルタイムおよびバッチで大規模にこれを行うことができます。
- 柔軟性: 自動スキーマ ドリフト サポートにより、変更されたデータをリアルタイムで追跡、キャプチャ、および更新します。これにより、データベースのレプリケーションと同期のユースケースが加速されます。
Cloud Mass Ingestion は、4 つの異なる取り込みタスクに分類されます。これらは、アプリケーションの取り込み、データベースの取り込み、ファイルの取り込み、およびストリーミングの取り込みです。このブログ投稿では、ファイルの一括取り込みタスクのみを取り上げます。
ファイル取り込みタスクを使用して、Amazon Web Services (AWS) S3 からSnowflakeにデータを取り込む方法を見てみましょう。Informatica Cloud Mass Ingestion では、シンプルなコード不要の 4 ステップのウィザードでこれを行うことができます。
ステップ 1: 新しいファイル インジェスト タスクを作成する
このステップでは、データを取り込むために作成するアセット/タスク タイプを選択します。
- 「ファイル取り込みタスク」オプションを選択します
ステップ 2: [定義] タブでプロパティを設定する
このステップでは、ファイル インジェスト タスクのプロパティを定義します。
- タスク名 – タスク名を記載します。
- タスクの場所 – [参照] オプションを使用して、タスクを保存する必要がある場所を選択します。
- ランタイム環境– ドロップダウン メニューから選択します。
- 説明を追加 (オプション)します。
ステップ 3: [ソース] タブで、接続の詳細を設定する
このステップでは、タスクのソース接続の詳細とプロパティを設定します。
- ソースの種類 –接続の種類として「ソース接続」を選択します。
- 接続タイプ – Informatica が提供するさまざまな接続カテゴリから、このタスクに使用する適切なソース接続タイプを選択します。この場合は「AWS S3」です。
- 接続名 – ドロップダウンから接続の名前を選択します。
- ファイル ピックアップ --特定のパターンに一致するファイルを選択するオプションとして [パターン別] を選択します。
- パターン: “*.json” – 次に、ファイル拡張子が json の S3 接続からすべてのファイルを選択します。
残りの設定は「そのまま」残すことが可能です。
ステップ 4: 「ターゲット」タブで、ターゲット情報を設定する
ターゲットの詳細:
- 接続タイプ – ドロップダウン メニューから Snowflake 接続タイプを選択します
- 接続名 - ドロップダウン メニューからターゲット接続名を選択します。
ターゲット オプション:
- 倉庫 – スノーフレークの倉庫名を追加します。
- データベース – Snowflake のデータベース名を追加します。
- スキーマ – Snowflake のスキーマ名を追加します。
- ターゲット テーブル名 – アセットのターゲット テーブルを Snowflake に追加します。
- 役割 – Snowflake アカウントの役割を追加します。
- ファイル形式とコピー オプション – データを同じ json 形式でターゲットにロードします
これで終了です!Snowflake に半構造化データをロードするための構成がすべて設定されました。
構成の実行
次に、圧縮、解凍、暗号化、復号化、ファイルのウイルススキャンなどの操作を行いたい場合は、「Actions」タブで操作します。
[ランタイム オプション] タブでは、次のオプションから選択できます。
- ジョブをスケジュールします
- 通知機能を追加し、ジョブを並行して実行してパフォーマンスを向上させます
今のところ、デフォルトのオプションで続行します。一括取り込み構成タスクを単純に「保存」します。
それでは、ファイル インジェスト ジョブを実行しましょう。json 形式で Snowflake にデータをロードするファイル インジェスト タスクが正常に実行されたことがわかります。
次に、ファイル取り込みのジョブを実行してみましょう。ファイル取り込みタスクが正常に実行され、Snowflakeにjson形式でデータが取り込まれているのが確認できます。
さらに、json データをリレーショナル形式で Snowflake にロードするオプションもあります。
これは、同じファイル インジェスト タスクを使用して、ファイル形式を変更し、[ターゲット] タブでオプションをコピーすることで、手動でコーディングする必要はありません。
ステップ 4の[ターゲット] タブで、次のように設定します。
- 倉庫 – スノーフレークの倉庫名を追加します
- データベース – Snowflake のデータベース名を追加します
- スキーマ – Snowflake のスキーマ名を追加します
- ターゲット テーブル名 – アセットのターゲット テーブルをスノーフレークに追加します。
- 役割 – Snowflake アカウントの役割を追加します
- ファイル形式とコピーオプション - Snowflakeのjsonファイルとターゲットアセットのカラム名を一致させて、リレーショナル形式でターゲットにデータをロードします
一括取り込みタスクを保存して実行すると、ファイル取り込みタスクはデータをリレーショナル形式で Snowflake に正常に読み込みます。
そして、Snowflakeの「ターゲット」テーブルに対してクエリを実行すると、手動でコーディングすることなく、列名の一致に基づいて、json データがリレーショナル形式で Snowflake に正常に取り込まれたことがわかります。