ETL(Extract, Transfer and Load)は、データ統合プロセスとしてよく知られています。利用可能なツールの数は圧倒的に多く(そのうちの1つがSSISです)、それらの中から選択するのは難しいかもしれません。SSISとは一体何なのか、そしてどのように役立つのでしょうか?この記事では、SSISの主な機能を説明し、それを実装するメリットとデメリットを紹介することで、別のETL製品のほうががよい場合について解説します。
SSIS とは?
SSISは、SQL Server Integration Serviceの略です。Microsoftによって開発されたSSISは、Microsoft SQL Serverデータベースのコンポーネントとしてデータの統合、変換、および移行タスクを実行します。アーキテクチャは4つの基本的な部分で構成されています。オブジェクトモデル、ランタイム、データフロー、サービスです。
オブジェクトモデル
オブジェクトモデルは、インテグレーションサービスの包括的な構造です。SSISは、オブジェクトモデルを書き換えた最新版のサービスで、開発者がパッケージをプログラミングしたり拡張したりできるよう、各種APIが含まれています
ランタイム
SSISのランタイムエンジンコンポーネントは、パッケージのワークフローを管理し、トランザクションも管理します。コンテナ、タスク、イベントなどのコンポーネントはランタイム実行ファイルです。
Data Flow
SSISデータフローエンジンは、様々なソースからデータを読み取り、データの移動と変換を管理します。これには、データフローコンポーネントと呼ばれるオブジェクトが含まれます。これらのオブジェクトには、ソース、デスティネーション、または変換があります。開発者は、データフローエンジンをプログラムして、コンポーネントの構成を自動化したり、カスタムコンポーネントを作成したりすることができます。
Service
統合サービスサービスは、SSIS パッケージストアに保存されているパッケージを監視するために SQL Server Management Studio と一緒に機能します。SSISの最も基本的な機能には必要ありませんが、パッケージをリストアップして監視するためには必要です。
SSIS の歴史
DTS(Data Transformation Services)は、MicrosoftがSSIS以前に製造していたレガシーソリューションでした。SQL Server 2005では、Microsoftチームは製品名を変更し、最新の技術にアップデートすることで事実上のリプレイスを行いました。次に登場したのが2008年のSQL Serverで、新しいソースやその他多くのアップデートが行われました。
SSIS 2012では、パッケージ構成の容易さやストレージの改善などの改良がなされました。SSIS 2014と2016では、個々のパッケージやプロジェクト全体のデプロイ機能、新しいソース、サポートの強化などの細かいものが追加されただけでした。
上記で述べたこれらが、現在のSSISビルドの最も重要な機能に直結しています。
SSIS で最も重要な機能
SSISには、データを効果的かつ包括的に管理するために必要な機能がたくさんあります。
1. ビルトイン・コネクタ(データソース/デスティネーション)
SSISの最新バージョンでは、ビルトイン・コネクタを介して最新のデータソースとの互換性が追加されました。これは、接続マネージャを使って行われます。ユーザーはマネージャのプロパティを設定して、必要な物理的接続を記述することができます。SSISは以下のデータに接続します。
- テスト、XML、Excelワークブック
- 参照データセットを含むリレーショナルデータベース
- メンテナンスや転送タスク、一時的な作業テーブルなどのためのSQL Server
- データマイニングモデル、ディメンションなどへのアクセスを可能にするAnalysisサービスのデータベースとプロジェクト
- WMI(Windows Management Instrumentation)、SMO(SQL Server Management Objects)、メッセージングキュー、メールサーバー。
2. タスクおよび変換
SSIS には多くのタスクや変換も組み込まれており、ソフトウェアをさらに使いやすくしています。データの集計、マージ、修正、配布を行います。SSISには、BI(ビジネスインテリジェンス)変換、行変換、行セット変換、分割および結合変換、監査変換、カスタム変換など、いくつかの異なる種類の変換が含まれています。
BI 変換には、データのクリーニングやテキストのマイニングなどを目的とした多種多様な個別の変換が含まれます。行変換は、列を作成したり、列の値を更新したりすることを目的としています。同様に、行セット変換は、行セットを作成して管理するためのものです。
分割および結合変換は、様々な出力に行を分配し、ルックアップ操作を実行し、変換入力をコピーし、入力を単一の出力に結合します。監査変換では、情報を監査します。最後に、開発者は独自のカスタム変換を書くことができます。
3. あいまいグループ化/参照変換
これらの変換には、独自のセクションが必要です。あいまいグループ化変換は、重複に近い行を識別し、データの標準化に使用できる正規の行を選択することでデータをクリーンアップします。
この変換は、入力列を選択して重複を識別し、あいまい一致または完全一致のいずれかを選択することに依存します。完全一致では、まったく同じ値を持つ同一行のみを検索します。あいまい一致では、ユーザーが設定した類似性スコアに基づいて、ほぼ同じ値を持つ行も含まれます。
あいまい参照変換は、標準化、データの修正、欠落値の提供によるデータクレンジングが含まれます。ソフトウェアは、参照テーブル内でほぼ正確にマッチするレコードを見つけるためにそれを使用します。この機能は、完全一致を見つけることしかできないルックアップ変換に代わるものです。
4. 基本的なデータプロファイリング・ツール
SSIS は、基本的なデータプロファイリング・ツールとして、データプロファイリングタスクとデータプロファイル ビューアを提供しています。前者を統合サービスパッケージのコンポーネントとして使用して、サーバーに保存されているデータをプロファイリングし、データの品質をチェックすることができます。これは、プロファイルを計算して、ユーザーがデータ ソースについて学習するのに役立ちます。サードパーティ製のソースでは動作しません。SQL Server でのみ機能します。
データプロファイル・ビューアは、データプロファイリング・タスクの後に出力を確認するのに使用するスタンドアロン ツールです。さらに、出力で指定されたデータの品質に関する懸念事項を理解できるようにするためのドリルダウン機能もサポートしています。
SSIS を使うメリット/デメリット
現在では多くの企業がSSISを使用していますが、こうした企業は、このソフトウェアが提供している多くの利点にいち早く目をつけました。
長所:
- 優れたサポート
- 徹底したドキュメント
- グラフィカルなインターフェースにより、データの流れをかなり簡単に可視化することができる。
- 様々なソースに接続
- プロジェクトやパッケージの管理が簡単
- 高度にカスタマイズ可能
- 拡張可能
- 開発者が複数のプロジェクトでスクリプトを再利用できる。
- デプロイと設定が簡単
短所:
ご存知のように、SSISにはかなりの数のデメリットもあります。
- JSONでの使用には必ずしも効率的ではない
- 初めてのユーザーには混乱を招くことが多い
- コネクションマネージャーの設定が困難な場合がある
- 制限されたエクセル接続
- SSISをサポートするサードパーティツールがほとんどない。
- 通常、開発者の経験および複雑なコーディングが必要となる。
上記のうち、最後の懸念については、人手が限られていたり、データ統合に必要な従業員の時間を最小限に抑えてコストを削減しようとする企業にとっては、実際に問題となる可能性があります。
ETLとは?
ETLとは、前述したように、異なるソースからのデータを統合し、データウェアハウスなどのデータ先にロードするプロセスのことです。それは、その名前に含まれる3つのステップを含みます。
- 抽出:任意のタイプのソースからデータを抽出することで、プロセスが開始されます。各ソースは異なるデータファイル形式を持っている可能性があるため、ソフトウェアはいくつかのデータを共通の形式に変換する必要があるかもしれません。
- 変換:ソフトウェアは、さまざまな機能を適用してデータを変換します。このステップでは、ユーザーはデータをフィルタリング、検証、およびクレンジングします。
- ロード:最後に、ソフトウェアはデータをデータベース、データウェアハウス、またはその他の保存先にロードします。
SSISは、この目的のための最も一般的なツールの1つです。データウェアハウス用のETLパッケージを作成するために使用することができます。
SSIS は最適なツールか?
多くのユーザーによると、SSISは市場でトップのETLツールです。ユーザーはTrustRadius上で、SSISについて「熟練したSQL開発者のベストバディ」、「ETLには素晴らしい」、その他多くの同様の賛辞を述べています。
それにしても、SSISは本当に理想的な選択肢なのでしょうか?
SSISは、大規模で複雑なデータ量を持つ開発者や企業にとって理想的です。SSISを使用している開発者は、通常Visual Studioを使用しており、エラーが含まれる可能性の高い複雑なコードを何行も書きます。多くの人がSSISをETLのための優れたツールと考えていますが、各企業のニーズに応じてより優れた代替となるETLソリューションがあります。
例えば、Integrate.io ETLソリューションを検討してみてください。私たちは、最小限の従業員の時間でETLを実行するためのローコード、シンプルなドラッグアンドドロップのインターフェイスを提供しています。当社の柔軟でスケーラブルなクラウドプラットフォームを使用して、プログラミング経験のないユーザーがデータパイプラインを作成し、様々なデータ関連のプロセスを実行することができます。さらに、開発者が必要な機能を得るために必要なところをコーディングする機能も提供しています。
Integrate.ioがETLニーズを実現する方法に興味がある場合、ぜひ無料相談にお申し込みください