Gegevens kopiëren van en naar Azure Table Storage met behulp van Azure Data Factory of Synapse Analytics

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In dit artikel wordt beschreven hoe u kopieeractiviteit gebruikt in Azure Data Factory- en Synapse Analytics-pijplijnen om gegevens te kopiëren van en naar Azure Table Storage. Het is gebaseerd op het artikel overzicht van de kopieeractiviteit met een algemeen overzicht van de kopieeractiviteit.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Ondersteunde mogelijkheden

Deze Azure Table Storage-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR Beheerd privé-eindpunt
Copy-activiteit (bron/sink) ① ② ✓ Opslagaccount V1 uitsluiten
Activiteit Lookup ① ② ✓ Opslagaccount V1 uitsluiten

(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime

U kunt gegevens kopiëren uit elk ondersteund brongegevensarchief naar Table Storage. U kunt ook gegevens kopiëren van Table Storage naar een ondersteund sink-gegevensarchief. Zie de tabel Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen of sinks door de kopieeractiviteit.

Deze Azure Table-connector biedt specifiek ondersteuning voor het kopiëren van gegevens met behulp van accountsleutels en shared access signature-verificaties voor de service.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Een gekoppelde Azure Table Storage-service maken met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde Azure Table Storage-service te maken in de gebruikersinterface van Azure Portal.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:

  2. Zoek naar Azure Table en selecteer de Azure Table Storage-connector.

    Screenshot of the Azure Table storage connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Screenshot of configuration for an Azure Table storage linked service.

configuratiedetails Verbinding maken or

De volgende secties bevatten details over eigenschappen die worden gebruikt om entiteiten te definiëren die specifiek zijn voor Azure Table Storage.

Eigenschappen van gekoppelde service

Een accountsleutel gebruiken

U kunt een gekoppelde Azure Storage-service maken met behulp van de accountsleutel. Het biedt de service globale toegang tot Storage. De volgende eigenschappen worden ondersteund.

Eigenschappen Beschrijving Vereist
type De typeeigenschap moet worden ingesteld op AzureTableStorage. Ja
connectionString Geef de informatie op die nodig is om verbinding te maken met Storage voor de eigenschap connectionString.
U kunt ook de accountsleutel in Azure Key Vault plaatsen en de accountKey configuratie uit de verbindingsreeks halen. Raadpleeg de volgende voorbeelden en sla referenties op in het Artikel over Azure Key Vault met meer informatie.
Ja
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt Azure Integration Runtime of zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een particulier netwerk bevindt). Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nr.

Notitie

Als u een gekoppelde service van het type AzureStorage gebruikt, wordt deze nog steeds ondersteund, terwijl u wordt aangeraden dit nieuwe gekoppelde servicetype 'AzureTableStorage' in de toekomst te gebruiken.

Voorbeeld:

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

Voorbeeld: accountsleutel opslaan in 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"
        }
    }
}

Handtekeningverificatie voor gedeelde toegang gebruiken

U kunt ook een gekoppelde Opslagservice maken met behulp van een Shared Access Signature. De service biedt beperkte/tijdgebonden toegang tot alle/specifieke resources in de opslag.

Een SAS (een handtekening voor gedeelde toegang) biedt gedelegeerde toegang tot resources in uw opslagaccount. U kunt deze gebruiken om een client beperkte machtigingen te verlenen aan objecten in uw opslagaccount voor een opgegeven tijd en met een opgegeven set machtigingen. U hoeft uw accounttoegangssleutels niet te delen. De handtekening voor gedeelde toegang is een URI die in de queryparameters alle informatie omvat die nodig is voor geverifieerde toegang tot een opslagresource. Voor toegang tot opslagbronnen met de handtekening voor gedeelde toegang hoeft de client alleen de handtekening voor gedeelde toegang door te geven aan de juiste constructor of methode. Zie Handtekeningen voor gedeelde toegang voor meer informatie over handtekeningen voor gedeelde toegang : Inzicht in het shared access signature-model.

Notitie

Handtekeningen voor gedeelde toegangen handtekeningen voor gedeelde toegang voor accounts worden nu ondersteund. Zie Beperkte toegang verlenen tot Azure Storage-resources met behulp van Sas (Shared Access Signatures ) voor meer informatie over handtekeningen voor gedeelde toegang.

Tip

