Zephyrnet Logosu

Amazon Location Service ve AWS analiz hizmetlerini kullanarak geçmiş konum verilerinden öngörüler elde edin | Amazon Web Hizmetleri

Tarih:

Dünyanın her yerindeki pek çok kuruluş, son müşterilerine hizmet sunmak için araçlar gibi fiziksel varlıkların kullanımına güveniyor. Varlık sahipleri, bu varlıkları gerçek zamanlı olarak takip ederek ve sonuçları saklayarak, iş iyileştirmelerini sürekli olarak sağlamak ve gelecekteki değişiklikleri planlamak için varlıklarının nasıl kullanıldığına ilişkin değerli bilgiler elde edebilir. Örneğin, bir araç filosu işleten bir teslimat şirketinin, kendi kontrolü dışındaki yerel politika değişikliklerinin (örneğin, bir teslimatın duyurulan genişletilmesi) etkisini tespit etmesi gerekebilir. Ultra Düşük Emisyon Bölgesi (ULEZ). Şirket, geçmiş araç konum verilerini diğer kaynaklardan gelen bilgilerle birleştirerek daha iyi karar almaya yönelik ampirik yaklaşımlar geliştirebilir. Örneğin, şirketin satın alma ekibi bu bilgiyi politika değişiklikleri yürürlüğe girmeden önce hangi araçların değiştirilmesine öncelik verileceği konusunda karar vermek için kullanabilir.

Geliştiriciler desteği şurada kullanabilir: Amazon Konum Hizmeti için cihaz konumu güncellemelerini yayınlama için Amazon EventBridge izlenen varlıkların konumlarını saklayan gerçek zamanlıya yakın bir veri hattı oluşturmak Amazon Basit Depolama Hizmeti (Amazon S3). Ek olarak şunları kullanabilirsiniz: AWS Lambda gelen konum verilerini diğer kaynaklardan alınan verilerle zenginleştirmek için Amazon DinamoDB Araç bakım ayrıntılarını içeren tablo. Daha sonra bir veri analisti şunları kullanabilir: coğrafi sorgulama yetenekleri of Amazon Atina Genişletilmiş bir ULEZ'in önerilen sınırları içinde araçlarının çalıştığı gün sayısı gibi bilgiler elde etmek. ULEZ emisyon standartlarını karşılamayan araçlar, bölge içinde çalışmak üzere günlük ücrete tabi olduğundan, miktarı tahmin etmek için konum verilerinin yanı sıra aracın yaşı, mevcut kilometresi ve mevcut emisyon standartları gibi bakım verilerini kullanabilirsiniz. Şirketin günlük ücretler için harcama yapması gerekecekti.

Bu gönderi Amazon Location, EventBridge, Lambda'yı nasıl kullanabileceğinizi gösterir. Amazon Veri Firehoseve Amazon S3'ü kullanarak konuma duyarlı bir veri hattı oluşturun ve bu verileri kullanarak anlamlı içgörüler elde edin. AWS Tutkal ve Athena.

Çözüme genel bakış

Bu, konum tabanlı varlık yönetimi için tamamen sunucusuz bir çözümdür. Çözüm aşağıdaki arayüzlerden oluşur:

  • IoT veya mobil uygulama – Bir mobil uygulama veya Nesnelerin İnterneti (IoT) cihazı, bir şirket aracının kullanımdayken izlenmesine olanak tanır ve mevcut konumunu güvenli bir şekilde AWS'deki veri alma katmanına iletir. Besleme yaklaşımı bu yazının kapsamında değildir. Bunun yerine çözümümüzdeki Lambda işlevi, örnek araç yolculuklarını simüle eder ve Amazon Konum izleyici nesnelerini rastgele konumlarla doğrudan günceller.
  • Veri analizi – İş analistleri, araçlardan toplanan konum verileri de dahil olmak üzere birden fazla veri kaynağından operasyonel bilgiler toplar. Veri analistleri, "Belirli bir aracın önerilen bir bölgede tarihsel olarak ne kadar süre harcadığını ve politikanın son 12 ay içinde yürürlükte olması durumunda ücretlerin maliyeti ne kadar olurdu?" gibi sorulara yanıt arıyor.

