Kopírování dat do a z Azure Table Storage pomocí služby Azure Data Factory nebo Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek popisuje, jak pomocí aktivity kopírování v kanálech Azure Data Factory a Synapse Analytics kopírovat data do a z Azure Table Storage. Vychází z článku s přehledem aktivity kopírování, který představuje obecný přehled aktivity kopírování.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Podporované funkce

Tento konektor Azure Table Storage je podporovaný pro následující funkce:

Podporované funkce IR Spravovaný privátní koncový bod
aktivita Copy (zdroj/jímka) ① ② – Vyloučení účtu úložiště V1
Aktivita Lookup ① ② – Vyloučení účtu úložiště V1

(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime

Data můžete kopírovat z libovolného podporovaného zdrojového úložiště dat do služby Table Storage. Data z Table Storage můžete také zkopírovat do libovolného podporovaného úložiště dat jímky. Seznam úložišť dat podporovaných jako zdroje nebo jímky aktivitou kopírování najdete v tabulce Podporované úložiště dat.

Konkrétně tento konektor Azure Table podporuje kopírování dat pomocí klíče účtu a ověřování sdílených přístupových podpisů služby.

Začínáme

K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvoření propojené služby Azure Table Storage pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu Azure Table Storage v uživatelském rozhraní webu Azure Portal.

  1. Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak klikněte na Nový:

  2. Vyhledejte tabulku Azure a vyberte konektor Azure Table Storage.

    Screenshot of the Azure Table storage connector.

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Screenshot of configuration for an Azure Table storage linked service.

podrobnosti o konfiguraci Připojení oru

Následující části obsahují podrobnosti o vlastnostech, které se používají k definování entit specifických pro Azure Table Storage.

Vlastnosti propojené služby

Použití klíče účtu

Propojenou službu Azure Storage můžete vytvořit pomocí klíče účtu. Poskytuje službě globální přístup k úložišti. Podporují se následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu musí být nastavena na AzureTableStorage. Ano
připojovací řetězec Zadejte informace potřebné pro připojení ke službě Storage pro vlastnost connectionString.
Klíč účtu můžete také vložit do služby Azure Key Vault a vytáhnout accountKey konfiguraci z připojovací řetězec. Další podrobnosti najdete v následujících ukázkách a ukládání přihlašovacích údajů ve službě Azure Key Vault .
Ano
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Můžete použít prostředí Azure Integration Runtime nebo místní prostředí Integration Runtime (pokud se vaše úložiště dat nachází v privátní síti). Pokud není zadaný, použije výchozí prostředí Azure Integration Runtime. No

Poznámka:

Pokud jste používali propojenou službu typu AzureStorage, je stále podporovaná tak, jak je, zatímco se navrhuje používat tento nový propojený typ propojené služby AzureTableStorage.

Příklad:

{
    "name": "AzureTableStorageLinkedService",
    "properties": {
        "type": "AzureTableStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Příklad: Uložení klíče účtu ve službě Azure Key Vault

{
    "name": "AzureTableStorageLinkedService",
    "properties": {
        "type": "AzureTableStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
            "accountKey": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Použití ověřování pomocí sdíleného přístupového podpisu

Propojenou službu Storage můžete vytvořit také pomocí sdíleného přístupového podpisu. Poskytuje službě omezený/časový přístup ke všem/konkrétním prostředkům v úložišti.

Sdílený přístupový podpis poskytuje delegovaný přístup k prostředkům ve vašem účtu úložiště. Můžete ho použít k udělení omezených oprávnění klientů k objektům ve vašem účtu úložiště po určitou dobu a se zadanou sadou oprávnění. Přístupové klíče účtu nemusíte sdílet. Sdílený přístupový podpis je identifikátor URI, který zahrnuje v parametrech dotazu všechny informace potřebné pro ověřený přístup k prostředku úložiště. Pro přístup k prostředkům úložiště pomocí sdíleného přístupového podpisu musí klient předat sdílený přístupový podpis pouze příslušnému konstruktoru nebo metodě. Další informace o sdílených přístupových podpisech najdete v tématu Sdílené přístupové podpisy: Vysvětlení modelu sdíleného přístupového podpisu.

Poznámka:

Sdílené přístupové podpisy služby i sdílené přístupové podpisy účtu se teď podporují. Další informace o sdílených přístupových podpisech najdete v tématu Udělení omezeného přístupu k prostředkům Azure Storage pomocí sdílených přístupových podpisů (SAS).

Tip

Pokud chcete pro účet úložiště vygenerovat sdílený přístupový podpis služby, můžete spustit následující příkazy PowerShellu. Nahraďte zástupné symboly a udělte potřebná oprávnění. $context = New-AzStorageContext -StorageAccountName <accountName> -StorageAccountKey <accountKey> New-AzStorageContainerSASToken -Name <containerName> -Context $context -Permission rwdl -StartTime <startTime> -ExpiryTime <endTime> -FullUri

Pokud chcete použít ověřování pomocí sdíleného přístupového podpisu, podporují se následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu musí být nastavena na AzureTableStorage. Ano
sasUri Zadejte identifikátor URI SAS identifikátoru URI sdíleného přístupového podpisu do tabulky.
Označte toto pole jako řetězec SecureString, abyste ho bezpečně uložili. Token SAS můžete také vložit do služby Azure Key Vault, abyste využili automatické obměny a odebrali část tokenu. Další podrobnosti najdete v následujících ukázkách a ukládání přihlašovacích údajů ve službě Azure Key Vault .
Ano
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Můžete použít prostředí Azure Integration Runtime nebo místní prostředí Integration Runtime (pokud se vaše úložiště dat nachází v privátní síti). Pokud není zadaný, použije výchozí prostředí Azure Integration Runtime. No

Poznámka:

Pokud jste používali propojenou službu typu AzureStorage, je stále podporovaná tak, jak je, zatímco se navrhuje používat tento nový propojený typ propojené služby AzureTableStorage.

Příklad:

{
    "name": "AzureTableStorageLinkedService",
    "properties": {
        "type": "AzureTableStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource e.g. https://<account>.table.core.windows.net/<table>?sv=<storage version>&amp;st=<start time>&amp;se=<expire time>&amp;sr=<resource>&amp;sp=<permissions>&amp;sip=<ip range>&amp;spr=<protocol>&amp;sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Příklad: Uložení klíče účtu ve službě Azure Key Vault

{
    "name": "AzureTableStorageLinkedService",
    "properties": {
        "type": "AzureTableStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<account>.table.core.windows.net/<table>>"
            },
            "sasToken": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Při vytváření identifikátoru URI sdíleného přístupového podpisu zvažte následující body:

  • Nastavte příslušná oprávnění ke čtení a zápisu u objektů na základě způsobu použití propojené služby (čtení, zápis, čtení a zápis).
  • Nastavte čas vypršení platnosti odpovídajícím způsobem. Ujistěte se, že platnost přístupu k objektům úložiště nevyprší v aktivním období kanálu.
  • Identifikátor URI by se měl vytvořit na správné úrovni tabulky na základě potřeby.

Vlastnosti datové sady

Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v článku Datové sady . Tato část obsahuje seznam vlastností podporovaných datovou sadou tabulky Azure.

Pokud chcete kopírovat data do tabulky Azure a z tabulky Azure, nastavte vlastnost typu datové sady na AzureTable. Podporují se následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu datové sady musí být nastavená na AzureTable. Ano
tableName Název tabulky v instanci databáze služby Table Storage, na kterou odkazuje propojená služba. Ano

Příklad:

{
    "name": "AzureTableDataset",
    "properties":
    {
        "type": "AzureTable",
        "typeProperties": {
            "tableName": "MyTable"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Azure Table storage linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Odvození schématu službou

Pro úložiště dat bez schématu, jako je Azure Table, služba odvodí schéma jedním z následujících způsobů:

  • Pokud v aktivitě kopírování zadáte mapování sloupců, služba k načtení dat použije seznam zdrojových sloupců na straně zdroje. V takovém případě platí, že pokud řádek neobsahuje hodnotu sloupce, je pro něj zadaná hodnota null.
  • Pokud v aktivitě kopírování nezadáte mapování sloupců, služba odvodí schéma pomocí prvního řádku dat. V takovém případě pokud první řádek neobsahuje úplné schéma (například některé sloupce mají hodnotu null), některé sloupce se v důsledku operace kopírování zmešká.

Vlastnosti aktivity kopírování

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v článku Pipelines . Tato část obsahuje seznam vlastností podporovaných zdrojem a jímkou tabulky Azure.

Tabulka Azure jako typ zdroje

Pokud chcete kopírovat data z tabulky Azure, nastavte typ zdroje v aktivitě kopírování na AzureTableSource. Ve zdrojové části aktivity kopírování jsou podporovány následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu zdroje aktivity kopírování musí být nastavena na AzureTableSource. Ano
azureTableSourceQuery Ke čtení dat použijte vlastní dotaz table storage.
Zdrojový dotaz je přímá mapa z $filter možnosti dotazu podporované službou Azure Table Storage, přečtěte si další informace o syntaxi z tohoto dokumentu a podívejte se na příklady v následující části příkladů azureTableSourceQuery.
No
azureTableSourceIgnoreTableNotFound Určuje, jestli chcete povolit výjimku tabulky, aby neexistovala.
Povolené hodnoty jsou True a False (výchozí).
No

příklady AzureTableSourceQuery

Poznámka:

Vynucované službou Azure Table Service vyprší časový limit operace dotazu tabulky Azure za 30 sekund. Zjistěte, jak optimalizovat dotaz z návrhu pro dotazování článku.

Pokud chcete filtrovat data podle sloupce typu datetime, podívejte se na tento příklad:

"azureTableSourceQuery": "LastModifiedTime gt datetime'2017-10-01T00:00:00' and LastModifiedTime le datetime'2017-10-02T00:00:00'"

Pokud chcete filtrovat data podle sloupce typu řetězce, podívejte se na tento příklad:

"azureTableSourceQuery": "LastModifiedTime ge '201710010000_0000' and LastModifiedTime le '201710010000_9999'"

Pokud použijete parametr kanálu, přetypujte hodnotu datetime na správný formát podle předchozích ukázek.

Tabulka Azure jako typ jímky

Pokud chcete kopírovat data do tabulky Azure, nastavte typ jímky v aktivitě kopírování na AzureTableSink. Následující vlastnosti jsou podporovány v části jímky aktivity kopírování.

Vlastnost Popis Povinní účastníci
type Vlastnost typu jímky aktivity kopírování musí být nastavena na AzureTableSink. Ano
azureTableDefaultPartitionKeyValue Výchozí hodnota klíče oddílu, kterou může jímka použít. No
azureTablePartitionKeyName Zadejte název sloupce, jehož hodnoty se používají jako klíče oddílu. Pokud není zadaný, jako klíč oddílu se použije Hodnota AzureTableDefaultPartitionKeyValue. No
azureTableRowKeyName Zadejte název sloupce, jehož hodnoty sloupců se používají jako klíč řádku. Pokud není zadaný, použijte identifikátor GUID pro každý řádek. No
azureTableInsertType Režim vložení dat do tabulky Azure Tato vlastnost určuje, zda existující řádky ve výstupní tabulce s odpovídajícími klíči oddílu a řádku mají jejich hodnoty nahrazeny nebo sloučeny.

Povolené hodnoty jsou sloučené (výchozí) a nahrazují.

Toto nastavení platí na úrovni řádku, nikoli na úrovni tabulky. Žádná možnost neodstraní řádky ve výstupní tabulce, které ve vstupu neexistují. Informace o tom, jak sloučení a nahrazení nastavení fungují, najdete v tématu Vložení nebo sloučení entit a Vložení nebo nahrazení entity.
No
writeBatchSize Vloží data do tabulky Azure, když dojde k zápisuBatchSize nebo writeBatchTimeout.
Povolené hodnoty jsou celé číslo (počet řádků).
Ne (výchozí hodnota je 10 000)
writeBatchTimeout Vloží data do tabulky Azure, když dojde k zápisuBatchSize nebo writeBatchTimeout.
Povolené hodnoty jsou časový rozsah. Příkladem je 00:20:00 (20 minut).
Ne (výchozí hodnota je 90 sekund, výchozí časový limit klienta úložiště)
 maxConcurrent Připojení ions Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Zadejte hodnotu pouze v případech, kdy chcete omezit souběžná připojení.  Ne

Příklad:

"activities":[
    {
        "name": "CopyToAzureTable",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Table output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureTableSink",
                "azureTablePartitionKeyName": "<column name>",
                "azureTableRowKeyName": "<column name>"
            }
        }
    }
]

azureTablePartitionKeyName

Před použitím cílového sloupce jako azureTablePartitionKeyName namapujte zdrojový sloupec na cílový sloupec pomocí vlastnosti translator .

V následujícím příkladu je id dělení zdrojového sloupce mapováno na cílový sloupec DivisionID:

"translator": {
    "type": "TabularTranslator",
    "columnMappings": "DivisionID: DivisionID, FirstName: FirstName, LastName: LastName"
}

"DivisionID" je určen jako klíč oddílu.

"sink": {
    "type": "AzureTableSink",
    "azureTablePartitionKeyName": "DivisionID"
}

Mapování datových typů pro tabulku Azure

Když kopírujete data z tabulky Azure a do tabulky Azure, použijí se následující mapování z datových typů Tabulky Azure k dočasným datovým typům používaným interně v rámci služby. Informace o tom, jak aktivita kopírování mapuje zdrojové schéma a datový typ na jímku, najdete v tématu Mapování schématu a datového typu.

Když přesunete data do tabulky Azure a z tabulky Azure, použijí se následující mapování definovaná tabulkou Azure z typů Azure Table OData na typ .NET a naopak.

Datový typ Tabulky Azure Dočasný datový typ služby Detaily
Edm.Binary byte[] Pole bajtů až do 64 kB.
Edm.Boolean bool Logická hodnota.
Edm.DateTime DateTime 64bitová hodnota vyjádřená jako koordinovaný univerzální čas (UTC). Podporovaný rozsah DateTime začíná půlnoc, 1. ledna 1601 A.D. (C.E.), UTC. Rozsah končí 31. prosince 9999.
Edm.Double double 64bitová hodnota s plovoucí desetinou čárkou.
Edm.Guid Guid Globálně jedinečný identifikátor 128bitové verze.
Edm.Int32 Int32 32bitové celé číslo.
Edm.Int64 Int64 64bitové celé číslo.
Edm.String String Hodnota s kódováním UTF-16. Řetězcové hodnoty můžou být až 64 kB.

Vlastnosti aktivity vyhledávání

Podrobnosti o vlastnostech najdete v aktivitě Vyhledávání.

Seznam úložišť dat podporovaných jako zdroje a jímky aktivitou kopírování najdete v tématu Podporované úložiště dat.