En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

Pourquoi ne puis-je pas consulter mes dernières données de facturation lorsque je consulte mes rapports de coûts et d’utilisation utilisant Amazon Athena ?

Lecture de 5 minute(s)
0

Je n’arrive pas à consulter mes dernières données de facturation lorsque je consulte mes rapports de coûts et d'utilisation qui utilisent Amazon Athena.

Résolution

La raison la plus courante de ce problème est l’absence de partitions dans le tableau des rapports sur les coûts et l’utilisation. Pour résoudre cette problème, choisissez une ou plusieurs des solutions suivantes.

Partitions de table de chargement pour le tableau des rapports de coûts et d’utilisation créé manuellement

Si vous avez créé manuellement le tableau des rapports sur les coûts et l’utilisation, exécutez la commande MSCK REPAIR TABLE dans la console Amazon Athena. Cette commande charge les partitions de table. Vous pouvez également charger les partitions depuis la console Amazon Athena.

Si vous configurez un robot d’exploration AWS Glue pour ajouter régulièrement des partitions à votre table, vérifiez que l’exécution du robot d'exploration est programmée. Sinon, lorsque vous générez le rapport, vous risquez de ne pas obtenir les dernières données de facturation.

Vérifiez le chemin Amazon Simple Storage Service (Amazon S3) et le robot AWS Glue

Vous pouvez utiliser un modèle AWS CloudFormation pour intégrer vos rapports de coûts et d’utilisation à Athena. Ce modèle inclut un robot d’exploration AWS Glue, une base de données AWS Glue et un événement AWS Lambda. La fonction Lambda lance un robot d’exploration AWS Glue lorsque de nouveaux fichiers de rapports sur les coûts et l’utilisation sont envoyés vers le chemin Amazon S3. Ensuite, le robot ajoute automatiquement des partitions à la table en fonction des données contenues dans les fichiers de rapports sur les coûts et l’utilisation.

Si vous ne pouvez pas afficher les dernières données de facturation lorsque vous interrogez le tableau, vérifiez votre chemin S3. Assurez-vous que les fichiers des rapports sur les coûts et l’utilisation sont fournis. Vérifiez également que le statut RUNNING ou FAILED de votre robot d’exploration AWS Glue n’est pas en cours d’exécution.

Utilisez la projection de partition pour remplir automatiquement les partitions

Vous pouvez créer le tableau des rapports sur les coûts et l’utilisation qui utilise la projection des partitions. Dans la projection des partitions, les valeurs et les emplacements des partitions sont calculés dynamiquement au lieu d’être stockés physiquement dans le catalogue de données AWS Glue. Il n’est pas nécessaire d’ajouter manuellement les partitions pour afficher les données les plus récentes. Vous pouvez interroger les fichiers de rapports immédiatement après leur livraison dans votre compartiment Amazon S3.

**Remarque :**Assurez-vous de sélectionner Athena pour Activer l’intégration des données des rapports lorsque vous créez les rapports sur les coûts et l'utilisation. Les fichiers de rapports sont ensuite transmis au compte cible au format parquet partitionné. La livraison des fichiers de rapports aux fichiers cibles peut prendre jusqu’à 24 heures. Les chemins de fichiers ressemblent à ce qui suit :

s3://example-report-prefix/example-report-name/example-report-name/year=2021/month=1
s3://example-report-prefix/example-report-name/example-report-name/year=2021/month=2

