async def sample_create_data_feed_async():
    # [START create_data_feed_async]
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential
    from azure.ai.metricsadvisor.aio import MetricsAdvisorAdministrationClient
    from azure.ai.metricsadvisor.models import (
        SQLServerDataFeedSource,
        DataFeedSchema,
        DataFeedMetric,
        DataFeedDimension,
        DataFeedOptions,
        DataFeedRollupSettings,
        DataFeedMissingDataPointFillSettings,
    )

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    sql_server_connection_string = os.getenv(
        "METRICS_ADVISOR_SQL_SERVER_CONNECTION_STRING")
    query = os.getenv("METRICS_ADVISOR_SQL_SERVER_QUERY")

    client = MetricsAdvisorAdministrationClient(
        service_endpoint, MetricsAdvisorKeyCredential(subscription_key,
                                                      api_key))
    async with client:
        data_feed = await client.create_data_feed(
            name="My data feed",
            source=SQLServerDataFeedSource(
                connection_string=sql_server_connection_string,
                query=query,
            ),
            granularity="Daily",
            schema=DataFeedSchema(metrics=[
                DataFeedMetric(name="cost", display_name="Cost"),
                DataFeedMetric(name="revenue", display_name="Revenue")
            ],
                                  dimensions=[
                                      DataFeedDimension(
                                          name="category",
                                          display_name="Category"),
                                      DataFeedDimension(name="city",
                                                        display_name="City")
                                  ],
                                  timestamp_column="Timestamp"),
            ingestion_settings=datetime.datetime(2019, 10, 1),
            options=DataFeedOptions(
                data_feed_description="cost/revenue data feed",
                rollup_settings=DataFeedRollupSettings(
                    rollup_type="AutoRollup",
                    rollup_method="Sum",
                    rollup_identification_value="__CUSTOM_SUM__"),
                missing_data_point_fill_settings=
                DataFeedMissingDataPointFillSettings(fill_type="SmartFilling"),
                access_mode="Private"))

        return data_feed
    def _create_data_feed_for_update(self, name):
        data_feed_name = create_random_name(name)
        return self.admin_client.create_data_feed(
            name=data_feed_name,
            source=SQLServerDataFeedSource(
                connection_string=self.sql_server_connection_string,
                query=u"select * from adsample2 where Timestamp = @StartTime"
            ),
            granularity=DataFeedGranularity(
                granularity_type="Daily",
            ),
            schema=DataFeedSchema(
                metrics=[
                    DataFeedMetric(name="cost", display_name="display cost", description="the cost"),
                    DataFeedMetric(name="revenue", display_name="display revenue", description="the revenue")
                ],
                dimensions=[
                    DataFeedDimension(name="category", display_name="display category"),
                    DataFeedDimension(name="city", display_name="display city")
                ],
                timestamp_column="Timestamp"
            ),
            ingestion_settings=DataFeedIngestionSettings(
                ingestion_begin_time=datetime.datetime(2019, 10, 1),
                data_source_request_concurrency=0,
                ingestion_retry_delay=-1,
                ingestion_start_offset=-1,
                stop_retry_after=-1,
            ),
            options=DataFeedOptions(
                admin_emails=["*****@*****.**"],
                data_feed_description="my first data feed",
                missing_data_point_fill_settings=DataFeedMissingDataPointFillSettings(
                    fill_type="SmartFilling"
                ),
                rollup_settings=DataFeedRollupSettings(
                    rollup_type="NoRollup",
                    rollup_method="None",
                ),
                viewer_emails=["viewers"],
                access_mode="Private",
                action_link_template="action link template"
            )

        )
Exemple #3
0
 async def _create_data_feed(self, name):
     name = create_random_name(name)
     return await self.admin_client.create_data_feed(
         name=name,
         source=SQLServerDataFeedSource(
             connection_string=self.sql_server_connection_string,
             query="select * from adsample2 where Timestamp = @StartTime"),
         granularity="Daily",
         schema=DataFeedSchema(
             metrics=[
                 DataFeedMetric(name="cost"),
                 DataFeedMetric(name="revenue")
             ],
             dimensions=[
                 DataFeedDimension(name="category"),
                 DataFeedDimension(name="city")
             ],
         ),
         ingestion_settings="2019-10-01T00:00:00Z",
     )