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

SQL Serverセマンティック検索を使用してWindowsファイルシステムにドキュメントを保存および分析する方法を学ぶ–パート1

    この記事では、ネイティブWindowsディレクトリ構造を使用して非構造化データを格納し、SQLServerデータベースを介してデータを管理する方法について説明します。続いて、データから貴重な情報を取得するために、セマンティック検索を使用して比較分析を実行する方法を示します。さらに、Windowsファイルシステムにドキュメントを保存してリンクし、セマンティック検索を使用する実地体験を得ることができます。

    データベースの初心者と専門家の両方にとって、非構造化データ分析のためのセマンティック検索などの検索テクノロジーにファイルテーブルなどのファイルストレージ戦略を適用する方法を知ることは非常に重要です。

    前提条件

    このセクションに記載されている前提条件は、3つの部分で構成される完全な記事に適用されます。

    ファイルテーブルの概念

    SQLServerデータベースで使用されるファイルテーブルの基本的な知識があっても問題はありません。それでも、記事のこの部分では、ファイルテーブルを使用してドキュメントを保存する方法について詳しく説明しています。

    セマンティック検索の概念

    この記事の最終的な目標はセマンティック検索を使用して比較分析を実行することであるため、特にウォークスルーの実装に関心がある場合は、以下の基本概念を十分に理解しておくことを強くお勧めします。

    1. セマンティック検索の概念。
    2. 比較分析の基本を文書化します。
    3. セマンティック検索の基本的な使用法。

    記事SQLServerセマンティック検索の使用方法を参照してください。 基本的なT-SQLスキルがあれば、上記の要件を満たすことができます。

    全文検索の基本

    さらに、SQLServerのインストール中にセマンティック検索と一緒に特別なアドオンとして提供される全文検索の知識を持っていることをお勧めします。

    セマンティック検索は、全文検索の基本要件を満たさずに実装できないため、全文検索の拡張機能と見なされる場合もあることに注意してください。

    フルテキスト検索の詳細については、SQLServer2016でのフルテキスト検索の実装の記事を参照してください。

    使用中のSQLインスタンス

    この記事ではSQLServer2016バージョンを使用していますが、いくつかの例外を除いて、手順に従うことで新しいバージョンに問題が発生することはありません。

    FILESTREAM対応データベースのセットアップ

    FILESTREAM対応データベースと呼ばれる特別な種類のデータベースを使用する必要があります ドキュメントをWindowsファイルシステムに保存し、SQLデータベースで管理します。

    この特殊なタイプのデータベースを作成する前に、完了する必要のあるいくつかの手順があります。

    インスタンスレベルでFILESTREAMを有効にする

    最初に行うことの1つは、SQLServerインスタンスレベルでFILESTREAMを有効にすることです。

    SQLServer2016の構成」と入力します (またはSQL 2016以外の場合はSQLインスタンスのバージョン)Windowsサーチボックス(通常はタスクバーの左下隅にあります)(以下を参照)。

    クリックしてSQLServer構成マネージャーを開きます 。

    SQLTAB2016であるSQLインスタンスを見つけて右クリックします この場合は、[プロパティ]をクリックします SQLサービス:

    トランザクションSQLアクセスに対してFILESTREAMを有効にするをオンにします およびファイルI/Oアクセスに対してFILESTREAMを有効にする FILESTREAMの下 タブ。適切なWindows共有名を入力します 同様に、 OKをクリックします 、以下に示すように:

    FILESTREAMアクセスレベルの変更

    次に、FILESTREAMアクセスレベルがまだ変更されていない場合は、0から2に変更します。

    マスターデータベースに対して次のT-SQLスクリプトを実行します。

    -- Enabling FILESTREAM for SQL instance in use
    EXEC sp_configure filestream_access_level, 2  
    RECONFIGURE

    出力は次のとおりです。

    FILESTREAMがすでに2に設定されている場合でも、上記のスクリプトを実行すれば問題ないことを覚えておいてください。

    データベースを保存するためのWindowsフォルダを作成する

    Windowsフォルダを作成してくださいC:\ Sample \ Data SQLデータベースを物理的に保存する場所:

    Cドライブ以外のドライブを選択できます。

    FILESTREAM対応データベースの作成

    ここで、 EmployeesFilestreamSampleという名前の新しいFILESTREAM対応データベースを作成しましょう。 マスターデータベースに対して次のT-SQLスクリプトを実行する:

    -- Creating FILESTREAM enabled database
    CREATE DATABASE EmployeesFilestreamSample
    ON
    PRIMARY ( NAME = EmployeesSampleData,
        FILENAME = 'c:\sample\data\EmployeesFilestreamSample.mdf'),
    FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = EmployeesSampleFilestreamGroup,
        FILENAME = 'c:\sample\data\EmployeesSampleFilestreamGroup')
    LOG ON  ( NAME = EmployeesSampleLog,
        FILENAME = 'c:\sample\data\EmployeesFilestreamLog.ldf')
    GO

    出力は次のとおりです。

    FILESTREAM対応のデータベースが正常に作成されました。

    FILESTREAM対応データベースを確認

    オブジェクトエクスプローラーに移動します EmployeesFilestreamSampleを展開します データベースの下のデータベース 新しく作成されたFILESTREAM対応データベースを表示するノード。

    ファイルテーブルの設定

    FILESTREAM対応データベースを作成したら、次のステップはファイルテーブルを設定することです。 これは、ドキュメントをWindowsファイルシステムに保存するのに役立ちます。

    FILESTREAMディレクトリに名前を付ける

    ファイルテーブルを作成するには、メインのデータベースプロパティにいくつかの変更を加える必要があります。

    データベースを右クリックします( EmployeesFilestreamSample オブジェクトエクスプローラー プロパティをクリックします :

    オプションに移動します ページと名前FILESTREAMディレクトリ名 EmployeesFilestreamDirectory、として 次の図に示すように:

    FILESTREAM非トランザクションアクセスを設定します 以下に示すように、[フル]に移動し、[OK]をクリックします:

    はいをクリックします プロパティを変更してすべての接続を閉じても大丈夫かどうか尋ねられたら:

    ファイルテーブルの作成

    次のT-SQLスクリプトを入力して実行し、ドキュメントを保存する新しいファイルテーブルを作成します。

    USE EmployeesFilestreamSample
    
    -- Creating Employees FileTable sample
    CREATE TABLE EmployeesDocumentStore AS FileTable  
        WITH (   
              FileTable_Directory = 'EmployeesSampleFilestreamGroup',  
              FileTable_Collate_Filename = database_default  
             );  
    GO

    ファイルテーブルの探索

    データベース=>dbo.EmployeeDocumentStore=>テーブル=>ファイルテーブルを選択します =>EmployeesDocumentStore。

    EmployeesDocumentStoreを右クリックします ファイルテーブルディレクトリの探索をクリックします 、 以下に示すように:

    ファイルの場所のエラーの修正(Microsoftのバグ)

    ドキュメントが保存されているはずのフォルダを表示できる場合は問題ありませんが、次のエラーが発生した場合は、最初に修正する必要があります。

    修正:SQLServerでFileTableディレクトリを開こうとすると「ファイルの場所を開けません」というエラーが発生します

    これは、Microsoftによって確認されたMicrosoftのバグです:

    このバグを修正するには、SQL Server2016SP2用の累積的な更新プログラム11を実行する必要があります。

    この記事で使用されているSQLServerインスタンスを使用しておらず、同じ問題に直面している場合は、バージョンに基づいてSQLインスタンスに適した修正を実行してください。

    以下に示すように、SQLインスタンスに適用できる場合は、更新をダウンロードします。

    次のように進めるには、利用規約に同意する必要があります。

    アップデートが正常にインストールされると、次のメッセージが表示されます。

    ロケーションエラーを解決した後にファイルテーブルを探索する

    これで、FileTableディレクトリを探索できるようになります:

    これで、以下に示すように、WindowsフォルダにMSWordドキュメントなどの非構造化ドキュメントを入力できます。

    従業員向けのMSWordドキュメントの作成と保存

    新しいMSWordドキュメントを作成し、 Asif Permanent Employee、という名前を付けます。 以下に示すように:

    このWord文書に次のテキストを追加し、最初の行が文書のタイトルであることを確認します。

    Asif Permanent Employee
    Asif is a very experienced Project Manager with a solid programming background and highly skilled to work on data warehouse business intelligence (BI) solutions.
    He is a quick learner and can work on multiple technologies and tools.
    He has excellent communication skills and his overall rating is very good.

    ドキュメントを保存することを忘れないでください。

    別のMSWordドキュメントを作成し、 Peter Permanent Employeeという名前を付けます。 次のテキストで、最初の行はドキュメントのタイトルです

    Peter Permanent Employee
    Peter is a fresh Project Manager with a very strong programming background and highly skilled to work on data warehouse business intelligence (BI) solutions.
    He can work with multiple teams and on multiple projects.
    He has excellent business skills and his overall rating is good.

    次のテキストを含むドキュメントを保存することを忘れないでください:

    保存されたドキュメントの表示

    次のSQLコードを入力して、SQLデータベースがこれらのドキュメントをどのように保存しているかを確認します。

    -- View files stored on Windows File System managed by File Table in SQL Database
    SELECT stream_id
          ,file_stream
          ,[name]
          ,file_type
          ,cached_file_size
    	  ,creation_time
    FROM EmployeesFilestreamSample.dbo.EmployeesDocumentStore

    出力は次のとおりです。

    おめでとう!これで、SQLデータベースによって管理されるWindowsファイルシステムにドキュメントを保存するためのFILESTREAM対応データベースが正常に設定されました。

    つまり、非構造化ドキュメントを快適に作成して保存することでWindowsファイルシステムを最大限に活用できるようになり、一方で、データベースの一貫性のあるアーキテクチャを通じてこれらの保存されたドキュメントを完全に管理できるようになりました。

    この記事の次のパートでセマンティック検索を使用して保存されたドキュメントの比較分析を実行するため、ウォークスルーを続行して連絡を取り合う場合は、これらのドキュメントを削除しないでください。


    1. 生年月日の制約を確認しますか?

    2. エラー:PLS-00428:このselectステートメントでinto句が必要です

    3. カーソルからデータにアクセスする前に、カーソルが正しく初期化されていることを確認してください

    4. SQLServerの変更回復モデル