Aşağıdaki şemada çözüm mimarisi gösterilmektedir.
Mimari diyagram

İş akışı aşağıdaki temel adımlardan oluşur:

  1. Aracı takip etmek için Amazon Location'ın takip işlevi kullanılır. EventBridge entegrasyonu kullanılarak, filtrelenmiş konumsal güncellemeler bir EventBridge olay veriyoluna yayınlanır. Bu çözüm şunu kullanır: mesafeye dayalı maliyetleri ve titreşimi azaltmak için filtreleme. Mesafeye dayalı filtreleme, cihazların 30 metreden (98.4 fit) daha az hareket ettiği konum güncellemelerini yok sayar.
  2. Amazon Location cihaz konumu etkinlikleri EventBridge'e ulaşıyor default ile otobüs source: ["aws.geo"] ve detail-type: ["Location Device Position Event"]. Bu olayları iki aşağı akış hedefine iletmek için bir kural oluşturulur: bir Lambda işlevi ve bir Firehose dağıtım akışı.
  3. Verileri bir S3 klasörüne aktarmaya yönelik farklı yaklaşımları göstermek için bu gönderide her hedefi temel alan iki farklı model açıklanmıştır:
    1. Lambda işlevi – İlk yaklaşım, gelen konum verilerini doğrudan dönüştürmek için veri hattındaki kodu nasıl kullanabileceğinizi göstermek için bir Lambda işlevini kullanır. Sonuçları bir S3 klasöründe saklamadan önce verileri zenginleştirmek amacıyla ayrı bir veri deposundan (örneğin, bir DynamoDB tablosu veya Müşteri İlişkileri Yönetimi sistemi) ek araç bilgileri almak için Lambda işlevini değiştirebilirsiniz. Bu modelde gelen her olay için Lambda fonksiyonu çağrılır.
    2. Yangın hortumu dağıtım akışı – İkinci yaklaşım, gelen konumsal güncellemeleri hiçbir değişiklik yapmadan bir S3 klasöründe saklamadan önce ara belleğe almak ve gruplamak için bir Firehose dağıtım akışını kullanır. Bu yöntem, depolama tüketimini ve sorgu performansını optimize etmek için GZIP sıkıştırmasını kullanır. Ayrıca şunları da kullanabilirsiniz: veri dönüşümü Data Firehose'un toplu veri dönüşümü gerçekleştirmek için bir Lambda işlevini çağırma özelliği.
  4. AWS Glue, her iki S3 klasör yolunu da tarar, çıkarılan şemalara göre AWS Glue veritabanı tablolarını doldurur ve verileri AWS Glue Veri Kataloğu aracılığıyla diğer analiz uygulamalarının kullanımına sunar.
  5. Athena, S3 klasörlerinde depolanan konum verileri üzerinde jeo-uzaysal sorgular çalıştırmak için kullanılır. Veri Kataloğu, Athena kullanan analiz uygulamalarının Amazon S3'te depolanan konum verilerini bulmasına, okumasına ve işlemesine olanak tanıyan meta veriler sağlar.
  6. Bu çözüm, Amazon Konum izleyiciyi hayali yolculuklardan alınan simüle edilmiş konum verileriyle sürekli olarak güncelleyen bir Lambda işlevini içerir. Lambda işlevi, planlanmış bir EventBridge kuralı kullanılarak düzenli aralıklarla tetiklenir.

