1. Einführung
Zuletzt aktualisiert:15.09.2021
Die für Preiseinblicke und Optimierung erforderlichen Daten sind von Natur aus unterschiedlich (verschiedene Systeme, unterschiedliche lokale Gegebenheiten usw.), daher ist es von entscheidender Bedeutung, eine gut strukturierte, standardisierte und saubere CDM-Tabelle zu entwickeln. Dazu gehören wichtige Attribute für die Preisoptimierung wie Transaktionen, Produkte, Preise und Kunden. In diesem Dokument werden Sie durch die unten beschriebenen Schritte geführt. Sie erhalten einen Schnelleinstieg für Preisanalysen, die Sie erweitern und an Ihre Anforderungen anpassen können. Das folgende Diagramm zeigt die in diesem Dokument behandelten Schritte.
- Datenquellen bewerten:Zuerst müssen Sie eine Bestandsaufnahme der Datenquellen abrufen, die zum Erstellen des CDM verwendet werden. In diesem Schritt wird Dataprep auch verwendet, um Probleme in den Eingabedaten zu untersuchen und zu identifizieren. Beispiele: fehlende und nicht übereinstimmende Werte, inkonsistente Namenskonventionen, Duplikate, Datenintegritätsprobleme, Ausreißer usw.
- Daten standardisieren:Als Nächstes werden zuvor identifizierte Probleme behoben, um die Genauigkeit, Integrität, Konsistenz und Vollständigkeit der Daten sicherzustellen. Dieser Prozess kann verschiedene Transformationen in Dataprep umfassen, z. B. Datumsformatierung, Wertstandardisierung, Einheitenumrechnung, das Herausfiltern unnötiger Felder und Werte sowie Aufteilen, Zusammenführen oder Deduplizieren der Quelldaten.
- In einer Struktur vereinheitlichen:In der nächsten Phase der Pipeline werden die einzelnen Datenquellen in einer einzigen, breiten Tabelle in BigQuery zusammengeführt, die alle Attribute auf sehr detaillierter Ebene enthält. Diese denormalisierte Struktur ermöglicht effiziente analytische Abfragen, die keine Joins erfordern.
- Liefern Sie Analysen und ML/KI:Sobald die Daten bereinigt und für die Analyse formatiert sind, können Analysten Verlaufsdaten untersuchen, um die Auswirkungen früherer Preisänderungen zu verstehen. Darüber hinaus kann BigQuery ML zum Erstellen von Prognosemodellen verwendet werden, die zukünftige Verkäufe schätzen. Die Ergebnisse dieser Modelle können in Dashboards in Looker eingebunden werden, um „Was-wäre-wenn-Szenarien“ zu erstellen. Hier können geschäftliche Nutzer analysieren, wie sich die Verkaufszahlen bei bestimmten Preisänderungen entwickeln.
Das folgende Diagramm zeigt die Google Cloud-Komponenten, die zum Erstellen der Analysepipeline für die Preisoptimierung verwendet werden.
Inhalt
Hier erfahren Sie, wie Sie ein Data Warehouse für die Preisoptimierung entwerfen, die Datenvorbereitung im Laufe der Zeit automatisieren, die Auswirkungen von Änderungen der Produktpreise mithilfe von maschinellem Lernen prognostizieren und Berichte entwickeln, um Ihrem Team umsetzbare Informationen bereitzustellen.
Aufgaben in diesem Lab
- Hier erfahren Sie, wie Sie Dataprep mit Datenquellen für Preisanalysen verbinden, die in relationalen Datenbanken, Flatfiles, Google Tabellen und anderen unterstützten Anwendungen gespeichert werden können.
- Hier erfahren Sie, wie Sie einen Dataprep-Ablauf zum Erstellen einer CDM-Tabelle im BigQuery Data Warehouse erstellen.
- Hier erfahren Sie, wie Sie mit BigQuery ML den zukünftigen Umsatz vorhersagen können.
- Berichte in Looker erstellen, um historische Preis- und Verkaufstrends zu analysieren und die Auswirkungen zukünftiger Preisänderungen zu verstehen
Voraussetzungen
- Google Cloud-Projekt mit aktivierter Abrechnungsfunktion. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.
- BigQuery muss für Ihr Projekt aktiviert sein. Bei neuen Projekten wird es automatisch aktiviert. Andernfalls aktivieren Sie sie für ein vorhandenes Projekt. Weitere Informationen zu den ersten Schritten mit BigQuery über die Cloud Console
- Dataprep muss außerdem für das Projekt aktiviert sein. Dataprep wird über die Google Console im linken Navigationsmenü im Bereich „Big Data“ aktiviert. Folgen Sie den Schritten zur Registrierung, um es zu aktivieren.
- Wenn Sie Ihre eigenen Looker-Dashboards einrichten möchten, benötigen Sie Entwicklerzugriff auf eine Looker-Instanz. Wenn Sie eine Testversion anfordern möchten, wenden Sie sich bitte an unser Team oder verwenden Sie unser öffentliches Dashboard, um die Ergebnisse der Datenpipeline mit unseren Stichprobendaten zu untersuchen.
- Erfahrung mit Structured Query Language (SQL) und Grundkenntnissen in folgenden Themen sind hilfreich: Dataprep by Trifacta, BigQuery, Looker
2. CDM in BigQuery erstellen
In diesem Abschnitt erstellen Sie das Common Data Model (CDM), das eine konsolidierte Ansicht der Informationen bietet, die Sie analysieren und Preisänderungen vorschlagen müssen.
- Öffnen Sie die BigQuery-Konsole.
- Wählen Sie das Projekt aus, das Sie zum Testen dieses Referenzmusters verwenden möchten.
- Verwenden Sie ein vorhandenes Dataset oder erstellen Sie ein BigQuery-Dataset. Geben Sie dem Dataset den Namen
Pricing_CDM
. - Erstellen Sie die Tabelle:
create table `CDM_Pricing`
(
Fiscal_Date DATETIME,
Product_ID STRING,
Client_ID INT64,
Customer_Hierarchy STRING,
Division STRING,
Market STRING,
Channel STRING,
Customer_code INT64,
Customer_Long_Description STRING,
Key_Account_Manager INT64,
Key_Account_Manager_Description STRING,
Structure STRING,
Invoiced_quantity_in_Pieces FLOAT64,
Gross_Sales FLOAT64,
Trade_Budget_Costs FLOAT64,
Cash_Discounts_and_other_Sales_Deductions INT64,
Net_Sales FLOAT64,
Variable_Production_Costs_STD FLOAT64,
Fixed_Production_Costs_STD FLOAT64,
Other_Cost_of_Sales INT64,
Standard_Gross_Margin FLOAT64,
Transportation_STD FLOAT64,
Warehouse_STD FLOAT64,
Gross_Margin_After_Logistics FLOAT64,
List_Price_Converged FLOAT64
);
3. Datenquellen bewerten
In dieser Anleitung verwenden Sie Beispieldatenquellen, die in Google Tabellen und BigQuery gespeichert sind.
- Die Google-Tabelle Transaktionen, die eine Zeile für jede Transaktion enthält Sie enthält Details wie die Menge jedes verkauften Produkts, den Gesamtbruttoumsatz und die damit verbundenen Kosten.
- Die Google-Tabelle Produktpreise, in der die Preise der einzelnen Produkte für einen bestimmten Kunden und Monat aufgeführt sind.
- Die BigQuery-Tabelle „company_descriptions“, die Informationen zu einzelnen Kunden enthält.
Die BigQuery-Tabelle "company_descriptions" kann mit der folgenden Anweisung erstellt werden:
create table `Company_Descriptions`
(
Customer_ID INT64,
Customer_Long_Description STRING
);
insert into `Company_Descriptions` values (15458, 'ENELTEN');
insert into `Company_Descriptions` values (16080, 'NEW DEVICES CORP.');
insert into `Company_Descriptions` values (19913, 'ENELTENGAS');
insert into `Company_Descriptions` values (30108, 'CARTOON NT');
insert into `Company_Descriptions` values (32492, 'Thomas Ed Automobiles');
4. Ablauf erstellen
In diesem Schritt importieren Sie einen Dataprep-Beispielablauf, mit dem Sie die im vorherigen Abschnitt aufgeführten Beispiel-Datasets transformieren und vereinheitlichen. Ein Ablauf stellt eine Pipeline oder ein Objekt dar, das Datasets und Schemas zusammenführt, um sie zu transformieren und zu verknüpfen.
- Laden Sie das Flow-Paket für das Pricing Optimization Pattern von GitHup herunter, aber entpacken Sie es nicht. Diese Datei enthält den Designmusterfluss für die Preisoptimierung, der zur Transformation der Beispieldaten verwendet wird.
- Klicken Sie in Dataprep in der linken Navigationsleiste auf das Symbol für Abläufe. Wählen Sie dann in der Ansicht „Abläufe“ im Kontextmenü die Option Importieren aus. Nachdem Sie den Ablauf importiert haben, können Sie ihn auswählen, um ihn anzusehen und zu bearbeiten.
- Auf der linken Seite des Ablaufs müssen der Produktpreis und jede der drei Google-Tabellen für Transaktionen als Datensätze verbunden sein. Klicken Sie dazu mit der rechten Maustaste auf die Dataset-Objekte in Google Tabellen und wählen Sie Ersetzen aus. Klicken Sie dann auf den Link Datasets importieren. Klicken Sie auf „Pfad bearbeiten“ wie im folgenden Diagramm dargestellt.
Ersetzen Sie den aktuellen Wert durch den Link, der auf Transaktionen und Produktpreise in Google Tabellen verweist.
Wenn Google Tabellen mehrere Tabs enthält, können Sie den Tab auswählen, den Sie im Menü verwenden möchten. Klicken Sie auf Bearbeiten und wählen Sie die Tabs aus, die Sie als Datenquelle verwenden möchten. Klicken Sie dann auf Speichern und anschließend auf Importieren und Zu Ablauf hinzufügen. Wenn Sie sich wieder im Dialogfenster befinden, klicken Sie auf Ersetzen. In diesem Ablauf wird jedes Tabellenblatt als eigenes Dataset dargestellt, um später in einem späteren Schema das Zusammenführen unterschiedlicher Quellen zu demonstrieren.
- BigQuery-Ausgabetabellen definieren:
In diesem Schritt verknüpfen Sie den Speicherort für die BigQuery-Ausgabetabelle CDM_Pricing, die jedes Mal geladen werden soll, wenn Sie den Dataoprep-Job ausführen.
Klicken Sie in der Ablaufansicht auf das Ausgabesymbol für die Schemazuordnung und im Bereich „Details“ auf den Tab „Destinations“ (Ziele). Bearbeiten Sie dort sowohl die Ausgabe für manuelle Ziele, die für Tests verwendet wird, als auch die Ausgabe für geplante Ziele, die zum Automatisieren des gesamten Ablaufs verwendet wird. Gehen Sie dazu folgendermaßen vor:
- Bearbeiten Sie die „Manuelle Ziele“: Klicken Sie im Detailbereich unter dem Abschnitt „Manuelle Ziele“ auf die Schaltfläche „Bearbeiten“. Wenn auf der Seite Veröffentlichungseinstellungen unter „Veröffentlichungsaktionen“ bereits eine Veröffentlichungsaktion vorhanden ist, bearbeiten Sie diese. Andernfalls klicken Sie auf die Schaltfläche „Aktion hinzufügen“. Gehen Sie von dort aus in den BigQuery-Datasets zum Dataset
Pricing_CDM
, das Sie in einem vorherigen Schritt erstellt haben, und wählen Sie die TabelleCDM_Pricing
aus. Achten Sie darauf, dass das Kästchen Bei jeder Ausführung an diese Tabelle anhängen angeklickt ist, und klicken Sie dann auf Hinzufügen. Klicken Sie auf Einstellungen speichern. - „Geplante Ziele“ bearbeiten
Klicken Sie im Bereich „Details“ unter „Geplante Ziele“ auf Bearbeiten.
Die Einstellungen werden von den manuellen Zielen übernommen und Sie müssen keine Änderungen vornehmen. Klicken Sie auf „Einstellungen speichern“.
5. Daten standardisieren
Im bereitgestellten Ablauf werden die Transaktionsdaten zusammengeführt, formatiert und bereinigt. Das Ergebnis wird dann mit den Unternehmensbeschreibungen und aggregierten Preisdaten für die Berichterstellung zusammengeführt. Hier werden Sie durch die Komponenten des Ablaufs geführt, die in der nachfolgenden Abbildung zu sehen sind.
6. Rezept für Transaktionsdaten erkunden
Zunächst untersuchen Sie, was im Schema für Transaktionsdaten geschieht, das zur Vorbereitung von Transaktionsdaten verwendet wird. Klicken Sie in der Ablaufansicht auf das Transaktionsdatenobjekt und dann im Bereich „Details“ auf die Schaltfläche „Schema bearbeiten“.
Die Seite "Transformer" wird mit dem im Feld "Details" angezeigten Schema geöffnet. Das Schema enthält alle Transformationsschritte, die auf die Daten angewendet werden. Sie können innerhalb des Schemas navigieren, indem Sie zwischen den einzelnen Schritten klicken, um den Status der Daten an dieser bestimmten Position im Schema anzuzeigen.
Sie können auch für jeden Schemaschritt auf das Menü "Mehr" klicken und "Zu Auswahl gehen" oder "Bearbeiten" auswählen, um zu erfahren, wie die Transformation funktioniert.
- Union-Transaktionen:Im ersten Schritt des Rezepts für Transaktionsdaten werden Transaktionen vereint, die in verschiedenen Tabellenblättern für jeden Monat gespeichert sind.
- Kundenbeschreibungen standardisieren: Der nächste Schritt im Schema standardisiert Kundenbeschreibungen. Es bedeutet, dass Kundennamen möglicherweise ähnlich sind, aber geringfügige Änderungen vorgenommen wurden. Daher möchten wir sie wie den Namen normalisieren. Das Rezept zeigt zwei mögliche Ansätze. Zuerst kommt der Standardisierungsalgorithmus zum Einsatz, der mit verschiedenen Standardisierungsoptionen wie „Ähnliche Strings“ konfiguriert werden kann. wobei Werte mit gemeinsamen Zeichen in einem Cluster zusammengefasst sind, also "Pronunciation" wobei Werte, die ähnlich klingen, zusammengefasst sind. Alternativ können Sie die Unternehmensbeschreibung mithilfe der Unternehmens-ID in der oben genannten BigQuery-Tabelle nachschlagen.
Sie können im Rezept weitergehen und die verschiedenen anderen Techniken entdecken, die zum Bereinigen und Formatieren der Daten angewendet werden: Zeilen löschen, auf der Grundlage von Mustern formatieren, Daten mit Suchvorgängen anreichern, mit fehlenden Werten umgehen oder unerwünschte Zeichen ersetzen.
7. Schema für Daten zu Produktpreisen ansehen
Als Nächstes können Sie untersuchen, was im Schema für Produktpreisdaten geschieht, bei dem die vorbereiteten Transaktionsdaten mit den aggregierten Preisdaten zusammengeführt werden.
Klicken Sie oben auf der Seite auf das Design-Muster für die Preisoptimierung, um die Seite "Transformer" zu schließen und zur Ablaufansicht zurückzukehren. Klicken Sie dort auf das Produktpreisdatenobjekt und bearbeiten Sie das Schema.
- Unpivot auf Spalten für monatliche Preise aufheben:Klicken Sie auf das Schema zwischen den zwei bis drei Schritten, um zu sehen, wie die Daten vor dem Schritt „Unpivot“ aussehen. Sie werden feststellen, dass die Daten den Transaktionswert in einer eigenen Spalte für jeden Monat enthalten: Jan. Fev Mär. Dieses Format eignet sich nicht für Aggregationsberechnungen (d. h. Summe, durchschnittliche Transaktionen) in SQL. Die Daten müssen vom Pivoting entfernt werden, sodass jede Spalte zu einer Zeile in der BigQuery-Tabelle wird. Das Schema nutzt die Funktion unpivot, um die drei Spalten für jeden Monat in eine Zeile umzuwandeln, sodass sich Gruppenberechnungen leichter anwenden lassen.
- Durchschnittlichen Transaktionswert nach Kunde, Produkt und Datum berechnen: Wir möchten den durchschnittlichen Transaktionswert für jeden Kunden, jedes Produkt und jede Daten berechnen. Wir können die Aggregatfunktion verwenden und eine neue Tabelle generieren (Option „Group by as a new table“). In diesem Fall werden die Daten auf Gruppenebene zusammengefasst und wir verlieren die Details zu jeder einzelnen Transaktion. Wir können auch entscheiden, die Details und die aggregierten Werte im selben Dataset zu belassen (Option „Gruppieren nach als neue Spalte(n)“), was praktisch ist, um ein Verhältnis anzuwenden (z.B. prozentualer Anteil der Produktkategorie zum Gesamtumsatz). Sie können dieses Verhalten ausprobieren, indem Sie das Schemaschritt 7 bearbeiten und die Option „Group by as a new table“ (Gruppieren nach) als neue Tabelle auswählen. oder „Gruppieren nach“ als neue Spalte(n) um die Unterschiede zu sehen.
- Datum des Join-Preises: Schließlich wird ein Join verwendet, um mehrere Datasets zu einem größeren Dataset zu kombinieren, indem dem ursprünglichen Dataset Spalten hinzugefügt werden. In diesem Schritt werden die Preisdaten mit der Ausgabe des Transaktionsdaten-Schemas basierend auf "Pricing Data.Product Code" zusammengeführt. = Transaction Data.SKU' und "Pricing Data.Price Date". = ‘Transaction Data.Fiscal Date’
Weitere Informationen zu den Transformationen, die Sie mit Dataprep anwenden können, finden Sie im Trifacta Data Wrangling auf einen Blick.
8. Schemazuordnungsschema ansehen
Mit dem letzten Schema, der Schemazuordnung, wird sichergestellt, dass die resultierende CDM-Tabelle mit dem Schema der vorhandenen BigQuery-Ausgabetabelle übereinstimmt. Hier wird die Funktion Rapid Target verwendet, um die Datenstruktur neu zu formatieren, um sie mit der BigQuery-Tabelle abzugleichen. Dabei werden beide Schemas mit ungenauen Übereinstimmungen verglichen und automatische Änderungen angewendet.
9. In einer Struktur vereinheitlichen
Nachdem die Quellen und Ziele konfiguriert und die Abläufe erläutert wurden, können Sie den Ablauf ausführen, um die CDM-Tabelle zu transformieren und in BigQuery zu laden.
- Run Schema Mapping Output (Schemazuordnungsausgabe ausführen): Wählen Sie in der Ablaufansicht das Ausgabeobjekt für die Schemazuordnung aus und klicken Sie auf „Ausführen“. im Bereich „Details“. Wählen Sie „Trifacta Photon“ aus. Running Environment (Umgebung ausführen) und entfernen Sie das Häkchen bei Ignorieren Recipe Error (Schemafehler ignorieren). Klicken Sie dann auf die Schaltfläche Run (Ausführen). Wenn die angegebene BigQuery-Tabelle vorhanden ist, hängt Dataprep neue Zeilen an. Andernfalls wird eine neue Tabelle erstellt.
- Jobstatus ansehen:Dataprep öffnet automatisch die Seite "Job ausführen", damit Sie die Jobausführung überwachen können. Es sollte einige Minuten dauern, bis die BigQuery-Tabelle geladen wird. Wenn der Job abgeschlossen ist, wird die CDM-Preisausgabe in einem sauberen, strukturierten und normalisierten Format für die Analyse in BigQuery geladen.
10. Analysen liefern und ML/AI
Analytics-Voraussetzungen
Um Analysen und ein Vorhersagemodell mit interessanten Ergebnissen durchzuführen, haben wir ein Dataset erstellt, das größer und relevant ist, um spezifische Erkenntnisse zu gewinnen. Sie müssen diese Daten in Ihr BigQuery-Dataset hochladen, bevor Sie mit dieser Anleitung fortfahren.
- Laden Sie das große Dataset aus diesem GitHub-Repository herunter.
- Gehen Sie in der Google Console für BigQuery zu Ihrem Projekt und dem Dataset „CDM_Pricing“.
- Klicken Sie auf das Menü und öffnen Sie das Dataset. Wir erstellen die Tabelle, indem wir die Daten aus einer lokalen Datei laden.
Klicken Sie auf die Schaltfläche + Tabelle erstellen und definieren Sie die folgenden Parameter:
- Tabelle aus Upload erstellen und Datei CDM_Pricing_Large_Table.csv auswählen
- Automatische Schemaerkennung, aktivieren Sie „Schema“ und „Eingabeparameter“
- Erweiterte Optionen, Schreibeinstellung, Tabelle überschreiben
- Klicken Sie auf „Create table“ (Tabelle erstellen).
Nachdem die Tabelle erstellt und die Daten hochgeladen wurden, sollten Sie in der Google Console für BigQuery die Details der neuen Tabelle sehen (siehe unten). Mit den Preisdaten in BigQuery können wir ganz einfach umfassendere Fragen stellen, um Ihre Preisdaten auf einer tieferen Ebene zu analysieren.
11. Auswirkungen von Preisänderungen ansehen
Ein Beispiel für etwas, das Sie analysieren möchten, ist eine Änderung des Bestellverhaltens, wenn Sie zuvor den Preis eines Artikels geändert haben.
- Zuerst erstellen Sie eine temporäre Tabelle, die jedes Mal eine Zeile enthält, wenn sich der Preis eines Produkts geändert hat. Sie enthält Informationen zu den jeweiligen Produktpreisen, z. B. wie viele Artikel mit jedem Preis bestellt wurden, und den Gesamtnettoumsatz, der diesem Preis zugeordnet ist.
create temp table price_changes as (
select
product_id,
list_price_converged,
total_ordered_pieces,
total_net_sales,
first_price_date,
lag(list_price_converged) over(partition by product_id order by first_price_date asc) as previous_list,
lag(total_ordered_pieces) over(partition by product_id order by first_price_date asc) as previous_total_ordered_pieces,
lag(total_net_sales) over(partition by product_id order by first_price_date asc) as previous_total_net_sales,
lag(first_price_date) over(partition by product_id order by first_price_date asc) as previous_first_price_date
from (
select
product_id,list_price_converged,sum(invoiced_quantity_in_pieces) as total_ordered_pieces, sum(net_sales) as total_net_sales, min(fiscal_date) as first_price_date
from `{{my_project}}.{{my_dataset}}.CDM_Pricing` AS cdm_pricing
group by 1,2
order by 1, 2 asc
)
);
select * from price_changes where previous_list is not null order by product_id, first_price_date desc
- Als Nächstes können Sie mit der temporären Tabelle die durchschnittliche Preisänderung für alle Artikelnummern berechnen:
select avg((previous_list-list_price_converged)/nullif(previous_list,0))*100 as average_price_change from price_changes;
- Schließlich können Sie analysieren, was nach der Preisänderung geschieht, indem Sie sich die Beziehung zwischen jeder Preisänderung und der Gesamtsumme der bestellten Artikel ansehen:
select
(total_ordered_pieces-previous_total_ordered_pieces)/nullif(previous_total_ordered_pieces,0)
wie
price_changes_percent_ordered_change,
(list_price_converged-previous_list)/nullif(previous_list,0)
wie
price_changes_percent_price_change
from price_changes
12. Erstellen eines Zeitachsen-Prognosemodells
Als Nächstes können Sie mit den integrierten ML-Funktionen von BigQuery ein ARIMA-Zeitreihen-Prognosemodell erstellen, um die Menge jedes zu verkaufenden Artikels vorherzusagen.
- Zuerst erstellen Sie ein ARIMA_PLUS-Modell
create or replace `{{my_project}}.{{my_dataset}}.bqml_arima`
options
(model_type = 'ARIMA_PLUS',
time_series_timestamp_col = 'fiscal_date',
time_series_data_col = 'total_quantity',
time_series_id_col = 'product_id',
auto_arima = TRUE,
data_frequency = 'AUTO_FREQUENCY',
decompose_time_series = TRUE
) as
select
fiscal_date,
product_id,
sum(invoiced_quantity_in_pieces) as total_quantity
from
`{{my_project}}.{{my_dataset}}.CDM_Pricing`
group by 1,2;
- Als Nächstes verwenden Sie die ML.FORECAST-Funktion, um zukünftige Umsätze für jedes Produkt vorherzusagen:
select
*
from
ML.FORECAST(model testing.bqml_arima,
struct(30 as horizon, 0.8 as confidence_level));
- Anhand dieser Prognosen können Sie herausfinden, was bei einer Preiserhöhung passieren könnte. Wenn Sie beispielsweise den Preis jedes Produkts um 15% erhöhen, können Sie den geschätzten Gesamtumsatz für den nächsten Monat mit einer Abfrage wie der folgenden berechnen:
select
sum(forecast_value * list_price) as total_revenue
from ml.forecast(mode testing.bqml_arima,
struct(30 as horizon, 0.8 as confidence_level)) forecasts
left join (select product_id,
array_agg(list_price_converged
order by fiscal_date desc limit 1)[offset(0)] as list_price
from `leigha-bq-dev.retail.cdm_pricing` group by 1) recent_prices
using (product_id);
13. Bericht erstellen
Da Ihre denormalisierten Preisdaten jetzt zentral in BigQuery sind und Sie wissen, wie Sie aussagekräftige Abfragen für diese Daten ausführen können, ist es an der Zeit, einen Bericht zu erstellen, mit dem Geschäftsanwender diese Informationen untersuchen und darauf reagieren können.
Wenn Sie bereits eine Looker-Instanz haben, können Sie die LookML in diesem GitHub-Repository verwenden, um mit der Analyse der Preisdaten für dieses Muster zu beginnen. Erstellen Sie einfach ein neues Looker-Projekt, fügen Sie die LookML hinzu und ersetzen Sie die Verbindungs- und Tabellennamen in jeder Ansichtsdatei entsprechend Ihrer BigQuery-Konfiguration.
In diesem Modell finden Sie die abgeleitete Tabelle ( in dieser Ansichtsdatei), die bereits gezeigt wurde, um die Preisänderungen zu untersuchen:
view: price_changes {
derived_table: {
sql: select
product_id,
list_price_converged,
total_ordered_pieces,
total_net_sales,
first_price_date,
lag(list_price_converged) over(partition by product_id order by first_price_date asc) as previous_list,
lag(total_ordered_pieces) over(partition by product_id order by first_price_date asc) as previous_total_ordered_pieces,
lag(total_net_sales) over(partition by product_id order by first_price_date asc) as previous_total_net_sales,
lag(first_price_date) over(partition by product_id order by first_price_date asc) as previous_first_price_date
from (
select
product_id,list_price_converged,sum(invoiced_quantity_in_pieces) as total_ordered_pieces, sum(net_sales) as total_net_sales, min(fiscal_date) as first_price_date
from ${cdm_pricing.SQL_TABLE_NAME} AS cdm_pricing
group by 1,2
order by 1, 2 asc
)
;;
}
...
}
Neben dem BigQuery ML ARIMA-Modell, das wir zuvor gezeigt haben, um zukünftige Verkäufe vorherzusagen ( in dieser Ansichtsdatei)
view: arima_model { derived_table: { persist_for: "24 hours" sql_create: create or replace model ${sql_table_name} options (model_type = 'arima_plus', time_series_timestamp_col = 'fiscal_date', time_series_data_col = 'total_quantity', time_series_id_col = 'product_id', auto_arima = true, data_frequency = 'auto_frequency', decompose_time_series = true ) as select fiscal_date, product_id, sum(invoiced_quantity_in_pieces) as total_quantity from ${cdm_pricing.sql_table_name} group by 1,2 ;; } } ... }
LookML enthält außerdem ein Beispiel-Dashboard. Eine Demoversion des Dashboards finden Sie hier. Der erste Teil des Dashboards bietet Nutzenden allgemeine Informationen über Änderungen bei Umsatz, Kosten, Preisen und Margen. Als gewerblicher Nutzer möchten Sie möglicherweise eine Benachrichtigung erstellen, um zu erfahren, ob die Verkaufszahlen unter X% gesunken sind. Dies könnte bedeuten, dass Sie die Preise senken sollten.
Im nächsten Abschnitt, der unten dargestellt wird, können Nutzer Trends im Zusammenhang mit Preisänderungen analysieren. Hier können Sie nach bestimmten Produkten aufschlüsseln, um den genauen Listenpreis und die geänderten Preise zu sehen. Dies kann hilfreich sein, um bestimmte Produkte zu identifizieren, für die Sie sich genauer informieren sollten.
Am Ende des Berichts sehen Sie schließlich die Ergebnisse unseres BigQueryML-Modells. Mit den Filtern oben im Looker-Dashboard können Sie ganz einfach Parameter eingeben, um verschiedene Szenarien ähnlich wie oben beschrieben zu simulieren. Sie können beispielsweise sehen, was passieren würde, wenn das Bestellvolumen auf 75% des prognostizierten Werts sinken würde und die Preise für alle Produkte um 25 % angehoben würden (siehe unten)
Dies wird durch Parameter in LookML unterstützt, die dann direkt in die hier aufgeführten Messwertberechnungen eingebunden werden. Mit dieser Art von Berichten können Sie die optimalen Preise für alle Produkte ermitteln oder bestimmte Produkte aufschlüsseln, um zu ermitteln, wo Sie die Preise erhöhen oder senken sollten und wie sich der Brutto- und Nettoumsatz auswirken würde.
14. An Ihre Preissysteme anpassen
In diesem Tutorial werden Beispieldatenquellen transformiert. Bei den Preis-Assets auf Ihren verschiedenen Plattformen werden Sie jedoch mit sehr ähnlichen Datenherausforderungen konfrontiert. Preis-Assets haben verschiedene Exportformate (häufig XLS, Tabellen, CSV, TXT, relationale Datenbanken, Geschäftsanwendungen) für zusammenfassende und detaillierte Ergebnisse, die jeweils mit Dataprep verbunden werden können. Wir empfehlen, dass Sie damit beginnen, Ihre Transformationsanforderungen ähnlich wie in den Beispielen oben zu beschreiben. Nachdem Ihre Spezifikationen geklärt und Sie die erforderlichen Transformationen identifiziert haben, können Sie diese mit Dataprep entwerfen.
- Erstellen Sie eine Kopie des Dataprep-Ablaufs, den Sie anpassen möchten. Klicken Sie dazu rechts im Ablauf auf die Schaltfläche **... „**Mehr“ und wählen Sie die Option „Duplizieren“ aus. Alternativ können Sie auch einfach mit einem neuen Dataprep-Ablauf von vorn beginnen.
- Stellen Sie eine Verbindung zu Ihrem eigenen Preis-Dataset her. Dateiformate wie Excel, CSV, Google Tabellen und JSON werden nativ von Dataprep unterstützt. Mit Dataprep-Connectors können Sie auch eine Verbindung zu anderen Systemen herstellen.
- Weisen Sie Ihre Daten-Assets den verschiedenen Transformationskategorien zu, die Sie identifiziert haben. Erstellen Sie für jede Kategorie ein Schema. Lassen Sie sich vom Ablauf in diesem Designmuster inspirieren, um die Daten zu transformieren und Ihre eigenen Schemas zu schreiben. Wenn Sie nicht weiterkommen, können Sie über das Chat-Dialogfeld unten links im Dataprep-Bildschirm um Hilfe bitten.
- Verbinden Sie Ihr Schema mit der BigQuery-Instanz. Sie müssen die Tabellen nicht manuell in BigQuery erstellen. Dataprep erledigt das automatisch für Sie. Wir empfehlen, beim Hinzufügen der Ausgabe zu Ihrem Ablauf ein manuelles Ziel auszuwählen und die Tabelle bei jeder Ausführung zu verwerfen. Testen Sie jedes Rezept einzeln, bis Sie die erwarteten Ergebnisse erzielen. Nachdem die Tests abgeschlossen sind, konvertieren Sie die Ausgabe in „Bei jeder Ausführung an die Tabelle anhängen“, um das Löschen der vorherigen Daten zu vermeiden.
- Sie können den Ablauf optional so verknüpfen, dass er planmäßig ausgeführt wird. Dies ist nützlich, wenn Ihr Prozess kontinuierlich ausgeführt werden muss. Sie können einen Zeitplan definieren, nach dem die Antwort je nach der erforderlichen Aktualität täglich oder stündlich geladen wird. Wenn Sie den Ablauf nach einem Zeitplan ausführen möchten, müssen Sie dem Ablauf für jedes Schema eine geplante Zielausgabe hinzufügen.
BigQuery Machine Learning-Modell ändern
Dieses Tutorial enthält ein ARIMA-Beispielmodell. Es gibt jedoch zusätzliche Parameter, die Sie beim Entwickeln des Modells steuern können, um sicherzustellen, dass es optimal zu Ihren Daten passt. Weitere Details im -Beispiel finden Sie in unserer Dokumentation hier. Mit den BigQuery-Funktionen ML.ARIMA_EVALUATE, ML.ARIMA_COEFFICIENTS und ML.EXPLAIN_FORECAST können Sie außerdem weitere Details zu Ihrem Modell abrufen und Optimierungsentscheidungen treffen.
Looker-Berichte bearbeiten
Nachdem Sie den LookML-Code wie oben beschrieben in Ihr eigenes Projekt importiert haben, können Sie direkte Änderungen vornehmen, um zusätzliche Felder hinzuzufügen, Berechnungen oder vom Nutzer eingegebene Parameter zu ändern und die Visualisierungen in den Dashboards an Ihre Geschäftsanforderungen anzupassen. Ausführliche Informationen zur Entwicklung in LookML finden Sie hier und hier finden Sie Informationen zur Visualisierung von Daten in Looker.
15. Glückwunsch
Sie kennen jetzt die wichtigsten Schritte zur Optimierung Ihrer Einzelhandelsprodukte Preise.
Was liegt als Nächstes an?
Weitere Referenzmuster für intelligente Analysen