Compartir a través de


Cómo se procesan los datos en los centros de FinOps

Los centros de FinOps realizan muchas actividades de procesamiento de datos para limpiar, normalizar y optimizar los datos. En las secciones siguientes se muestra cómo fluyen los datos de Cost Management a una instancia del centro.


Configuración del ámbito

Un ámbito es un nivel dentro de la jerarquía de recursos y cuentas en la nube que proporciona acceso a los datos de costo, uso y carbono. En el caso de los centros de FinOps, normalmente se recomienda usar cuentas de facturación de Contrato Enterprise (EA) o perfiles de facturación de Contrato de cliente de Microsoft (MCA), pero cualquier ámbito de nube es suficiente para el análisis básico. La principal preocupación es si se necesitan datos de precios y reservas, ya que Cost Management solo expone los datos de las cuentas de facturación de EA y los perfiles de facturación de MCA.

Los centros de FinOps admiten la configuración de ámbitos mediante la configuración manual de exportaciones de Cost Management o la concesión de acceso a centros de FinOps para administrar ámbitos en su nombre. Los ámbitos administrados se configuran en el archivo config/settings.json en el almacenamiento del concentrador. La información describe lo que sucede cuando se agrega un ámbito administrado nuevo a este archivo. Los ámbitos no administrados, donde las exportaciones de Cost Management se configuran manualmente, no requieren otra configuración.

  1. El desencadenador config_SettingsUpdated se ejecuta cuando se actualiza el archivo settings.json .
  2. La canalización de config_ConfigureExports crea nuevas exportaciones para los nuevos ámbitos que se agregaron.

Ingesta de datos

La ingesta de datos se puede dividir en dos partes:

  1. Exporta datos de inserción al almacenamiento.
  2. Hubs procesa e ingiere datos.

En el caso de los ámbitos administrados, los centros realizan los pasos siguientes:

  1. Los desencadenadores config_DailySchedule y config_MonthlySchedule se ejecutan según sus respectivas programaciones para iniciar la ingesta de datos.
  2. La canalización de config_StartExportProcess obtiene las exportaciones aplicables para la programación que se ejecuta.
  3. La canalización config_RunExportJobs ejecuta cada una de las exportaciones seleccionadas.
  4. Cost Management exporta los detalles de los costos sin procesar al contenedor msexports . Más información.

Una vez ejecutadas las exportaciones, ya sea administradas o no administradas, los centros realizan los pasos siguientes:

  1. La canalización de msexports_ExecuteETL inicia el proceso extract-transform-load (ETL) cuando se agregan archivos al almacenamiento.
  2. La canalización de msexports_ETL_ingestion transforma los datos en formato parquet y lo mueve al contenedor de ingesta mediante una estructura de archivos escalable. Más información.
  3. Power BI u otras herramientas leen datos del contenedor de ingesta .

Acerca de la ingesta

Los centros de FinOps se basan en una ruta de acceso de carpeta específica en el contenedor de ingesta :

ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
  • ingestion es el contenedor donde la canalización de datos guarda los datos.
  • {dataset} es el tipo de conjunto de datos exportado.
  • {month} es el año y el mes de los datos exportados con yyyyMMformato .
  • {scope-id} se espera que sea el identificador de recurso completo del ámbito del que proceden los datos.

Si necesita usar centros para supervisar datos que no son de Azure, convierta los datos en FOCUS y colóquelos en el contenedor de ingesta . Tenga en cuenta que este proceso no se ha probado explícitamente en la versión más reciente. Si experimenta algún problema, cree un problema.


Acerca de las exportaciones

Los centros de FinOps usan exportaciones de Cost Management para obtener datos de costos. Cost Management controla la estructura de carpetas de los datos exportados en el contenedor msexports . Una ruta de acceso típica tiene el siguiente aspecto:

{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}

A partir de la versión 0.4, los centros de FinOps no se basan en rutas de acceso de archivo. Hubs utiliza el archivo de manifiesto para identificar el ámbito, el conjunto de datos, el mes, etc. La única parte importante de la ruta de acceso para los centros es el contenedor, que debe ser msexports.

Advertencia

  • No exporte datos al contenedor de ingesta . Los CSV exportados deben publicarse en el contenedor msexports para que lo procese el motor de concentradores.
  • Para ingerir datos personalizados, guarde los archivos parquet alineados con FOCUS en el contenedor de ingesta para que los informes de Power BI del kit de herramientas de FinOps funcionen según lo previsto.

Los manifiestos de exportación pueden cambiar con versiones de API. Este es un ejemplo con la versión 2023-07-01-previewde API :