Pour créer un tableau des rapports sur les coûts et l’utilisation qui utilise la projection de partition, procédez comme suit :

  1. Ouvrez la console Amazon Athena.

  2. Dans l’onglet Editeur de requêtes, entrez une commande similaire à la suivante :

    CREATE EXTERNAL TABLE test_cur_partitionprojection(  `identity_line_item_id` string,
      `identity_time_interval` string,
      `bill_invoice_id` string,
      `bill_billing_entity` string,
      `bill_bill_type` string,
      `bill_payer_account_id` string,
      `bill_billing_period_start_date` timestamp,
      `bill_billing_period_end_date` timestamp,
      `line_item_usage_account_id` string,
      `line_item_line_item_type` string,
      `line_item_usage_start_date` timestamp,
      `line_item_usage_end_date` timestamp,
      `line_item_product_code` string,
      `line_item_usage_type` string,
      `line_item_operation` string,
      `line_item_availability_zone` string,
      `line_item_usage_amount` double,
      `line_item_normalization_factor` double,
      `line_item_normalized_usage_amount` double,
      `line_item_currency_code` string,
      `line_item_unblended_rate` string,
      `line_item_unblended_cost` double,
      `line_item_blended_rate` string,
      `line_item_blended_cost` double,
      `line_item_line_item_description` string,
      `line_item_tax_type` string,
      `line_item_legal_entity` string,
      `product_product_name` string,
      `product_alarm_type` string,
      `product_availability` string,
      `product_bundle` string,
      `product_bundle_description` string,
      `product_bundle_group` string,
      `product_capacitystatus` string,
      `product_clock_speed` string,
      `product_component` string,
      `product_compute_type` string,
      `product_content_type` string,
      `product_cputype` string,
      `product_current_generation` string,
      `product_database_engine` string,
      `product_dedicated_ebs_throughput` string,
      `product_deployment_option` string,
      `product_description` string,
      `product_durability` string,
      `product_ecu` string,
      `product_edition` string,
      `product_engine_code` string,
      `product_enhanced_networking_supported` string,
      `product_event_type` string,
      `product_free_query_types` string,
      `product_free_trial` string,
      `product_from_location` string,
      `product_from_location_type` string,
      `product_gpu` string,
      `product_gpu_memory` string,
      `product_group` string,
      `product_group_description` string,
      `product_instance_family` string,
      `product_instance_name` string,
      `product_instance_type` string,
      `product_instance_type_family` string,
      `product_intel_avx2_available` string,
      `product_intel_avx_available` string,
      `product_intel_turbo_available` string,
      `product_license` string,
      `product_license_model` string,
      `product_location` string,
      `product_location_type` string,
      `product_logs_destination` string,
      `product_max_iops_burst_performance` string,
      `product_max_iopsvolume` string,
      `product_max_throughputvolume` string,
      `product_max_volume_size` string,
      `product_maximum_extended_storage` string,
      `product_maximum_storage_volume` string,
      `product_memory` string,
      `product_memorytype` string,
      `product_message_delivery_frequency` string,
      `product_message_delivery_order` string,
      `product_min_volume_size` string,
      `product_minimum_storage_volume` string,
      `product_network_performance` string,
      `product_normalization_size_factor` string,
      `product_operating_system` string,
      `product_operation` string,
      `product_origin` string,
      `product_physical_cpu` string,
      `product_physical_gpu` string,
      `product_physical_processor` string,
      `product_pre_installed_sw` string,
      `product_processor_architecture` string,
      `product_processor_features` string,
      `product_product_family` string,
      `product_queue_type` string,
      `product_recipient` string,
      `product_region` string,
      `product_resource_type` string,
      `product_rootvolume` string,
      `product_routing_target` string,
      `product_routing_type` string,
      `product_running_mode` string,
      `product_servicecode` string,
      `product_servicename` string,
      `product_sku` string,
      `product_software_included` string,
      `product_software_type` string,
      `product_standard_storage_retention_included` string,
      `product_storage` string,
      `product_storage_class` string,
      `product_storage_media` string,
      `product_storage_type` string,
      `product_subscription_type` string,
      `product_tenancy` string,
      `product_to_location` string,
      `product_to_location_type` string,
      `product_transfer_type` string,
      `product_usagetype` string,
      `product_uservolume` string,
      `product_vcpu` string,
      `product_version` string,
      `product_volume_api_name` string,
      `product_volume_type` string,
      `pricing_rate_id` string,
      `pricing_currency` string,
      `pricing_public_on_demand_cost` double,
      `pricing_public_on_demand_rate` string,
      `pricing_term` string,
      `pricing_unit` string,
      `reservation_amortized_upfront_cost_for_usage` double,
      `reservation_amortized_upfront_fee_for_billing_period` double,
      `reservation_effective_cost` double,
      `reservation_end_time` string,
      `reservation_modification_status` string,
      `reservation_normalized_units_per_reservation` string,
      `reservation_number_of_reservations` string,
      `reservation_recurring_fee_for_usage` double,
      `reservation_start_time` string,
      `reservation_subscription_id` string,
      `reservation_total_reserved_normalized_units` string,
      `reservation_total_reserved_units` string,
      `reservation_units_per_reservation` string,
      `reservation_unused_amortized_upfront_fee_for_billing_period` double,
      `reservation_unused_normalized_unit_quantity` double,
      `reservation_unused_quantity` double,
      `reservation_unused_recurring_fee` double,
      `reservation_upfront_value` double,
      `savings_plan_total_commitment_to_date` double,
      `savings_plan_savings_plan_a_r_n` string,
      `savings_plan_savings_plan_rate` double,
      `savings_plan_used_commitment` double,
      `savings_plan_savings_plan_effective_cost` double,
      `savings_plan_amortized_upfront_commitment_for_billing_period` double,
      `savings_plan_recurring_commitment_for_billing_period` double)
    PARTITIONED BY (
      `year` int,
      `month` int)
    ROW FORMAT SERDE
      'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
    STORED AS INPUTFORMAT
      'org.apache.hadoop.mapred.TextInputFormat'
    OUTPUTFORMAT
      'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
    LOCATION
      's3://example-report-prefix/example-report-name/example-report-name'
    TBLPROPERTIES (
      'projection.enabled'='true',
      'projection.month.range'='1,12',
      'projection.month.type'='integer',
      'projection.year.range'='1900,2050',
      'projection.year.type'='integer',
      'storage.location.template'='s3://example-report-prefix/example-report-name/example-report-name/year=${year}/month=${month}')
  3. Choisissez Enregistrer sous.

  4. Choisissez Exécuter la requête pour créer la table test_cur_partitionprojection.

Vous pouvez interroger la table immédiatement après sa création. Pour plus d’informations, consultez la section Interroger les rapports de coûts et d’utilisation à l’aide d’Amazon Athena.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an