Bu çözümü kullanarak kendiniz test edebilirsiniz. AWS Örnekleri GitHub deposu. Depo şunları içerir: AWS Sunucusuz Uygulama Modeli Bu çözümü denemek için (AWS SAM) şablonu ve Lambda kodu gereklidir. bölümündeki talimatlara bakın. README Bu çözümün nasıl sağlanacağına ve kullanımdan kaldırılacağına ilişkin adımlar için dosya.

Bu yayındaki bazı ekran görüntülerindeki görsel düzenler, sizinkilerden farklı görünebilir. AWS Yönetim Konsolu.

Veri üretimi

Bu bölümde yolculuk verilerini manuel veya otomatik olarak oluşturma adımlarını tartışıyoruz.

Yolculuk verilerini manuel olarak oluştur

Cihaz konumlarını kullanarak manüel olarak güncelleyebilirsiniz. AWS Komut Satırı Arayüzü (AWS CLI) komutu aws location batch-update-device-position. Değiştirin tracker-name, device-id, Position, ve SampleTime kendi değerlerinizle eşleştirin ve bir etkinliği yerleştirmek için ardışık güncellemelerin birbirinden 30 metreden fazla uzakta olduğundan emin olun. default EventBridge olay veriyolu:

aws location batch-update-device-position --tracker-name <tracker-name> --updates "[{"DeviceId": "<device-id>", "Position": [<longitude>, <latitude>], "SampleTime": "<YYYY-MM-DDThh:mm:ssZ>"}]"

Simülatörü kullanarak yolculuk verilerini otomatik olarak oluşturun

sağlanan AWS CloudFormation şablon, bir EventBridge zamanlanmış kuralını ve araçlardan izleyici güncellemelerini simüle eden ona eşlik eden bir Lambda işlevini dağıtır. Bu kural varsayılan olarak etkindir ve tarafından belirtilen sıklıkta çalışır. SimulationIntervalMinutes CloudFormation parametresi. Veri oluşturma Lambda işlevi, Amazon Konum izleyiciyi, araçların temel konumlarından rastgele konum farkıyla günceller.

Araç adları ve üs konumları, araçlar.json dosya. Bir aracın başlangıç ​​konumu her gün sıfırlanır ve gerçekçi bir yolculuk simülasyonu sağlamak amacıyla belirli bir günde ULEZ'e girip çıkma yeteneği sağlamak için üs konumları seçilmiştir.

Yapabilirsin kuralı devre dışı bırak EventBridge konsolunda zamanlanmış kural ayrıntılarına giderek geçici olarak. Alternatif olarak parametreyi değiştirin State: ENABLED için State: DISABLED zamanlanmış kural kaynağı için GenerateDevicePositionsScheduleRule içinde şablon.yml dosya. Bu değişikliğin etkili olması için AWS SAM şablonunu yeniden derleyin ve yeniden dağıtın.

Konum verileri ardışık düzeni yaklaşımları

Bu bölümde özetlenen yapılandırmalar, sağlanan AWS SAM şablonu tarafından otomatik olarak dağıtılır. Bu bölümdeki bilgiler çözümün ilgili kısımlarını açıklamak için sağlanmıştır.

Amazon Location cihazı konumu etkinlikleri

Amazon Location, cihaz konumu güncelleme etkinliklerini EventBridge'e aşağıdaki biçimde gönderir:

{
    "version":"0",
    "id":"<event-id>",
    "detail-type":"Location Device Position Event",
    "source":"aws.geo",
    "account":"<account-number>",
    "time":"<YYYY-MM-DDThh:mm:ssZ>",
    "region":"<region>",
    "resources":[
        "arn:aws:geo:<region>:<account-number>:tracker/<tracker-name>"
    ],
    "detail":{
        "EventType":"UPDATE",
        "TrackerName":"<tracker-name>",
        "DeviceId":"<device-id>",
        "SampleTime":"<YYYY-MM-DDThh:mm:ssZ>",
        "ReceivedTime":"<YYYY-MM-DDThh:mm:ss.sssZ>",
        "Position":[
            <longitude>, 
            <latitude>
	]
    }
}

