Projekce ve znalostní bázi ve službě Azure Kognitivní hledání

Projekce jsou fyzické tabulky, objekty a soubory ve znalostní bázi , které přijímají obsah z kognitivní hledáního kanálu rozšíření AI. Pokud vytváříte znalostní bázi Knowledge Store, definování a tvarování projekce je většina práce.

V tomto článku se seznámíte s koncepty a pracovními postupy projekce, abyste měli před zahájením kódování nějaké pozadí.

Projekce jsou definovány ve Kognitivní hledání dovednosti, ale konečné výsledky jsou projekce mezi tabulkami, objekty a obrázkem v Azure Storage.

Projekce vyjádřené v Azure Storage

Typy projekce a využití

Znalostní databáze je logická konstrukce, která je fyzicky vyjádřena jako volná kolekce tabulek, objektů JSON nebo binárních souborů obrázků v Azure Storage.

Projekce Storage Využití
Tabulky Azure Table Storage Používá se pro data, která jsou nejlépe reprezentovaná jako řádky a sloupce nebo kdykoli potřebujete k zobrazení podrobných reprezentace dat (například jako datové rámce). Projekce tabulek umožňují definovat tvar schematized pomocí dovednosti Shaper nebo použít vložené tvarování a zadat sloupce a řádky. Obsah můžete uspořádat do několika tabulek na základě známých principů normalizace. Tabulky, které jsou ve stejné skupině, se automaticky vztahují.
Objekty Azure Blob Storage Používá se, když potřebujete úplná reprezentace JSON vašich dat a rozšíření v jednom dokumentu JSON. Stejně jako u projekcí tabulek může být jako objekty možné promítnout pouze platné objekty JSON a tvar vám to může pomáhat.
Soubory Azure Blob Storage Používá se, když potřebujete ukládat normalizované binární soubory imagí.

Definice projekce

Projekce se zadává pod vlastností "knowledgeStore" třídy dovednosti. definice projekce se používají během vyvolání indexeru k vytváření a načítání objektů v Azure Storage s obohaceným obsahem. Pokud tyto pojmy neznáte, začněte s obohacením AI na Úvod.

Následující příklad znázorňuje umístění projekce v rámci knowledgeStore a základní konstrukce. Název, typ a zdroj obsahu tvoří definici projekce.

