Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Extraia e consulte atributos de SiteWise metadados do AWS IoT em um data lake - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Extraia e consulte atributos de SiteWise metadados do AWS IoT em um data lake

Criado por Ambarish Dongaonkar (AWS)

Resumo

O AWS IoT SiteWise usa modelos e hierarquias de ativos para representar seus equipamentos, processos e instalações industriais. Cada modelo ou ativo pode ter vários atributos específicos do seu ambiente. Exemplos de atributos de metadados incluem o local ou a localização física do ativo, detalhes da planta e identificadores do equipamento. Esses valores de atributos complementam os dados de medição de ativos para maximizar o valor comercial. O machine learning (ML) pode fornecer informações adicionais sobre esses metadados e simplificar as tarefas de engenharia.

No entanto, os atributos de metadados não podem ser consultados diretamente do serviço AWS SiteWise IoT. Para tornar os atributos consultáveis, você deve extraí-los e ingeri-los em um data lake. Esse padrão usa um script Python para extrair os atributos de todos os ativos do AWS SiteWise IoT e ingeri-los em um data lake em um bucket do Amazon Simple Storage Service (Amazon S3). Ao concluir esse processo, você pode usar consultas SQL no Amazon Athena para acessar os atributos de metadados do AWS SiteWise IoT e outros conjuntos de dados, como conjuntos de dados de medição. As informações do atributo de metadados também são úteis ao trabalhar com monitores ou painéis do AWS SiteWise IoT. Você também pode criar um QuickSight painel da AWS usando os atributos extraídos no bucket do S3.

O padrão tem código de referência, e você pode implementar o código usando os melhores serviços de computação para seu caso de uso, como AWS Lambda ou AWS Glue.

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

  • Permissões para configurar funções do AWS Lambda ou trabalhos do AWS Glue.

  • Um bucket do Amazon S3.

  • Os modelos e hierarquias de ativos são configurados no AWS IoT. SiteWise Para obter mais informações, consulte Criação de modelos de ativos ( SiteWise documentação do AWS IoT).

Arquitetura

É possível usar uma função do Lambda ou um trabalho do AWS Glue para concluir esse processo. Recomendamos usar o Lambda se você tiver menos de 100 modelos e cada modelo tiver uma média de 15 ou menos atributos. Para todos os outros casos de uso, recomendamos o uso do AWS Glue.

A arquitetura da solução e o fluxo de trabalho são mostrados no diagrama a seguir.

Diagrama de arquitetura mostrando o processo de extração e consulta descrito.
  1. A tarefa programada do AWS Glue ou a função do Lambda é executada. Ele extrai os atributos de metadados do ativo do AWS SiteWise IoT e os ingere em um bucket do S3.

  2. Um crawler do AWS Glue rastreia os dados extraídos no bucket do S3 e cria tabelas em um catálogo de dados do AWS Glue.

  3. Usando o SQL padrão, o Amazon Athena consulta as tabelas no catálogo de dados do AWS Glue.

Automação e escala

Você pode programar a função Lambda ou o trabalho do AWS Glue para execução diária ou semanal, de acordo com a frequência de atualização das suas configurações de ativos do AWS SiteWise IoT.

Não há limite para o número de SiteWise ativos do AWS IoT que o código de amostra pode processar, mas um grande número de ativos pode aumentar o tempo necessário para concluir o processo.

Ferramentas

  • O Amazon Athena é um serviço de consultas interativas que ajuda a análise de dados diretamente no Amazon Simple Storage Service (Amazon S3) usando SQL padrão.

  • O AWS Glue é um serviço de extração, transformação e carregamento (ETL) totalmente gerenciado. Ele ajuda você a categorizar de forma confiável, limpar, enriquecer e mover dados de forma confiável entre armazenamento de dados e fluxos de dados.

  • O AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.

  • O AWS IoT SiteWise ajuda você a coletar, modelar, analisar e visualizar dados de equipamentos industriais em grande escala.

  • O AWS Lambda é um serviço de computação que ajuda você a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

  • O AWS SDK para Python (Boto3) é um kit de desenvolvimento de software que ajuda você a integrar seu aplicativo, biblioteca ou script do Python aos serviços da AWS.