İsteğe bağlı olarak bir belirtebilirsiniz girdi dönüşümü hedefe ulaşmadan önce cihaz konumu olay verilerinin formatını ve içeriğini değiştirmek için.

Lambda kullanarak veri zenginleştirme

Bu modeldeki veri zenginleştirme, Lambda fonksiyonunun çağrılması yoluyla kolaylaştırılır. Bu örnekte bu fonksiyonu çağırıyoruz ProcessDevicePositionve bir Python çalışma zamanı kullanın. Olay verilerini aşağıdaki formatta almak için EventBridge hedef tanımında özel bir dönüşüm uygulanır:

{
    "EventType":<EventType>,
    "TrackerName":<TrackerName>,
    "DeviceId":<DeviceId>,
    "SampleTime":<SampleTime>,
    "ReceivedTime":<ReceivedTime>,
    "Position":[<Longitude>,<Latitude>]
}

Yeniden düzenleme gibi ek dönüşümler uygulayabilirsiniz. Latitude ve Longitude Olayları işleyen aşağı akışlı iş mantığı gerektiriyorsa, verileri ayrı anahtar/değer çiftlerine ayırın.

Aşağıdaki kod, tarafından çalıştırılan Python uygulama mantığını göstermektedir. ProcessDevicePosition Lambda fonksiyonu. Kısalık sağlamak için bu kod parçacığında hata işleme atlandı. Kodun tamamı şurada mevcut GitHub repo.

import json
import os
import uuid
import boto3

# Import environment variables from Lambda function.
bucket_name = os.environ["S3_BUCKET_NAME"]
bucket_prefix = os.environ["S3_BUCKET_LAMBDA_PREFIX"]

s3 = boto3.client("s3")

