sql >> データベース >  >> RDS >> Sqlserver

SSISパッケージを使用してSQLServerからExcelおよびテキストファイルにデータをエクスポートする

    SSISデータフローを使用しながら、データ移行、データオフロード、データウェアハウスの設計と実装に使用できるETLタスクを実行できます。

    この記事では、SSISデータフロータスクを使用して、SQLテーブルからExcelおよびテキストファイルにデータをエクスポートする方法について説明します。

    このデモでは、次の手順を実行します。

    1. SSISパッケージを作成し、ADO.NET接続マネージャーを作成します。

    2.SQLServerからデータを入力するためのADO.NETソースを持つデータフロータスクを作成します。データはExcelファイルとテキストファイルに書き込まれるため、フラットファイルの宛先とExcelの宛先を構成します。

    3. SSISパッケージを実行し、データがExcelおよびテキストファイルに書き込まれたことを確認します。

    SSISパッケージとADO.NET接続を作成する

    このデモでは、SQL Serverデータツール2015を使用しました。最初に、「SQLデータのエクスポート」という名前の新しい統合サービスプロジェクトを作成しています。 」:

    SSISプロジェクトの作成後、データフロータスクを作成します。データフロータスクは、SQLServerをソースとして使用します。 Excelファイルとフラットファイルが宛先として決定されます。データフロータスクを作成する前に、ADO.NET接続を作成する必要があります 。

    ADO.NET接続を構成する

    前述したように、「 WideWorldImportors」を使用します 」ここからダウンロードできるデモデータベース。

    ソース」を作成するには 」接続の場合は、「接続マネージャー」を右クリックします 」を選択し、「新しいADO.NET接続」を選択します。 下の画像に示すように」:

    ダイアログボックス「ADO.NET接続マネージャーの構成 " 開くでしょう。ダイアログボックスで、[新規]をクリックします 次の画像に示すように」:

    ダイアログボックス「接続マネージャー " 開くでしょう。 SQL接続パラメーターを構成します:

    1.サーバー名 –は、SQLがインストールされているデータベースサーバーのホスト名またはIPアドレスです。

    2.認証 –「サーバー名」で選択されたサーバーの接続に使用される「認証タイプ」です。 」ドロップダウンボックス。 SQL認証またはWindows認証のいずれかです。

    3.データベース名 –は、データ抽出に使用するデータベースの名前です。

    このデモでは、ローカルVMを使用します。 Windows認証を使用してSQLインスタンスを接続し、「 WideWorldImportors」を使用します 」データベース。

    次の画像を見てください:

    接続のテスト」をクリックします 」を使用して、接続が成功したことを確認します。次の画像を見てください:

    SQL接続を構成すると、「接続マネージャー」で接続を確認できるようになります。 " 窓。次の画像に示すように、制御フローウィンドウの下部にあります。

    データフロータスクの作成

    データフロータスクは、ソースと宛先の間でデータを移動するために使用されます。 ETL(抽出、変換、およびロード)タスクを実行するために使用できます。 SQL ServerからExcelまたはテキストファイルにデータをエクスポートするため、データフロータスクを使用します。

    データフロータスクを構成するには、まず、データフロータスクを制御フローウィンドウにドラッグアンドドロップし、名前を「販売データをExcelにエクスポート」に変更します。 下の画像に示すように」:

    ADO.NETソースの構成

    SQL Serverテーブルからデータを入力するには、ADO.Netソースコンポーネントを構成する必要があります。 「データフロータスク」をダブルクリックします 」それを行う。ウィンドウ「データフロータスクの構成」 " 開くでしょう。または、「データフロー」を選択することもできます 「制御フロー」の横にある「」 」。すでにSQL接続を構成しているので、下の画像に示すように、ADO.NETソースをデータフローウィンドウにドラッグアンドドロップします。

    次に、SQL Serverテーブルのクエリを介してテーブルからデータを抽出するために、ADO.NETソースを構成します。これを行うには、「ADOネットソース」をダブルクリックします 」。ダイアログボックスが開きます。ダイアログボックスで、次のパラメータを設定する必要があります。

    1.ADO.NET接続マネージャー –SSISパッケージで作成されたADO.NET接続のリストを作成します。

    2.データアクセスモード 2つのオプションがあります:

    a。 「テーブルまたはビュー」を選択した場合 」の「データアクセスモード」 」ドロップダウンボックス、「テーブルまたはビューの名前 」ドロップダウンには、データベースに存在するテーブルとビューが表示されます。下の画像を参照してください:

    b。 「SQLコマンド」を選択した場合 」、データベースからデータを抽出するためのアドホッククエリを記述できる複数行のテキストボックスが開きます。

    下の画像を参照してください:

    すでにADO.Net接続を作成しているので、ADO.NET接続マネージャーでドロップダウンして、作成した名前を選択します。このデモでは、独自のクエリを記述して、データアクセス方法が「SQLコマンド」になるようにします。 」。

    データベースから顧客のリストを取得するクエリを作成しました。このクエリは以下のとおりです:

    SELECT s.CustomerID, 
    s.CustomerName, 
    sc.CustomerCategoryName, 
    pp.FullName AS PrimaryContact, 
    ap.FullName AS AlternateContact, 
    s.PhoneNumber, 
    s.FaxNumber, 
    bg.BuyingGroupName, 
    dm.DeliveryMethodName AS DeliveryMethod, 
    c.CityName AS CityName 
    FROM Sales.Customers AS s 
    LEFT OUTER JOIN Sales.CustomerCategories AS sc 
    ON s.CustomerCategoryID = sc.CustomerCategoryID 
    LEFT OUTER JOIN [Application].People AS pp 
    ON s.PrimaryContactPersonID = pp.PersonID 
    LEFT OUTER JOIN [Application].People AS ap 
    ON s.AlternateContactPersonID = ap.PersonID 
    LEFT OUTER JOIN Sales.BuyingGroups AS bg 
    ON s.BuyingGroupID = bg.BuyingGroupID 
    LEFT OUTER JOIN [Application].DeliveryMethods AS dm 
    ON s.DeliveryMethodID = dm.DeliveryMethodID 
    LEFT OUTER JOIN [Application].Cities AS c 
    ON s.DeliveryCityID = c.CityID

    最後に、ADO.NETソースエディタは次の画像のようになります。

    プレビュー」をクリックすると、クエリの出力をプレビューできます。 ダイアログボックスの「」ボタン。クエリ結果は下の画像のようになります:

    Excelの宛先を構成する

    ADO.NETソースを構成したら、Excelの宛先を構成します。

    SSISツールボックスで、データフローウィンドウにExcelの宛先をドラッグアンドドロップし、名前を「SalesExcelファイル」に変更します。 下の画像に示すように」:

    Excelの宛先をダブルクリックします。ダイアログボックス「Excelの宛先エディター 」が開き、次のパラメータを設定します。

    1.Excel接続マネージャー –Excelファイルの接続に使用されます。

    2.データアクセス方法 。 Excelワークシートは、テーブルまたはビューと見なされます。 「テーブルまたはビュー」を選択した場合 」、ドロップダウンボックス「Excelシートの名前」 」には、Excelワークブックで作成されたすべてのワークシートが入力されます。

    3.Excelシートの名前 。デフォルトでは、このドロップダウンボックスは無効になっています。 「テーブルまたはビュー」を選択すると、自動的に有効になります 」をデータアクセスモードとして使用します。適切なExcelワークシートを選択することもできます。

    まだExcelの宛先接続を作成していませんので、まずExcelの宛先マネージャーを作成する必要があります。これを行うには、「新規」をクリックします 「Excel接続マネージャー」の横にある「」ボタン 下の画像に示すように、」ドロップダウンボックス:

    ダイアログボックス「Excel接続マネージャー " 開くでしょう。ここで構成できます:

    1.Excelファイルパス –Excelファイルの場所。

    2.Excelバージョン –ドロップダウンボックスからExcelバージョンを選択できます。

    このデモでは、Excelファイルを作成してコンピューターに保存しました。ファイルを見つけるには、[参照]をクリックし、ファイルシステム内を移動してファイルを選択し、[ OK]をクリックします。 、下の画像に示すように:

    次に、「テーブルまたはビュー」としてデータアクセスモードを選択します。 」の「Excel宛先マネージャー」 」。 Excelワークシートのリストがドロップダウンボックスに表示されます。 「Excelシートの名前」を選択します 下の画像に示すように、ドロップダウンボックスから」:

    ここで、SQLテーブルからExcelファイルにデータをエクスポートするには、SQLテーブルとExcelファイルのフィールドをマップする必要があります。これを行うには、「DBサーバーの販売データ」の下に青い矢印をドラッグします。 」コンポーネントを「SalesExcelファイル」にドロップします 下の画像に示すように、」コンポーネント:

    Excelの宛先」をダブルクリックします 」を使用してフィールドをマップします。 「Excel宛先エディター(セールスExcelファイル) " 開くでしょう。 「マッピング」を選択します ダイアログボックスの左側のペインにある「」オプション。マッピングでは、入力列はSQLクエリ出力の列になり、宛先列はExcelファイルの列になります。 SQLクエリ出力とExcel列の名前を同じにすることをお勧めします。これにより、フィールドを手動でマッピングする必要がなくなるため、マッピングがはるかに簡単になります。 SSISは列を自動的にマップします。

    このデモでは、ExcelファイルとSQLクエリ出力の名前が同じであるため、マッピングが自動的に実行されました。マッピングが正しく行われたことを確認し、[ OK]をクリックします 。下の画像を参照してください:

    マッピングが完了すると、データフロータスク全体が次の画像のようになります。

    これで、パッケージを実行できます。これを行うには、「開始」をクリックします メニューバーにある」ボタン。パッケージが正常に実行されると、下の画像に示すように、各コンポーネントに緑色のアイコンが表示されます。

    フラットファイルの宛先を構成する

    記事の冒頭で述べたように、SSISではSQLテーブルからテキストファイルにデータをエクスポートできます。そのためには、データフロータスクでフラットファイルの宛先を作成する必要があります。 「フラットファイルの宛先」をドラッグアンドドロップします 」をデータフロータスクウィンドウに移動し、名前を「販売データからテキストファイル」に変更します。 下の画像に示されているように:

    次に、「フラットファイルの宛先」をダブルクリックします 」。ダイアログボックス「フラットファイルの宛先エディタ 下の画像に示すように、」が開きます。

    次に、「新規」をクリックします 「フラットファイル接続マネージャー」の横にある「」ボタン 」ドロップダウンボックス。ダイアログボックス「フラットファイル形式 " 開くでしょう。 4つのオプションがあります。データを区切り文字にエクスポートする、固定幅、行区切り文字を使用する固定幅、および右に不揃いです。このデモでは、「区切り」を選択します 」。

    区切り」を選択します 」をクリックし、[ OK ]をクリックします 下の画像に示されているように:

    別のダイアログボックス「フラットファイル接続マネージャーエディター " 開くでしょう。接続マネージャーに「販売データのエクスポート」という名前を付けます 次の画像に示されているように:

    SQLデータをテキストファイルに保存するには、新しいテキストファイルを作成するか、既存のテキストファイルを選択します。

    このデモでは、新しいファイルを作成します。 「販売データ」という名前のファイルを作成します 」。そのためには、下の画像に示すように、参照をクリックしてファイルシステムを移動します。

    次に、フラットファイルパラメータを設定します:

    • SQLテーブルからエクスポートされたデータは区切り形式で保存されるため、「 D」を選択します 制限付き 」の「フォーマット」 下の画像に示すように、「」ドロップダウンボックス:

    • ヘッダー行の区切り文字 」は「{CR}{LF}」になります 」なので、下の画像に示すように、ドロップダウンボックスで適切なオプションを選択します。

    • テキストファイルでは、最初の行が列ヘッダーになるため、「最初のデータ行の列名」を確認してください。 下の画像に示されているように:

    OKをクリックします 「フラットファイル接続マネージャーエディター」を閉じます 」。

    次に、列をマップします。これを行うには、「マッピング」をクリックします 「フラットファイル宛先エディタ」の左側にある「」 下の画像に示されているように:

    SQLクエリ入力」の名前として 」と「テキストファイルの宛先 」列は同じで、SSISパッケージは列を自動的にマップします。

    マッピングが完了すると、データフロータスク全体が次の画像のようになります。

    これで、パッケージを実行できます。これを行うには、「開始」をクリックします メニューバーにある」ボタン。パッケージが正常に実行されると、下の画像に示すように、各コンポーネントに緑色のアイコンが表示されます。

    以下は、SQLテーブルから抽出されたデータのスクリーンショットです。

    概要

    この記事では、以下について説明しました:

    1. ADO.NET接続マネージャーの作成
    2. データフロータスクの作成とソースデータベースの構成
    3. Excelの宛先を構成し、SQLテーブルからExcelファイルにデータをエクスポートします。
    4. フラットファイルの宛先を構成し、SQLテーブルからテキストファイルにデータをエクスポートします。

    便利なツール:

    Devart SSISデータフローコンポーネント– SQL ServerIntegrationServicesを介してデータベースとクラウドデータを統合できます。


    1. 制限付きのDjangoprefetch_related

    2. CLEAR SCREEN-Oracle SQL Developerのショートカット?

    3. Windows認証またはSQLServer認証を使用してSQLServerインスタンスに接続する方法-SQLServer/T-SQLチュートリアルパート3

    4. 可観測性のためのPostgreSQLの構成