{
  "exportConfig": {
    "exportName": "<export-name>",
    "resourceId": "/<scope>/providers/Microsoft.CostManagement/exports/<export-name>",
    "dataVersion": "<dataset-version>",
    "apiVersion": "<api-version>",
    "type": "<dataset-type>",
    "timeFrame": "OneTime|TheLastMonth|MonthToDate",
    "granularity": "Daily"
  },
  "deliveryConfig": {
    "partitionData": true,
    "dataOverwriteBehavior": "CreateNewReport|OverwritePreviousReport",
    "fileFormat": "Csv",
    "containerUri": "<storage-resource-id>",
    "rootFolderPath": "<path>"
  },
  "runInfo": {
    "executionType": "Scheduled",
    "submittedTime": "2024-02-03T18:33:03.1032074Z",
    "runId": "af754a8e-30fc-4ef3-bfc6-71bd1efb8598",
    "startDate": "2024-01-01T00:00:00",
    "endDate": "2024-01-31T00:00:00"
  },
  "blobs": [
    {
      "blobName": "<path>/<export-name>/<date-range>/<export-time>/<guid>/<file-name>.csv",
      "byteCount": ###
    }
  ]
}

Los centros de FinOps usan las siguientes propiedades:

  • exportConfig.resourceId para identificar el ámbito.
  • exportConfig.type para identificar el tipo de conjunto de datos.
  • exportConfig.dataVersion para identificar la versión del conjunto de datos.
  • runInfo.startDate para identificar el mes exportado.

Los centros de FinOps admiten los siguientes tipos de conjunto de datos, versiones y versiones de API:

  • FocusCost: 1.0, 1.0-preview(v1)
  • PriceSheet: 2023-05-01
  • ReservationDetails: 2023-03-01
  • ReservationRecommendations: 2023-05-01
  • ReservationTransactions: 2023-05-01
  • Versiones de API: 2023-07-01-preview

FinOps Hubs v0.4-0.5

En la siguiente información se describe cómo se procesan los datos en FinOps Hubs v0.4-0.5.

Configuración del ámbito en v0.4-0.5

  1. El desencadenador config_SettingsUpdated se ejecuta cuando se actualiza el archivo settings.json .
  2. La canalización de config_ConfigureExports crea nuevas exportaciones para los nuevos ámbitos que se agregaron.

Ingesta de datos en v0.4-0.5

Para ámbitos administrados:

  1. Los desencadenadores config_DailySchedule y config_MonthlySchedule se ejecutan según sus respectivas programaciones para iniciar la ingesta de datos.
  2. La canalización de config_ExportData obtiene las exportaciones aplicables para la programación que se ejecuta.
  3. La canalización config_RunExports ejecuta cada una de las exportaciones seleccionadas.
  4. Cost Management exporta los detalles de los costos sin procesar al contenedor msexports . Para obtener más información, consulte Acerca de las exportaciones en v04-05.

Una vez completadas las exportaciones, tanto para ámbitos administrados como no administrados:

  1. La canalización de msexports_ExecuteETL inicia el proceso extract-transform-load (ETL) cuando se agregan archivos al almacenamiento.
  2. La canalización de msexports_ETL_ingestion transforma los datos en un esquema estándar y guarda los datos sin procesar en formato parquet en el contenedor de ingesta . Para obtener más información, vea Acerca de la ingesta en v04-05.
  3. Power BI lee los datos de costos del contenedor de ingesta .

Acerca de la ingesta en v0.4-0.5

Los centros de FinOps se basan en una ruta de acceso de carpeta específica en el contenedor de ingesta :

ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
  • ingestion es el contenedor donde la canalización de datos guarda los datos.
  • {dataset} es el tipo de conjunto de datos exportado.
  • {month} es el año y el mes de los datos exportados con yyyyMMformato .
  • {scope-id} se espera que sea el identificador de recurso completo del ámbito del que proceden los datos.

Si necesita usar centros para supervisar datos que no son de Azure, convierta los datos en FOCUS y colóquelos en el contenedor de ingesta . Este proceso no se probó explícitamente en la versión más reciente. Si experimenta algún problema, cree un problema.

Acerca de las exportaciones en v0.4-0.5

Los centros de FinOps usan exportaciones de Cost Management para obtener datos de costos. Cost Management controla la estructura de carpetas de los datos exportados en el contenedor msexports . Una ruta de acceso típica tiene el siguiente aspecto:

{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}

A partir de la versión 0.4, los centros de FinOps no se basan en rutas de acceso de archivo. Hubs utiliza el archivo de manifiesto para identificar el ámbito, el conjunto de datos, el mes, etc. La única parte importante de la ruta de acceso para los centros es el contenedor, que debe ser msexports.

Nota:

No exporte datos al contenedor de ingesta . Los CSV exportados deben publicarse en el contenedor msexports para que lo procese el motor de concentradores.

Para ingerir datos personalizados, guarde los archivos parquet alineados con FOCUS en el contenedor de ingesta para que los informes de Power BI del kit de herramientas de FinOps funcionen según lo previsto.

Los manifiestos de exportación pueden cambiar con versiones de API. Este es un ejemplo con la versión 2023-07-01-previewde API :