Épicos

TarefaDescriçãoHabilidades necessárias

Configurar permissões do IAM.

No console do IAM, conceda permissões ao perfil do IAM assumida pela função do Lambda ou pelo trabalho do AWS Glue para fazer o seguinte:

  • Leia sobre o serviço AWS IoT SiteWise

  • Gravar o bucket do S3

Para obter mais informações, consulte Criar uma função para um serviço da AWS (documentação do IAM).

AWS geral

Crie a função do Lambda ou o trabalho do AWS Glue.

Se você estiver usando o Lambda, crie uma nova função do Lambda. Em Runtime, selecione Python. Para obter mais informações, consulte Construir funções do Lambda com Python (documentação do Lambda).

Se você estiver usando o AWS Glue, crie um novo trabalho de shell do Python no console do AWS Glue. Para obter mais informações, consulte Adicionar trabalhos de shell do Python (documentação do AWS Glue). 

AWS geral

Atualize a função do Lambda ou a tarefa do AWS Glue.

Modifique a nova função do Lambda ou o trabalho do AWS Glue e insira o exemplo de código na seção Informações adicionais. Modifique o código conforme necessário para seu caso de uso. Para obter mais informações, consulte Edição do código usando o editor do console (documentação do Lambda) e Trabalho com scripts na documentação do AWS Glue.

AWS geral

Configurar o trabalho ou a função

TarefaDescriçãoHabilidades necessárias

Configurar permissões do IAM.

No console do IAM, conceda permissões ao perfil do IAM assumida pela função do Lambda ou pelo trabalho do AWS Glue para fazer o seguinte:

  • Leia sobre o serviço AWS IoT SiteWise

  • Gravar o bucket do S3

Para obter mais informações, consulte Criar uma função para um serviço da AWS (documentação do IAM).

AWS geral

Crie a função do Lambda ou o trabalho do AWS Glue.

Se você estiver usando o Lambda, crie uma nova função do Lambda. Em Runtime, selecione Python. Para obter mais informações, consulte Construir funções do Lambda com Python (documentação do Lambda).

Se você estiver usando o AWS Glue, crie um novo trabalho de shell do Python no console do AWS Glue. Para obter mais informações, consulte Adicionar trabalhos de shell do Python (documentação do AWS Glue). 

AWS geral

Atualize a função do Lambda ou a tarefa do AWS Glue.

Modifique a nova função do Lambda ou o trabalho do AWS Glue e insira o exemplo de código na seção Informações adicionais. Modifique o código conforme necessário para seu caso de uso. Para obter mais informações, consulte Edição do código usando o editor do console (documentação do Lambda) e Trabalho com scripts na documentação do AWS Glue.

AWS geral
TarefaDescriçãoHabilidades necessárias

Execute a função do Lambda ou o trabalho do AWS Glue.

Execute a função do Lambda ou o trabalho do AWS Glue. Para obter mais informações, consulte Invocar a função do Lambda, na documentação do Lambda, ou Como iniciar trabalhos usando gatilhos na documentação do AWS Glue. Isso extrai os atributos de metadados dos ativos e modelos na hierarquia do AWS SiteWise IoT e os armazena no bucket S3 especificado.

AWS geral

Configure um crawler do AWS Glue.

Configure um crawler do AWS Glue com o classificador de formato necessário para um arquivo no formato CSV. Use o bucket do S3 e os detalhes do prefixo usados na função do Lambda ou na tarefa do AWS Glue. Para obter mais informações, consulte Definição de crawlers (documentação do AWS Glue).

AWS geral

Execute o crawler do AWS Glue.

Execute o crawler para processar o arquivo de dados criado pela função do Lambda ou pelo trabalho do AWS Glue. O crawler cria uma tabela no Catálogo de dados do AWS Glue especificado. Para obter mais informações, consulte Como iniciar crawlers usando gatilhos (documentação do AWS Glue).

AWS geral