def lambda_handler(event, context):
    key = "%s/%s/%s-%s.json" % (bucket_prefix,
                                event["DeviceId"],
                                event["SampleTime"],
                                str(uuid.uuid4())
    body = json.dumps(event, separators=(",", ":"))
    body_encoded = body.encode("utf-8")
    s3.put_object(Bucket=bucket_name, Key=key, Body=body_encoded)
    return {
        "statusCode": 200,
        "body": "success"
    }

Önceki kod, EventBridge tarafından alınan her cihaz konumu olayı için bir S3 nesnesi oluşturur. Kod şunu kullanır: DeviceId nesneleri kovaya yazmak için önek olarak.

Olay verilerini diğer kaynakları kullanarak zenginleştirmek için önceki Lambda işlev koduna ek mantık ekleyebilirsiniz. Örnekteki GitHub repo Etkinliğin DynamoDB araç bakım tablosundan alınan verilerle zenginleştirilmesini gösteriyor.

Ön koşula ek olarak AWS Kimlik ve Erişim Yönetimi Rol tarafından sağlanan (IAM) izinleri AWSBasicLambdaExecutionRole, ProcessDevicePosition işlev S3'ü gerçekleştirmek için izin gerektirir put_object eylem ve veri zenginleştirme mantığının gerektirdiği diğer eylemler. Çözümün gerektirdiği IAM izinleri şu belgede belgelenmiştir: şablon.yml dosyası.

{
    "Version":"2012-10-17",
    "Statement":[
        {
            "Action":[
                "s3:ListBucket"
            ],
            "Resource":[
                "arn:aws:s3:::<S3_BUCKET_NAME>"
            ],
            "Effect":"Allow"
        },
        {
            "Action":[
                "s3:PutObject"
            ],
            "Resource":[
                "arn:aws:s3:::<S3_BUCKET_NAME>/<S3_BUCKET_LAMBDA_PREFIX>/*"
            ],
            "Effect":"Allow"
        }
    ]
}

Amazon Data Firehose'u kullanan veri hattı

Firehose dağıtım akışınızı oluşturmak için aşağıdaki adımları tamamlayın:

  1. Amazon Data Firehose konsolunda şunu seçin: Yangın hortumu akışları Gezinti bölmesinde.
  2. Klinik Firehose akışı oluştur.
  3. İçin Kaynakolarak seçin Doğrudan PUT.
  4. İçin Varış yeri, seçmek Amazon S3.
  5. İçin Firehose akış adı, bir ad girin (bu gönderi için, ProcessDevicePositionFirehose).
    Firehose akışı oluştur
  6. Hedef ayarlarını, bölümleme stratejisinin yanı sıra konum verilerinin depolandığı S3 klasörüyle ilgili ayrıntılarla yapılandırın:
    1. kullanım ve Kova ve nesne öneklerini belirlemek için.
    2. kullanım DeviceId nesneleri pakete yazmak için ek bir önek olarak.
  7. etkinleştirme Dinamik bölümleme ve Yeni satır sınırlayıcı bölümlemenin otomatik olarak yapıldığından emin olmak için DeviceIdve Amazon S3'e teslim edilen nesnelerdeki kayıtların arasına yeni satır sınırlayıcılar ekleniyor.

Bunlar, AWS Glue tarafından daha sonra verileri taramak ve Athena'nın bireysel kayıtları tanıması için gereklidir.
Firehose akışı için hedef ayarları

EventBridge kuralı oluşturun ve hedefler ekleyin

EventBridge kuralı ProcessDevicePosition iki hedef tanımlar: ProcessDevicePosition Lambda fonksiyonu ve ProcessDevicePositionFirehose teslimat akışı. Kuralı oluşturmak ve hedefleri eklemek için aşağıdaki adımları tamamlayın:

  1. EventBridge konsolunda yeni bir kural oluşturun.
  2. İçin Name, bir ad girin (bu gönderi için, ProcessDevicePosition).
  3. İçin Olay otobüsüSeç varsayılan.
  4. İçin Kural türü¸ seç Etkinlik düzenine sahip kural.
    EventBridge kuralı ayrıntısı
  5. İçin Olay kaynağıseçin AWS etkinlikleri veya EventBridge iş ortağı etkinlikleri.
    EventBridge olay kaynağı
  6. İçin Yöntemseçin Desen formunu kullan.
  7. içinde Olay düzeni bölüm, belirtin AWS hizmetleri kaynak olarak, Amazon Konum Hizmeti özel hizmet olarak ve Konum Cihazı Konumu Olayı Etkinlik türü olarak
    EventBridge oluşturma yöntemi
  8. İçin Hedef 1, şunu ekleyin ProcessDevicePosition Lambda bir hedef olarak işlev görür.
    EventBridge hedefi 1
  9. Biz kullanmak giriş trafosu S3 paketine aktarılan etkinliği özelleştirmek için.
    EventBridge hedef 1 transformatörü
  10. yapılandırma Giriş yolları haritası ve Giriş şablonu Yükü istenen formatta düzenlemek için.
    1. Aşağıdaki kod giriş yolu haritasıdır:
      {
          EventType: $.detail.EventType
          TrackerName: $.detail.TrackerName
          DeviceId: $.detail.DeviceId
          SampleTime: $.detail.SampleTime
          ReceivedTime: $.detail.ReceivedTime
          Longitude: $.detail.Position[0]
          Latitude: $.detail.Position[1]
      }

    2. Aşağıdaki kod giriş şablonudur:
      {
          "EventType":<EventType>,
          "TrackerName":<TrackerName>,
          "DeviceId":<DeviceId>,
          "SampleTime":<SampleTime>,
          "ReceivedTime":<ReceivedTime>,
          "Position":[<Longitude>, <Latitude>]
      }

  11. İçin Hedef 2, seç ProcessDevicePositionFirehose hedef olarak dağıtım akışı.
    EventBridge hedefi 2

Bu hedef, Firehose dağıtım akışına bir veya daha fazla kaydın yazılmasına izin veren bir IAM rolü gerektirir:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "firehose:PutRecord",
                "firehose:PutRecords"
            ],
            "Resource": [
                "arn:aws:firehose:<region>:<account-id>:deliverystream/<delivery-stream-name>"
            ],
            "Effect": "Allow"
        }
    ]
}