{
  "exportConfig": {
    "exportName": "<export-name>",
    "resourceId": "/<scope>/providers/Microsoft.CostManagement/exports/<export-name>",
    "dataVersion": "<dataset-version>",
    "apiVersion": "<api-version>",
    "type": "<dataset-type>",
    "timeFrame": "OneTime|TheLastMonth|MonthToDate",
    "granularity": "Daily"
  },
  "deliveryConfig": {
    "partitionData": true,
    "dataOverwriteBehavior": "CreateNewReport|OverwritePreviousReport",
    "fileFormat": "Csv",
    "containerUri": "<storage-resource-id>",
    "rootFolderPath": "<path>"
  },
  "runInfo": {
    "executionType": "Scheduled",
    "submittedTime": "2024-02-03T18:33:03.1032074Z",
    "runId": "af754a8e-30fc-4ef3-bfc6-71bd1efb8598",
    "startDate": "2024-01-01T00:00:00",
    "endDate": "2024-01-31T00:00:00"
  },
  "blobs": [
    {
      "blobName": "<path>/<export-name>/<date-range>/<export-time>/<guid>/<file-name>.csv",
      "byteCount": ###
    }
  ]
}

Los centros de FinOps usan las siguientes propiedades:

  • exportConfig.resourceId para identificar el ámbito.
  • exportConfig.type para identificar el tipo de conjunto de datos.
  • exportConfig.dataVersion para identificar la versión del conjunto de datos.
  • runInfo.startDate para identificar el mes exportado.

Los centros de FinOps admiten los siguientes tipos de conjunto de datos, versiones y versiones de API:

  • FocusCost: 1.0, 1.0-preview(v1)
  • PriceSheet: 2023-05-01
  • ReservationDetails: 2023-03-01
  • ReservationRecommendations: 2023-05-01
  • ReservationTransactions: 2023-05-01
  • Versiones de API: 2023-07-01-preview

FinOps Hubs v0.2-0.3

En los pasos siguientes se describe el proceso de exportación y procesamiento de datos de costos mediante las versiones 0.2-0.3 de FinOps Hubs:

  1. Cost Management exporta los detalles de los costos sin procesar al contenedor msexports . Para obtener más información, vea Acerca de las exportaciones.
  2. La canalización de msexports_ExecuteETL inicia el proceso extract-transform-load (ETL) cuando se agregan archivos al almacenamiento.
  3. La canalización de msexports_ETL_ingestion guarda los datos exportados en formato parquet en el contenedor de ingesta . Para obtener más información, vea Acerca de las exportaciones.
  4. Power BI lee los datos de costos del contenedor de ingesta .

FinOps Hubs 0.2-0.3 usa la ruta de exportación para determinar el ámbito exportado y el mes. Este punto es importante, ya que las actualizaciones de la ruta de acceso pueden interrumpir las canalizaciones de datos. Para evitar este problema, se recomienda actualizar a FinOps Hubs 0.4. La ruta de acceso esperada debe imitar:

msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
  • msexports es el contenedor especificado en la exportación.
  • {scope-id} es la ruta de acceso de carpeta especificada en la exportación.

    Hubs 0.3 y versiones anteriores lo usan para identificar el ámbito del que proceden los datos. Se recomienda usar el identificador de ámbito, pero se puede usar cualquier valor. Los identificadores de ámbito de ejemplo incluyen:

    Tipo de ámbito Valor de ejemplo
    Subscription /subscriptions/###
    Resource group /subscriptions/###/resourceGroups/###
    Cuenta de facturación /providers/Microsoft.Billing/billingAccounts/###
    Perfil de facturación /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
  • {export-name} es el nombre de la exportación.

    Los centros omiten esta carpeta.

  • {date-range} es los datos del intervalo de fechas que se exportan.

    Hubs 0.3 y versiones anteriores lo usan para identificar el mes. El formato de esta carpeta es yyyyMMdd-yyyyMMdd. Hubs 0.4 usa el manifiesto en su lugar.

  • {export-time} es una marca de tiempo de cuando se ejecutó la exportación.

    Los centros omiten esto. El formato de esta carpeta es yyyyMMddHHmm.

  • {guid} es un GUID único y no siempre está presente.

    Los centros omiten esto. Cost Management no siempre incluye esta carpeta. Si se incluye o no depende de la versión de API que se usa para crear la exportación.

  • {file} es un manifiesto o datos exportados.

    La versión 0.3 y anteriores omiten los archivos de manifiesto y solo supervisan los archivos *.csv . En una versión futura, los centros supervisarán el manifiesto.


FinOps Hubs v0.1

En los pasos siguientes se describe el proceso para exportar y procesar datos de costos mediante FinOps Hubs versión 0.1:

  1. Cost Management exporta los detalles de los costos sin procesar al contenedor msexports .
  2. La canalización de msexports_transform guarda los datos sin procesar en formato parquet en el contenedor de ingesta .
  3. Power BI lee los datos de costos del contenedor de ingesta .