Introdução
À medida que as empresas industriais e de manufatura embarcam em sua jornada de transformação digital, elas buscam alavancar tecnologias avançadas para maior eficiência, produtividade, controle de qualidade, flexibilidade, redução de custos, otimização da cadeia de suprimentos e vantagem competitiva na period digital em rápida evolução. Os clientes da AWS no espaço de manufatura e industrial, cada vez mais alavancam o AWS IoT SiteWise para modernizar sua estratégia de dados industriais e desbloquear todo o potencial de sua tecnologia operacional. O AWS IoT SiteWise capacita você a coletar, armazenar, organizar e monitorar dados de equipamentos industriais em escala de forma eficiente. Ele também permite que você obtenha insights acionáveis, otimize operações e impulsione a inovação por meio de decisões baseadas em dados.
A jornada geralmente começa com um estudo de caso de Prova de Valor (PoV) em um ambiente de desenvolvimento. Essa abordagem fornece a você uma oportunidade de explorar como a coleta de dados e a modelagem de ativos com uma solução que inclui o AWS IoT SiteWise podem ajudar. À medida que você se sentir confortável com a solução, poderá escalar mais ativos ou instalações para um ambiente de produção a partir do staging ao longo do tempo. Esta postagem do weblog fornece uma visão geral da arquitetura e do código de amostra para migrar os ativos e dados no AWS IoT SiteWise de uma implantação para outra, garantindo a integridade dos dados e minimizando a sobrecarga operacional.
Introdução ao AWS IoT SiteWise
Durante a fase PoV, você estabelece pipelines de ingestão de dados para transmitir dados de sensores quase em tempo actual de historiadores de dados locais ou servidores OPC-UA para o AWS IoT SiteWise. Você pode criar modelos de ativos que representam digitalmente seu equipamento industrial para capturar a hierarquia de ativos e metadados críticos em uma única instalação ou em várias instalações. O AWS IoT SiteWise fornece Operações de API para ajudar você a importar seus dados de modelo de ativos (metadados) de diversos sistemas em massa, como historiadores de processos no AWS IoT SiteWise em escala. Além disso, você pode definir indicadores de desempenho industrial (KPIs) comuns usando o biblioteca interna de operadores e funções disponível no AWS IoT SiteWise. Você também pode criar métricas personalizadas que são acionadas por dados do equipamento na chegada ou computadas em intervalos definidos pelo usuário.
Configurar vários ambientes de não produção em um chão de fábrica pode ser desafiador devido à rede legada e regulamentações rígidas associadas ao chão de fábrica – além de atrasos na aquisição de {hardware}. Muitos clientes fazem a transição do mesmo {hardware} de não produção para produção designando e certificando o {hardware} para uso em produção após a conclusão da validação.
Para acelerar e otimizar o processo de implantação, você precisa de uma abordagem bem definida para migrar seus recursos do IoT SiteWise (ativos, hierarquias, métricas, transformações, séries temporais e metadados) entre contas da AWS como parte de suas práticas padrão de DevOps.
O AWS IoT SiteWise armazena dados em camadas de armazenamento que podem suportar treinamento de modelos de machine studying (ML) ou análise de dados históricos em produção. Por meio deste blogpost, fornecemos um esboço sobre como migrar os modelos de ativos, hierarquias de ativos e dados de séries temporais históricas do ambiente de desenvolvimento para os ambientes de preparação e produção hospedados na AWS.
Passo a passo da solução
Vamos começar discutindo os aspectos técnicos da migração de recursos e dados do AWS IoT SiteWise entre contas da AWS. Fornecemos um guia passo a passo sobre como exportar e importar modelos de ativos e hierarquias usando APIs do IoT SiteWise. Também discutimos como transferir dados de séries temporais históricas usando o Amazon Easy Storage Service (Amazon S3) e o AWS IoT SiteWise BatchPutAssetPropertyValue Operação da API.
Ao seguir essa abordagem, você pode promover sua configuração e dados do AWS IoT SiteWise por meio do ciclo de vida de desenvolvimento à medida que você dimensiona seus aplicativos de IoT industrial para produção. A seguir, uma visão geral do processo:
- Transferência de metadados do AWS IoT Sitewise:
- Exportar modelos e ativos do AWS IoT SiteWise de uma conta AWS (
improvement account
) executando um trabalho de exportação em massa. Você pode usar filtros para exportar os modelos e/ou ativos. - Importe os modelos e/ou ativos exportados para uma segunda conta AWS (
staging account)
executando um trabalho de importação em massa. Os arquivos de importação devem seguir o Esquema de trabalho de transferência de metadados do AWS IoT SiteWise.
- Exportar modelos e ativos do AWS IoT SiteWise de uma conta AWS (
- Transferência de dados de telemetria do AWS IoT Sitewise
- Use as seguintes operações de API para migrar dados de telemetria entre contas:
- Histórico de valores de propriedade de loteGetAsset recupera dados históricos de telemetria do
improvement account
. - CriarBulkImportJob ingere os dados de telemetria recuperados no
staging account
.
- Histórico de valores de propriedade de loteGetAsset recupera dados históricos de telemetria do
- Use as seguintes operações de API para migrar dados de telemetria entre contas:
As etapas de migração de dados em nossa solução fazem as seguintes suposições:
- O
staging account
não tem ativos ou modelos do AWS IoT SiteWise configurados onde ele usa o mesmo nome ou hierarquia que oimprovement account
. - Você replicará os metadados do AWS IoT SiteWise do
improvement account
para ostaging account
. - Você moverá os dados de telemetria do AWS IoT SiteWise do
improvement account
para ostaging account
.
1: Migrar modelos e ativos do AWS IoT SiteWise entre contas da AWS

Figura 1: Arquitetura para migrar metadados do AWS IoT SiteWise entre contas da AWS
SiteWise da AWS IoT suporta operações em massa com ativos e modelos. As operações em massa de metadados ajudam a:
- Exporte modelos e ativos do AWS IoT SiteWise do
improvement account
por executando um trabalho de exportação em massa. Você pode escolher o que exportar ao configurar este trabalho. Para obter mais informações, consulte Exemplos de metadados de exportação.- Exporte todos os ativos e modelos de ativos e filtre seus ativos e modelos de ativos.
- Exporte ativos e filtre-os.
- Exporte modelos de ativos e filtre seus modelos de ativos.
- Importe modelos e ativos do AWS IoT SiteWise para a conta de preparação executando um trabalho de importação em massa. Semelhante ao trabalho de exportação, você pode escolher o que importar. Para obter mais informações, consulte Exemplos de metadados de importação.
- Os arquivos de importação seguem um formato específico. Para mais informações, consulte Esquema de trabalho de transferência de metadados do AWS IoT SiteWise.
2: Migrar dados de telemetria do AWS IoT SiteWise entre contas da AWS
O AWS IoT SiteWise oferece suporte à ingestão de dados históricos de alto quantity usando o CriarBulkImportJob Operação de API para migrar dados de telemetria do improvement account
para o staging account
.

Figura 2: Arquitetura para migrar dados de telemetria do AWS IoT SiteWise entre contas da AWS
2.1 Recuperar dados da conta de desenvolvimento usando BatchGetAssetPropertyValueHistory
O AWS IoT SiteWise tem dados e API SQL operações para recuperar resultados de telemetria. Você pode usar o arquivo de exportação do Export AWS IoT SiteWise fashions and property executando uma etapa de trabalho de exportação em massa para obter uma lista de IDs de ativos e IDs de propriedade do AWS IoT SiteWise para consultar usando o Histórico de valores de propriedade de loteGetAsset Operação da API. O código de exemplo a seguir demonstra a recuperação de dados dos últimos dois dias:
import boto3
import csv
import time
import uuid
"""
Hook up with the IoT SiteWise API and outline the property and properties
to retrieve information for.
"""
sitewise = boto3.shopper('iotsitewise')
# restrict for less than 10 AssetIds/PropertyIDs/EntryIDs per API name
asset_ids = ('a1','a2','a3')
property_ids = ('b1','b2','b3')
"""
Get the beginning and finish timestamps for the date vary of historic information
to retrieve. At present set to the final 2 days.
"""
# Convert present time to Unix timestamp (seconds since epoch)
end_time = int(time.time())
# Begin date 2 days in the past
start_time = end_time - 2*24*60*60
"""
Generate a listing of entries to retrieve property worth historical past.
Loops by the asset_ids and property_ids lists, zipping them
collectively to generate a novel entry for every asset-property pair.
Every entry incorporates a UUID for the entryId, the corresponding
assetId and propertyId, and the beginning and finish timestamps for
the date vary of historic information.
"""
entries = ()
for asset_id, property_id in zip(asset_ids, property_ids):
entry = {
'entryId': str(uuid.uuid4()),
'assetId': asset_id,
'propertyId': property_id,
'startDate': start_time,
'endDate': end_time,
'qualities': ( "GOOD" ),
}
entries.append(entry)
"""
Generate entries dictionary to map entry IDs to the complete entry information
for retrieving property values by entry ID.
"""
entries_dict = {entry('entryId'): entry for entry in entries}
"""
The snippet under retrieves asset property worth historical past from AWS IoT SiteWise utilizing the
`batch_get_asset_property_value_history` API name. The retrieved information is then
processed and written to a CSV file named 'values.csv'.
The script handles pagination through the use of the `nextToken` parameter to fetch
subsequent pages of knowledge. As soon as all information has been retrieved, the script
exits the loop and closes the CSV file.
"""
token = None
with open('values.csv', 'w') as f:
author = csv.author(f)
whereas True:
"""
Make API name, passing entries and token if on subsequent name.
"""
if not token:
property_history = sitewise.batch_get_asset_property_value_history(
entries=entries
)
else:
property_history = sitewise.batch_get_asset_property_value_history(
entries=entries,
nextToken=token
)
"""
Course of success entries, extracting values into a listing of dicts.
"""
for entry in property_history('successEntries'):
entry_id = entry('entryId')
asset_id = entries_dict(entry_id)('assetId')
property_id = entries_dict(entry_id)('propertyId')
for history_values in entry('assetPropertyValueHistory'):
value_dict = history_values.get('worth')
values_dict = {
'ASSET_ID': asset_id,
'PROPERTY_ID': property_id,
'DATA_TYPE': str(checklist(value_dict.keys())(0)).higher().substitute("VALUE", ""),
'TIMESTAMP_SECONDS': history_values('timestamp')('timeInSeconds'),
'TIMESTAMP_NANO_OFFSET': history_values('timestamp')('offsetInNanos'),
'QUALITY': 'GOOD',
'VALUE': value_dict(checklist(value_dict.keys())(0)),
}
author.writerow(checklist(values_dict.values()))
"""
Verify for subsequent token and break when pagination is full.
"""
if 'nextToken' in property_history:
token = property_history('nextToken')
else:
break
2.2 Ingerir dados na conta de preparação usando CreateBulkImportJob
Use o values.csv
arquivo para importar dados para o AWS IoT SiteWise usando o CriarBulkImportJob Operação da API. Defina os seguintes parâmetros ao criar um trabalho de importação usando CreateBulkImportJob
. Para um exemplo de código, veja CriarBulkImportJob na documentação da AWS.
- Substitua o
adaptive-ingestion-flag
comtrue
oufalse
. Para este exercício, defina o valor como verdadeiro.- Ao definir o valor para
true
o trabalho de importação em massa faz o seguinte:- Ingere novos dados no AWS IoT SiteWise.
- Calcula métricas e transformações e oferece suporte a notificações para dados com registro de information e hora dentro de sete dias.
- Se você definir o valor para
false
o trabalho de importação em massa ingere dados históricos no AWS IoT SiteWise.
- Ao definir o valor para
- Substitua o
delete-files-after-import-flag
comtrue
para excluir os dados do bucket de dados do Amazon S3 após a ingestão em Armazenamento de camada quente do AWS IoT SiteWise. Para mais informações, veja Criar um trabalho de importação em massa (AWS CLI).
Limpar
Depois de validar os resultados no staging account
você pode excluir os dados do improvement account
usando AWS IoT SiteWise ExcluirAtivo e Excluir modelo de ativo Operações de API. Como alternativa, você pode continuar a usar o improvement account
para continuar outras atividades de desenvolvimento e testes com os dados históricos.
Conclusão
Nesta postagem do weblog, abordamos o desafio que os clientes industriais enfrentam ao dimensionar suas implantações do AWS IoT SiteWise. Discutimos a transferência do PoV para a produção em várias plantas e linhas de produção e como o AWS IoT SiteWise aborda esses desafios. A migração de metadados (como modelos de ativos, hierarquias de ativos/empresas e dados históricos de telemetria) entre contas da AWS garante um contexto de dados consistente. Ele também oferece suporte à promoção de ativos e dados do Industrial IoT por meio do ciclo de vida do desenvolvimento. Para obter detalhes adicionais, consulte Operações em massa com ativos e modelos.