Als u een handtekening voor gedeelde toegang voor een service voor uw opslagaccount wilt genereren, kunt u de volgende PowerShell-opdrachten uitvoeren. Vervang de tijdelijke aanduidingen en verdeel de benodigde machtigingen. $context = New-AzStorageContext -StorageAccountName <accountName> -StorageAccountKey <accountKey> New-AzStorageContainerSASToken -Name <containerName> -Context $context -Permission rwdl -StartTime <startTime> -ExpiryTime <endTime> -FullUri

Voor het gebruik van shared Access Signature-verificatie worden de volgende eigenschappen ondersteund.

Eigenschappen Beschrijving Vereist
type De typeeigenschap moet worden ingesteld op AzureTableStorage. Ja
sasUri Geef de SAS-URI van de handtekening-URI voor gedeelde toegang op voor de tabel.
Markeer dit veld als securestring om het veilig op te slaan. U kunt ook een SAS-token in Azure Key Vault plaatsen om automatisch draaien te gebruiken en het tokengedeelte te verwijderen. Raadpleeg de volgende voorbeelden en sla referenties op in het Artikel over Azure Key Vault met meer informatie.
Ja
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt De Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een particulier netwerk bevindt). Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nr.

Notitie

Als u een gekoppelde service van het type AzureStorage gebruikt, wordt deze nog steeds ondersteund, terwijl u wordt aangeraden dit nieuwe gekoppelde servicetype 'AzureTableStorage' in de toekomst te gebruiken.

Voorbeeld:

{
    "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"
        }
    }
}

Voorbeeld: accountsleutel opslaan in 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"
        }
    }
}

Houd rekening met de volgende punten wanneer u een handtekening-URI voor gedeelde toegang maakt:

  • Stel de juiste lees-/schrijfmachtigingen in voor objecten op basis van de manier waarop de gekoppelde service (lezen, schrijven, lezen/schrijven) wordt gebruikt.
  • Stel de verlooptijd op de juiste wijze in. Zorg ervoor dat de toegang tot Opslagobjecten niet verloopt binnen de actieve periode van de pijplijn.
  • De URI moet op het juiste tabelniveau worden gemaakt op basis van de behoefte.

Eigenschappen van gegevensset

Zie het artikel Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets . Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de Azure Table-gegevensset.

Als u gegevens van en naar Azure Table wilt kopiëren, stelt u de typeeigenschap van de gegevensset in op AzureTable. De volgende eigenschappen worden ondersteund.

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op AzureTable. Ja
tableName De naam van de tabel in het tabelopslagdatabase-exemplaar waarnaar de gekoppelde service verwijst. Ja

Voorbeeld:

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

Schemadeductie door de service

Voor schemavrije gegevensarchieven, zoals Azure Table, wordt het schema door de service afgeleid op een van de volgende manieren:

  • Als u de kolomtoewijzing in kopieeractiviteit opgeeft, gebruikt de service de lijst met kolommen aan de bronzijde om gegevens op te halen. In dit geval wordt er een null-waarde opgegeven als een rij geen waarde voor een kolom bevat.
  • Als u de kolomtoewijzing in de kopieeractiviteit niet opgeeft, wordt het schema afgeleid door de eerste rij in de gegevens te gebruiken. In dit geval worden sommige kolommen gemist in het resultaat van de kopieerbewerking als de eerste rij niet het volledige schema bevat (bijvoorbeeld sommige kolommen een null-waarde hebben).

Eigenschappen van de kopieeractiviteit

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de Azure Table-bron en -sink.

Azure Table als brontype

Als u gegevens uit Azure Table wilt kopiëren, stelt u het brontype in de kopieeractiviteit in op AzureTableSource. De volgende eigenschappen worden ondersteund in de sectie bron van de kopieeractiviteit.

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op AzureTableSource. Ja
azureTableSourceQuery Gebruik de aangepaste Tabelopslagquery om gegevens te lezen.
De bronquery is een directe toewijzing van de $filter queryoptie die wordt ondersteund door Azure Table Storage, meer informatie over de syntaxis uit dit document en bekijk de voorbeelden in de volgende sectie met azureTableSourceQuery-voorbeelden.
Nee
azureTableSourceIgnoreTableNotFound Hiermee wordt aangegeven of de uitzondering van de tabel niet bestaat.
Toegestane waarden zijn Waar en Onwaar (standaard).
Nee

azureTableSourceQuery-voorbeelden

Notitie

Er treedt een time-out op voor de azure Table-querybewerking in 30 seconden, zoals afgedwongen door de Azure Table-service. Meer informatie over het optimaliseren van de query vanuit Ontwerp voor het uitvoeren van query's in een artikel.

Als u de gegevens wilt filteren op een datum/tijd-typekolom, raadpleegt u dit voorbeeld:

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