"knowledgeStore" : {
    "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<Acct Name>;AccountKey=<Acct Key>;",
    "projections": [
      {
        "tables": [
          { "tableName": "ks-museums-main", "generatedKeyName": "ID", "source": "/document/tableprojection" },
          { "tableName": "ks-museumEntities", "generatedKeyName": "ID","source": "/document/tableprojection/Entities/*" }
        ],
        "objects": [
          { "storageContainer": "ks-museums", "generatedKeyName": "ID", "source": "/document/objectprojection" }
        ],
        "files": [ ]
      }
    ]

Skupiny projekce

Projekce jsou pole komplexních kolekcí, což znamená, že můžete zadat více sad každého typu. Je běžné používat jenom jednu skupinu projekce, ale můžete použít víc, pokud požadavky na úložiště zahrnují podporu různých nástrojů a scénářů. Můžete například použít jednu skupinu pro návrh a ladění dovednosti, zatímco druhá sada shromažďuje výstup používaný pro online aplikaci a třetí pro úlohy pro datové vědy.

Stejný výstup dovednosti se používá k naplnění všech skupin v rámci projekce. Následující příklad ukazuje dva.

"knowledgeStore" : {
    "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<Acct Name>;AccountKey=<Acct Key>;",
    "projections": [
        {
            "tables": [],
            "objects": [],
            "files": []
        }, 
        {
            "tables": [],
            "objects": [],
            "files": []
        }
    ]
}

Skupiny projekce mají následující klíčové charakteristiky vzájemného výhradního práva a příbuznosti.

Princip Description
Vzájemná výlučná práva Každá skupina je plně izolovaná od ostatních skupin pro podporu různých scénářů vytváření datových tvarů. Například při testování různých struktur tabulek a kombinací byste měli každou sadu přidat do jiné skupiny projekce pro testování AB. Každá skupina získá data ze stejného zdroje (stromu obohacení), ale je plně izolovaná od kombinace Table-Object-File u všech skupin s rovnocennými projekcemi.
Příbuznost V rámci skupiny projekce se vztahuje obsah v tabulkách, objektech a souborech. Znalostní báze používá vygenerované klíče jako referenční body na společný nadřazený uzel. Představte si například scénář, ve kterém máte dokument obsahující obrázky a text. Můžete promítnout text do tabulek a obrázků do binárních souborů a tabulky a objekty budou mít sloupec nebo vlastnost obsahující adresu URL souboru.

Projekce "zdroj"

Zdrojový parametr je třetí komponenta definice projekce. Vzhledem k tomu, že projekce ukládají data z kanálu obohacení AI, je zdrojem projekcí vždycky výstup dovedností. V takovém případě výstup může být jedno pole (například pole přeloženého textu), ale často se jedná o odkaz na datový tvar.

Datové tvary pocházejí z dovednosti. Mezi všemi integrovanými dovednostmi, které jsou poskytovány v Kognitivní hledání, je k dispozici pomůcka, která se nazývá Shaper dovednost , která se používá k vytváření datových tvarů. Můžete zahrnout Shaper dovednosti (tolik, kolik potřebujete), aby podporovaly projekce ve znalostní bázi Knowledge Store.

Tvary jsou často používány s projekcemi tabulky, kde tvar neurčuje pouze řádky, které se do tabulky přecházejí, ale také které sloupce jsou vytvořeny (můžete také předat tvar do projekce objektu).

Tvary mohou být složité a je mimo rozsah, aby je bylo možné projednat podrobněji, ale následující příklad stručně znázorňuje základní tvar. Výstup Shaper dovednosti je zadán jako zdroj projekce tabulky. V rámci samotné projekce tabulky se jedná o sloupce pro "metadata-storage_path", "reviews_text", "reviews_title" a tak dále, jak je uvedeno v obrazci.

{
    "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
    "name": "ShaperForTables",
    "description": null,
    "context": "/document",
    "inputs": [
        {
            "name": "metadata_storage_path",
            "source": "/document/metadata_storage_path",
            "sourceContext": null,
            "inputs": []
        },
        {
          "name": "reviews_text",
          "source": "/document/reviews_text"
        }, 
        {
          "name": "reviews_title",
          "source": "/document/reviews_title"
        },
        {
          "name": "reviews_username",
          "source": "/document/reviews_username"
        },
    ],
    "outputs": [
      {
        "name": "output",
        "targetName": "mytableprojection"
      }
    ]
}

Životní cyklus projekce

Projekce mají životní cyklus, který je svázán se zdrojovými daty ve zdroji dat. Jelikož jsou zdrojová data aktualizována a znovu indexována, projekce se aktualizují s výsledky rozšíření, což zajistí, že vaše projekce jsou nakonec konzistentní s daty ve zdroji dat. Projekce se ale také nezávisle ukládají v Azure Storage. Nebudou odstraněny, pokud je odstraněn indexer nebo služba vyhledávání.

Využití v aplikacích

Po spuštění indexeru se připojte k projekci a využijte data v jiných aplikacích a úlohách.

  • pro ověření vytvoření a obsahu objektu použijte prohlížeč Storage .

  • pro zkoumání dat použijte Power BI. Tento nástroj funguje nejlépe, když jsou data v Azure Table Storage. v rámci Power BI můžete data manipulovat s novými tabulkami, které se snadněji dotazují a analyzují.

  • Použijte obohacená data v kontejneru objektů BLOB v kanálu pro datové vědy. Například můžete načíst data z objektů blob do PANDAS dataframe.

  • Nakonec, pokud potřebujete exportovat data z znalostní báze Knowledge Store, Azure Data Factory obsahuje konektory pro export dat a pozemky v databázi podle vašeho výběru.

Kontrolní seznam pro Začínáme

Odvolání tohoto projekce je exkluzivní pro znalostní obchody a nejsou použity ke strukturování indexu vyhledávání.

  1. v Azure Storage získejte připojovací řetězec z přístupových klíčů a ověřte, jestli je účet StorageV2 (obecné účely V2).

  2. v Azure Storage se seznamte s existujícím obsahem v kontejnerech a tabulkách, abyste si zvolili nekonfliktní názvy pro projekce. Znalostní báze je volná kolekce tabulek a kontejnerů. Zvažte přijetí zásad vytváření názvů, abyste udrželi přehled o souvisejících objektech.

  3. V Kognitivní hledání povolte v indexeru ukládání do mezipaměti (Preview) a pak Spusťte indexer , abyste spustili dovednosti a naplnili mezipaměť. Toto je funkce ve verzi Preview, proto nezapomeňte v žádosti indexeru použít verzi Preview REST API (API-Version = 2020-06 -30-Preview nebo novější). Po naplnění mezipaměti můžete ve znalostní bázi Knowledge Store upravit definice projekce zdarma (Pokud se nemění samotné dovednosti).

  4. Ve vašem kódu jsou všechny projekce definovány výhradně v dovednosti. Neexistují žádné vlastnosti indexeru (například mapování polí nebo mapování polí pro výstup), které se vztahují na projekce. V rámci definice dovednosti se zaměříte na dvě oblasti: vlastnost knowledgeStore a pole dovednosti.

    1. V části knowledgeStore v části zadejte tabulka, objekt a projekce souborů projections . V této části je určen typ objektu, název objektu a množství (podle počtu vydefinovaných výčnělků).

    2. V poli dovednosti určete, na které výstupy dovedností budou odkazovány v source každé projekci. Všechny projekce mají zdroj. Zdrojem může být výstup interaktivních dovedností, ale často je výstupem Shaper dovednosti. Složení projekce je určeno pomocí tvarů.

  5. Pokud přidáváte projekce k existujícímu dovednosti, aktualizujte dovednosti a Spusťte indexer.

  6. Podívejte se na výsledky v Azure Storage. při dalších spuštěních vyhněte kolize názvů odstraněním objektů v Azure Storage nebo změnou názvů projektů v dovednosti.

Další kroky

Zkontrolujte syntaxi a příklady pro každý typ projekce.