AWS Glue'yu kullanarak verileri tarayın ve kataloglayın

Yeterli veri oluşturulduktan sonra aşağıdaki adımları tamamlayın:

  1. AWS Glue konsolunda seçin Tarayıcıları Gezinti bölmesinde.
  2. Oluşturulan tarayıcıları seçin, location-analytics-glue-crawler-lambda ve location-analytics-glue-crawler-firehose.
  3. Klinik koşmak.

Tarayıcılar, verileri otomatik olarak JSON formatında sınıflandıracak, kayıtları tablolar ve bölümler halinde gruplandıracak ve ilişkili meta verileri AWS Glue Veri Kataloğuna aktaracaktır.
Tarayıcıları

  1. Zaman Son koşu her iki tarayıcının durumları şu şekilde gösterilir: başarılı, iki tablonun (lambda ve firehose) üzerinde oluşturuldu tablolar gidin.

Çözüm, gelen konum verilerini aşağıdakilere göre bölümlere ayırır: deviceid alan. Bu nedenle yeni cihaz veya şema değişikliği olmadığı sürece tarayıcıların tekrar çalışmasına gerek yoktur. Ancak yeni cihazlar eklenirse veya bölümleme için farklı bir alan kullanılırsa tarayıcıların yeniden çalışması gerekir.
tablolar

Artık Athena'yı kullanarak tabloları sorgulamaya hazırsınız.

Athena'yı kullanarak verileri sorgulayın

Athena, barındırıldığı yerde yapılandırılmamış, yarı yapılandırılmış ve yapılandırılmış verileri analiz etmek için oluşturulmuş, sunucusuz, etkileşimli bir analiz hizmetidir. Athena konsolunu ilk defa kullanıyorsanız, talimatları takip et Amazon S3'te bir sorgu sonucu konumu ayarlamak için. Verileri Athena ile sorgulamak için aşağıdaki adımları tamamlayın:

  1. Athena konsolunda sorgu düzenleyicisini açın.
  2. İçin Veri kaynağı, seçmek AwsDataCatalog.
  3. İçin veritabanı, seçmek location-analytics-glue-database.
  4. Seçenekler menüsünde (üç dikey nokta) Önizleme Tablosu Her iki tablonun içeriğini sorgulamak için.
    Önizleme tablosu

Sorgu, halihazırda tabloda depolanan 10 örnek konumsal kaydı görüntüler. Aşağıdaki ekran görüntüsü önizlemeden alınan bir örnektir. firehose tablo. NS firehose tablo, Amazon Konum izleyicisinden alınan ham, değiştirilmemiş verileri depolar.
Sorgu sonuçları
Artık jeouzaysal sorgularla denemeler yapabilirsiniz. 2021 Londra ULEZ genişletmesi için GeoJSON dosyası havuzun bir parçasıdır ve her iki Athena tablosuyla uyumlu bir sorguya dönüştürülmüştür.

  1. İçeriği kopyalayıp yapıştırın 1-firehose-athena-ulez-2021-create-view.sql dosyada bulunan examples/firehose klasörünü sorgu düzenleyicisine kopyalayın.

Bu sorgu şunu kullanır: ST_Within Kaydedilen bir konumun poligon tarafından tanımlanan ULEZ bölgesinin içinde mi yoksa dışında mı olduğunu belirleyen jeouzaysal işlev. Yeni bir görünüm adı verildi ulezvehicleanalysis_firehose yeni bir sütunla oluşturulur, insidezone, kaydedilen konumun bölge içinde mevcut olup olmadığını yakalar.