Consulte os atributos dos metadados.

Ao usar o Amazon Athena, use o SQL padrão para consultar o catálogo de dados do AWS Glue conforme necessário para seu caso de uso. Você pode unir a tabela de atributos de metadados com outros bancos de dados e tabelas. Para obter mais informações, consulte Conceitos básicos (documentação do Amazon Athena).

AWS geral

Executar o trabalho ou função

TarefaDescriçãoHabilidades necessárias

Execute a função do Lambda ou o trabalho do AWS Glue.

Execute a função do Lambda ou o trabalho do AWS Glue. Para obter mais informações, consulte Invocar a função do Lambda, na documentação do Lambda, ou Como iniciar trabalhos usando gatilhos na documentação do AWS Glue. Isso extrai os atributos de metadados dos ativos e modelos na hierarquia do AWS SiteWise IoT e os armazena no bucket S3 especificado.

AWS geral

Configure um crawler do AWS Glue.

Configure um crawler do AWS Glue com o classificador de formato necessário para um arquivo no formato CSV. Use o bucket do S3 e os detalhes do prefixo usados na função do Lambda ou na tarefa do AWS Glue. Para obter mais informações, consulte Definição de crawlers (documentação do AWS Glue).

AWS geral

Execute o crawler do AWS Glue.

Execute o crawler para processar o arquivo de dados criado pela função do Lambda ou pelo trabalho do AWS Glue. O crawler cria uma tabela no Catálogo de dados do AWS Glue especificado. Para obter mais informações, consulte Como iniciar crawlers usando gatilhos (documentação do AWS Glue).

AWS geral

Consulte os atributos dos metadados.

Ao usar o Amazon Athena, use o SQL padrão para consultar o catálogo de dados do AWS Glue conforme necessário para seu caso de uso. Você pode unir a tabela de atributos de metadados com outros bancos de dados e tabelas. Para obter mais informações, consulte Conceitos básicos (documentação do Amazon Athena).

AWS geral

Recursos relacionados

Mais informações

Código

O código de amostra fornecido é para referência, e você pode personalizar esse código conforme necessário para seu caso de uso.

# Following code can be used in an AWS Lambda function or in an AWS Glue Python shell job.  # IAM roles used for this job need read access to the AWS IoT SiteWise service and write access to the S3 bucket. sw_client = boto3.client('iotsitewise') s3_client = boto3.client('s3') output = io.StringIO()   attribute_list=[] bucket = '{3_bucket name}' prefix = '{s3_bucket prefix}' output.write("model_id,model_name,asset_id,asset_name,attribuet_id,attribute_name,attribute_value\n")       m_resp = sw_client.list_asset_models() for m_rec in m_resp['assetModelSummaries']:      model_id = m_rec['id']      model_name = m_rec['name']        attribute_list.clear()      dam_response = sw_client.describe_asset_model(assetModelId=model_id)      for rec in dam_response['assetModelProperties']:          if 'attribute' in rec['type']:             attribute_list.append(rec['name'])            response = sw_client.list_assets(assetModelId=model_id, filter='ALL')      for asset in response['assetSummaries']:          asset_id = asset['id']          asset_name = asset['name']          resp = sw_client.describe_asset(assetId=asset_id)          for rec in resp['assetProperties']:             if rec['name'] in attribute_list:                 p_resp = sw_client.get_asset_property_value(assetId=asset_id, propertyId=rec['id'])                 if 'propertyValue' in p_resp:                     if p_resp['propertyValue']['value']:                         if 'stringValue' in p_resp['propertyValue']['value']:                              output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['stringValue']) + "\n")                                                      if 'doubleValue' in p_resp['propertyValue']['value']:                              output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['doubleValue']) + "\n")                         if 'integerValue' in p_resp['propertyValue']['value']:                              output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['integerValue']) + "\n")                          if 'booleanValue' in p_resp['propertyValue']['value']:                              output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['booleanValue']) + "\n")   output.seek(0) s3_client.put_object(Bucket=bucket, Key= prefix + '/data.csv', Body=output.getvalue()) output.close()
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.