Als u de gegevens wilt filteren op een kolom van het tekenreekstype, raadpleegt u dit voorbeeld:

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

Als u de pijplijnparameter gebruikt, castt u de datum/tijd-waarde naar de juiste indeling volgens de vorige voorbeelden.

Azure Table als sinktype

Als u gegevens naar Azure Table wilt kopiëren, stelt u het sinktype in de kopieeractiviteit in op AzureTableSink. De volgende eigenschappen worden ondersteund in de sectie sink voor kopieeractiviteiten.

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de sink van de kopieeractiviteit moet worden ingesteld op AzureTableSink. Ja
azureTableDefaultPartitionKeyValue De standaardpartitiesleutelwaarde die door de sink kan worden gebruikt. Nee
azureTablePartitionKeyName Geef de naam op van de kolom waarvan de waarden worden gebruikt als partitiesleutels. Als dit niet is opgegeven, wordt 'AzureTableDefaultPartitionKeyValue' gebruikt als de partitiesleutel. Nee
azureTableRowKeyName Geef de naam op van de kolom waarvan de kolomwaarden worden gebruikt als rijsleutel. Als dit niet is opgegeven, gebruikt u een GUID voor elke rij. Nee
azureTableInsertType De modus voor het invoegen van gegevens in Azure Table. Met deze eigenschap bepaalt u of bestaande rijen in de uitvoertabel met overeenkomende partitie- en rijsleutels de waarden vervangen of samengevoegd hebben.

Toegestane waarden worden samengevoegd (standaard) en vervangen.

Deze instelling is van toepassing op rijniveau, niet op tabelniveau. Met geen van beide opties worden rijen in de uitvoertabel verwijderd die niet aanwezig zijn in de invoer. Zie De entiteit Invoegen of samenvoegen en Entiteit invoegen of vervangen voor meer informatie over hoe de instellingen voor samenvoegen en vervangen werken.
Nee
writeBatchSize Hiermee worden gegevens in Azure Table ingevoegd wanneer writeBatchSize of writeBatchTimeout wordt bereikt.
Toegestane waarden zijn een geheel getal (aantal rijen).
Nee (standaard is 10.000)
writeBatchTimeout Hiermee worden gegevens in Azure Table ingevoegd wanneer writeBatchSize of writeBatchTimeout wordt bereikt.
Toegestane waarden zijn tijdspanne. Een voorbeeld is '00:20:00' (20 minuten).
Nee (de standaardwaarde is 90 seconden, de standaardtime-out voor de opslagclient)
 maxConcurrent Verbinding maken ions De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken.  No

Voorbeeld:

"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

Wijs een bronkolom toe aan een doelkolom met behulp van de eigenschap Translator voordat u de doelkolom kunt gebruiken als azureTablePartitionKeyName.

In het volgende voorbeeld wordt de divisionID van de bronkolom toegewezen aan de doelkolom DivisionID:

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

'DivisionID' wordt opgegeven als de partitiesleutel.

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

Toewijzing van gegevenstypen voor Azure Table

Wanneer u gegevens kopieert van en naar Azure Table, worden de volgende toewijzingen gebruikt van Azure Table-gegevenstypen tot tussentijdse gegevenstypen die intern in de service worden gebruikt. Zie Schema- en gegevenstypetoewijzingen voor meer informatie over hoe de kopieeractiviteit het bronschema en het gegevenstype toewijst aan de sink.

Wanneer u gegevens verplaatst naar en van Azure Table, worden de volgende toewijzingen gebruikt die zijn gedefinieerd door Azure Table OData-typen naar .NET-type en omgekeerd.

Azure Table-gegevenstype Tussentijdse servicegegevenstype Details
Edm.Binary byte[] Een matrix van bytes tot 64 kB.
Edm.Boolean bool Een Booleaanse waarde.
Edm.DateTime Datum en tijd Een 64-bits waarde uitgedrukt als Coordinated Universal Time (UTC). Het ondersteunde datum/tijd-bereik begint middernacht, 1 januari 1601 A.D. (C.E.), UTC. Het bereik eindigt op 31 december 9999.
Edm.Double dubbel Een 64-bits drijvendekommawaarde.
Edm.Guid Guid Een 128-bits globally unique identifier.
Edm.Int32 Int32 Een 32-bits geheel getal.
Edm.Int64 Int64 Een 64-bits geheel getal.
Edm.String String Een UTF-16-gecodeerde waarde. Tekenreekswaarden kunnen maximaal 64 kB zijn.

Eigenschappen van opzoekactiviteit

Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.

Zie Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.