Basit bir Python yarar İndirilen GeoJSON dosyasında bulunan poligon özelliklerini ST_Polygon dizeleri temel alan bilinen metin formatı Bu doğrudan bir Athena sorgusunda kullanılabilir.

  1. Klinik Önizleme Görünümü üzerinde ulezvehicleanalysis_firehose içeriğini keşfetmek için görüntüleyin.
    Önizleme görünümü

Kapsamlı içgörüler elde etmek için artık bu görünüme karşı sorgular çalıştırabilirsiniz.

  1. İçeriği kopyalayıp yapıştırın 2-firehose-athena-ulez-2021-query-days-in-zone.sql dosyada bulunan examples/firehose klasörünü sorgu düzenleyicisine kopyalayın.

Bu sorgu, her aracın ULEZ'e girdiği toplam gün sayısını ve beklenen toplam ücretlerin ne olacağını belirler. Sorgu kullanılarak parametrelendirilmiştir. ? yer tutucu karakter. Parametreli sorgular aynı sorguyu farklı parametre değerleriyle yeniden çalıştırmanıza olanak tanır.

  1. Günlük ücret tutarını girin Parametre 1, ardından sorguyu çalıştırın.
    sorgu düzenleyici

Sonuçlar her bir aracı, önerilen ULEZ'de geçirilen toplam gün sayısını ve girdiğiniz günlük ücrete göre toplam ücretleri gösterir.
Sorgu sonuçları
Bu alıştırmayı kullanarak tekrarlayabilirsiniz. lambda masa. Veriler lambda tablosu, Lambda işlevi tarafından işlendiği sırada araç bakımı DynamoDB tablosunda mevcut olan ek araç ayrıntılarıyla zenginleştirilir. Çözüm aşağıdaki alanları desteklemektedir:

  • MeetsEmissionStandards (Boole)
  • Mileage (Sayı)
  • PurchaseDate (Dize, içinde YYYY-MM-DD biçim)

Ayrıca yeni verileri geldikçe zenginleştirebilirsiniz.

  1. DynamoDB konsolunda aşağıdaki araç bakım tablosunu bulun: tablolar. Tablo adı çıktı olarak sağlanır VehicleMaintenanceDynamoTable dağıtılan CloudFormation yığınında.
  2. Klinik Tablo öğelerini keşfedin Tablonun içeriğini görüntülemek için.
  3. Klinik Öğe oluştur bir araç için yeni bir kayıt oluşturmak.
    Öğe oluştur
  4. Keşfet DeviceId (Örneğin vehicle1 bir Dize olarak), PurchaseDate (Örneğin 2005-10-01 bir Dize olarak), Mileage (Örneğin 10000 Sayı olarak) ve MeetsEmissionStandards (gibi bir değerle False Boolean olarak).
  5. Klinik Öğe oluştur kaydı oluşturmak için.
    Öğe oluştur
  6. Yeni oluşturulan kaydı diğer araçlar için ek girişlerle çoğaltın (örn. vehicle2 or vehicle3), niteliklerin değerlerini her seferinde biraz değiştirerek.
  7. yeniden çalıştırın location-analytics-glue-crawler-lambda Yeni alanlarla şema güncellemesinin kaydedildiğini doğrulamak için yeni veriler oluşturulduktan sonra AWS Glue tarayıcısı.
  8. İçeriği kopyalayıp yapıştırın 1-lambda-athena-ulez-2021-create-view.sql dosyada bulunan examples/lambda klasörünü sorgu düzenleyicisine kopyalayın.
  9. Önizleme ulezvehicleanalysis_lambda Yeni sütunların oluşturulduğunu onaylamak için görünümü seçin.

gibi hatalar varsa Column 'mileage' cannot be resolved görüntüleniyor, veri zenginleştirme gerçekleşmiyor veya AWS Glue tarayıcısı henüz şemada güncelleme algılamadı.

Eğer Tabloyu önizleme seçeneği yalnızca DynamoDB tablosunda kayıt oluşturmadan önceki sonuçları döndürüyor; sorgu sonuçlarını aşağıdakileri kullanarak azalan sırada döndürün: sampletime (Örneğin, order by sampletime desc limit 100;).
Sorgu sonuçları
Artık emisyon standartlarını karşılamayan araçlara odaklanıyoruz ve araçları yıllık kilometreye (yıl olarak aracın en son kilometresi/yaşı kullanılarak hesaplanan) dayalı olarak azalan sırada sıralıyoruz.

  1. İçeriği kopyalayıp yapıştırın 2-lambda-athena-ulez-2021-query-days-in-zone.sql dosyada bulunan examples/lambda klasörünü sorgu düzenleyicisine kopyalayın.
    Sorgu sonuçları

Bu örnekte, araç filomuzdan beş tanesinin emisyon standartlarını karşılamadığının raporlandığını görüyoruz. Ayrıca yılda yüksek kilometre yapan araçları ve önerilen ULEZ'de geçirilen gün sayısını da görebiliyoruz. Filo operatörü artık bu araçlara değişim için öncelik vermeye karar verebilir. Konum verileri, alındığı andaki en güncel araç bakım verileriyle zenginleştirildiğinden, bu sorguları belirli bir zaman aralığında çalışacak şekilde daha da geliştirebilirsiniz. Örneğin, geçen yıl içindeki kilometre değişikliklerini hesaba katabilirsiniz.

Veri zenginleştirmenin dinamik doğası nedeniyle, sorgu sonuçlarıyla birlikte Amazon S3'e aktarılan tüm yeni veriler, DynamoDB araç bakım tablosundaki kayıtlar güncellendiğinde değiştirilecektir.

Temizlemek

bölümündeki talimatlara bakın. README Bu çözüm için sağlanan kaynakları temizleyecek dosya.

Sonuç

Bu gönderi, konuma duyarlı bir veri hattı oluşturmak için Amazon Location, EventBridge, Lambda, Amazon Data Firehose ve Amazon S3'ü nasıl kullanabileceğinizi ve AWS Glue ve Athena'yı kullanarak analitik içgörüler sağlamak için toplanan cihaz konumu verilerini nasıl kullanabileceğinizi gösterdi. Şirketler, bu varlıkları gerçek zamanlı olarak takip ederek ve sonuçları saklayarak, filolarının ne kadar etkili kullanıldığına dair değerli bilgiler elde edebilir ve gelecekteki değişikliklere daha iyi tepki verebilir. Artık bu örnek kodu kendi cihaz izleme verileriniz ve analiz gereksinimlerinizle genişletmeyi keşfedebilirsiniz.


Yazarlar Hakkında

Alan Peaty AWS'de Kıdemli Ortak Çözüm Mimarıdır. Alan, Küresel Sistem Entegratörlerinin (GSI'ler) ve Küresel Bağımsız Yazılım Satıcılarının (GISV'ler) AWS hizmetlerini kullanarak karmaşık müşteri sorunlarını çözmelerine yardımcı oluyor. Alan, AWS'ye katılmadan önce iş gereksinimlerini teknik çözümlere dönüştürmek için sistem entegratörlerinde mimar olarak çalıştı. Alan, iş dışında bir IoT tutkunu ve İngiltere kırsalındaki çamurlu patikalarda koşmayı seven keskin bir koşucu.

Parag Srivastava AWS'de Çözüm Mimarıdır ve kurumsal müşterilere bulutu başarılı bir şekilde benimseme ve taşıma konusunda yardımcı olur. Profesyonel kariyeri boyunca karmaşık dijital dönüşüm projelerinde yoğun bir şekilde yer aldı. Ayrıca adreslerin coğrafi yönleri etrafında yenilikçi çözümler üretme konusunda da tutkulu.

spot_img

En Son İstihbarat

spot_img