印度生物技術部核心gydF4y2Ba
請注意gydF4y2Ba
本文涵蓋了gydF4y2Ba印度生物技術部核心gydF4y2Ba,一個版本的gydF4y2Ba印度生物技術部gydF4y2Ba用於與Databricks SQL交互的本地開發機器gydF4y2Ba倉庫gydF4y2Ba和磚gydF4y2Ba集群gydF4y2Ba在你的Databricks工作區內。要使用dbt的托管版本(稱為gydF4y2Ba印度生物技術部的雲gydF4y2Ba)代替,或者使用gydF4y2Ba合作夥伴聯係gydF4y2Ba如何在工作空間內快速創建SQL倉庫,然後將其連接到dbt Cloud,請參見gydF4y2Ba印度生物技術部的雲gydF4y2Ba.gydF4y2Ba
印度生物技術部gydF4y2Ba(數據構建工具)是一個開發環境,允許數據分析師和數據工程師通過簡單地編寫選擇語句來轉換數據。DBT處理將這些選擇語句轉換為表和視圖。dbt將代碼編譯為原始SQL,然後在Databricks中的指定數據庫上運行該代碼。DBT支持協作編碼模式和最beplay娱乐ios佳實踐,如版本控製、文檔、模塊化等。有關更多信息,請參見gydF4y2Badbt到底是什麼?gydF4y2Ba而且gydF4y2Ba麵向所有人的分析工程:dbt雲中的數據gydF4y2Ba在DBT網站上。gydF4y2Ba
DBT不提取或加載數據。DBT隻關注轉換步驟,使用“加載後轉換”體係結構。DBT假設您的數據庫中已經有了數據的副本。gydF4y2Ba
本文主要介紹如何使用dbt Core。dbt Core使您能夠在本地開發機器上的文本編輯器或IDE中編寫dbt代碼,然後從命令行運行dbt。dbt Core包括dbt CLI (Command Line Interface)。的gydF4y2Ba印度生物技術部CLIgydF4y2Ba是免費使用和gydF4y2Ba開源gydF4y2Ba.gydF4y2Ba
dbt的托管版本dbt Cloud也可用。dbt Cloud配備了調度作業、CI/CD、服務文檔、監控和警報以及集成開發環境(IDE)的交鑰匙支持。有關更多信息,請參見gydF4y2Ba印度生物技術部的雲gydF4y2Ba.dbt雲開發人員計劃提供一個免費的開發人員席位;團隊和企業付費計劃也可用。有關更多信息,請參見gydF4y2Ba印度生物技術部的定價gydF4y2Ba在DBT網站上。gydF4y2Ba
因為dbt Core和dbt Cloud可以使用托管的git存儲庫(例如,在GitHub, GitLab或BitBucket上),你可以使用dbt Core創建一個dbt項目,然後讓它對你的dbt Cloud用戶可用。有關更多信息,請參見gydF4y2Ba創建dbt項目gydF4y2Ba而且gydF4y2Ba使用現有項目gydF4y2Ba在DBT網站上。gydF4y2Ba
要了解dbt的一般概況,請觀看以下YouTube視頻(26分鍾)。gydF4y2Ba
需求gydF4y2Ba
在安裝dbt Core之前,您必須在本地開發機器上安裝以下軟件:gydF4y2Ba
PythongydF4y2Ba3.7或更高gydF4y2Ba
用於創建Python虛擬環境(例如gydF4y2BapipenvgydF4y2Ba)gydF4y2Ba
步驟1:創建並激活Python虛擬環境gydF4y2Ba
在這一步中,您使用gydF4y2BapipenvgydF4y2Ba
要創建gydF4y2BaPython虛擬環境gydF4y2Ba.我們建議使用Python虛擬環境,因為它將包版本和代碼依賴關係隔離到特定的環境中,而不管其他環境中的包版本和代碼依賴關係如何。這有助於減少意外的包版本不匹配和代碼依賴衝突。gydF4y2Ba
從終端切換到一個空目錄,如果有必要,首先創建該目錄。此過程創建一個名為gydF4y2Ba
dbt_demogydF4y2Ba
在用戶主目錄的根目錄中。gydF4y2Bamkdir ~ / dbt_demogydF4y2BacdgydF4y2Ba~ / dbt_demogydF4y2Ba
mkdir % USERPROFILE %gydF4y2Ba\ dgydF4y2Babt_demogydF4y2BacdgydF4y2Ba% USERPROFILE %gydF4y2Ba\ dgydF4y2Babt_demogydF4y2Ba
在這個空目錄中,創建一個名為gydF4y2Ba
PipfilegydF4y2Ba
附有以下內容。這gydF4y2BaPipfilegydF4y2Ba指示gydF4y2BapipenvgydF4y2Ba
使用Python 3.8.6版本。如果使用不同的版本,請替換gydF4y2Ba3.8.6gydF4y2Ba
你的版本號。gydF4y2Ba[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] dbt-databricks = "*" [requires] python_version = "3.8.6"gydF4y2Ba
請注意gydF4y2Ba
前一行gydF4y2Ba
dbt-databricksgydF4y2Ba=gydF4y2Ba“*”gydF4y2Ba
指示gydF4y2BapipenvgydF4y2Ba
的最新版本gydF4y2Badbt-databricksgydF4y2Ba
包中。在生產場景中,您應該替換gydF4y2Ba*gydF4y2Ba
使用您想要使用的包的特定版本。看到gydF4y2Badbt-databricks發布曆史gydF4y2BaPython包索引(PyPI)網站。gydF4y2Ba運行命令在此目錄下創建Python虛擬環境gydF4y2Ba
pipenvgydF4y2Ba
並指定要使用的Python版本。此命令指定Python版本為3.8.6。如果使用不同的版本,請替換gydF4y2Ba3.8.6gydF4y2Ba
你的版本號:gydF4y2Bapython pipenv——gydF4y2Ba3.gydF4y2Ba.8.6gydF4y2Ba
運行命令安裝dbt Databricks適配器gydF4y2Ba
pipenvgydF4y2Ba
與gydF4y2Ba安裝gydF4y2Ba
選擇。這將在您的gydF4y2BaPipfilegydF4y2Ba
,其中包括dbt Databricks適配器包,gydF4y2Badbt-databricksgydF4y2Ba
,來自PyPI。dbt Databricks適配器包自動安裝dbt Core和其他依賴項。gydF4y2Ba重要的gydF4y2Ba
如果您的本地開發機器使用以下任何操作係統,則必須先完成附加步驟:CentOS、MacOS、Ubuntu、Debian和Windows。的“我的操作係統是否具有先決條件”部分gydF4y2Ba使用pip安裝dbtgydF4y2Ba在dbt實驗室網站上。gydF4y2Ba
pipenv安裝gydF4y2Ba
通過運行來激活這個虛擬環境gydF4y2Ba
pipenvgydF4y2Ba殼牌gydF4y2Ba
.為了確認激活,終端顯示gydF4y2Ba(dbt_demo)gydF4y2Ba
在提示符之前。虛擬環境開始使用指定版本的Python,並在這個新環境中隔離所有包版本和代碼依賴項。gydF4y2Bapipenv殼gydF4y2Ba
請注意gydF4y2Ba
要停用此虛擬環境,請運行gydF4y2Ba
退出gydF4y2Ba
.gydF4y2Ba(dbt_demo)gydF4y2Ba
從提示符前消失。如果你跑了gydF4y2BapythongydF4y2Ba——版本gydF4y2Ba
或gydF4y2Ba皮普gydF4y2Ba列表gydF4y2Ba
禁用了這個虛擬環境後,您可能會看到不同版本的Python、不同的可用包列表或包版本,或者兩者都有。gydF4y2Ba通過運行,確認虛擬環境正在運行預期的Python版本gydF4y2Ba
pythongydF4y2Ba
與gydF4y2Ba——版本gydF4y2Ba
選擇。gydF4y2Bapython的版本gydF4y2Ba
如果顯示的Python版本超出預期,請確保已通過運行激活虛擬環境gydF4y2Ba
pipenvgydF4y2Ba殼牌gydF4y2Ba
.gydF4y2Ba通過運行dbt Databricks適配器,確認您的虛擬環境正在運行dbt的預期版本gydF4y2Ba
印度生物技術部gydF4y2Ba
與gydF4y2Ba——版本gydF4y2Ba
選擇。gydF4y2Ba印度生物技術部——版本gydF4y2Ba
如果顯示dbt或dbt Databricks適配器的意外版本,請確保您已經通過運行激活了虛擬環境gydF4y2Ba
pipenvgydF4y2Ba殼牌gydF4y2Ba
.如果仍然顯示一個意外的版本,請在激活虛擬環境後嚐試重新安裝dbt或dbt Databricks適配器。gydF4y2Ba
步驟2:創建dbt項目並指定和測試連接設置gydF4y2Ba
在這一步中,您將創建一個dbtgydF4y2Ba項目gydF4y2Ba,它是使用dbt所需的相關目錄和文件的集合。然後配置連接gydF4y2Ba配置文件gydF4y2Ba,其中包含到數據庫的連接設置gydF4y2Ba集群gydF4y2Ba,一個gydF4y2BaSQL倉庫gydF4y2Ba,或者兩者都有。為了提高安全性,dbt項目和概要文件默認存儲在不同的位置。gydF4y2Ba
提示gydF4y2Ba
您可以連接到現有的集群或SQL倉庫,也可以創建新的集群或SQL倉庫。gydF4y2Ba
現有的集群或SQL倉庫對於多個dbt項目、在團隊中使用dbt或開發用例都是有效的。gydF4y2Ba
新的集群或SQL倉庫允許您為生產用例單獨運行單個dbt項目,以及在dbt項目未運行時利用自動終止來節省成本。gydF4y2Ba
使用Databricks創建一個新的集群或SQL倉庫,然後從dbt配置文件引用新創建的或現有的集群或SQL倉庫。gydF4y2Ba
在虛擬環境仍然激活的情況下,運行gydF4y2Ba印度生物技術部initgydF4y2Ba命令,並為項目指定名稱。此過程創建名為gydF4y2Ba
my_dbt_demogydF4y2Ba
.gydF4y2BaDBT init my_dbt_demogydF4y2Ba
當係統提示是否使用gydF4y2Ba
磚gydF4y2Ba
或gydF4y2Ba火花gydF4y2Ba
數據庫,輸入對應的數字gydF4y2Ba磚gydF4y2Ba
.gydF4y2Ba當提示輸入gydF4y2Ba
宿主gydF4y2Ba
值:gydF4y2Ba對於集群,輸入gydF4y2Ba服務器主機名gydF4y2Ba的值。gydF4y2Ba高級選項,JDBC/ODBCgydF4y2Ba選項卡為Databricks集群設置。gydF4y2Ba
對於SQL倉庫,輸入gydF4y2Ba服務器主機名gydF4y2Ba的值。gydF4y2Ba連接細節gydF4y2Ba選項卡為您的SQL倉庫。gydF4y2Ba
當提示輸入gydF4y2Ba
http_pathgydF4y2Ba
值:gydF4y2Ba對於集群,輸入gydF4y2BaHTTP路徑gydF4y2Ba的值。gydF4y2Ba高級選項,JDBC/ODBCgydF4y2Ba選項卡為Databricks集群設置。gydF4y2Ba
對於SQL倉庫,輸入gydF4y2BaHTTP路徑gydF4y2Ba的值。gydF4y2Ba連接細節gydF4y2Ba選項卡為您的SQL倉庫。gydF4y2Ba
當提示輸入gydF4y2Ba
令牌gydF4y2Ba
,輸入“數據庫”的值gydF4y2Ba個人訪問令牌gydF4y2Ba.gydF4y2Ba輸入所需的值gydF4y2Ba
模式gydF4y2Ba
而且gydF4y2Ba線程gydF4y2Ba
當提示。gydF4y2BaDBT將您的條目寫入到gydF4y2Ba
profiles.ymlgydF4y2Ba
文件。方法的輸出中列出了該文件的位置gydF4y2Ba印度生物技術部gydF4y2Ba初始化gydF4y2Ba
命令。命令還可以在稍後列出此位置gydF4y2Ba印度生物技術部gydF4y2Ba調試gydF4y2Ba——config-dirgydF4y2Ba
命令。您現在可以打開這個文件來檢查和驗證它的內容。gydF4y2Ba運行命令確認連接詳細信息是否正確gydF4y2Ba
印度生物技術部gydF4y2Ba調試gydF4y2Ba
命令。gydF4y2Ba重要的gydF4y2Ba
確保您的集群或SQL倉庫首先運行。gydF4y2Ba
您應該會看到類似如下的輸出:gydF4y2Ba
印度生物技術部調試gydF4y2Ba
...gydF4y2Ba配置:gydF4y2Baprofiles.ymlfile [OK found and valid]dbt_project。yml文件[OK found and valid]gydF4y2Ba所需的依賴項:gydF4y2Ba- git [OK found]gydF4y2Ba連接:gydF4y2Ba...gydF4y2Ba連接測試:連接正常gydF4y2Ba
步驟3:創建並運行模型gydF4y2Ba
在這一步中,使用您最喜歡的文本編輯器來創建gydF4y2Ba模型gydF4y2Ba,分別是gydF4y2Ba選擇gydF4y2Ba
基於同一數據庫中的現有數據在數據庫中創建新視圖(默認值)或新表的語句。這個過程基於樣本創建一個模型gydF4y2Ba鑽石gydF4y2Ba
表中的gydF4y2Ba樣本數據集(databicks -datasets)gydF4y2Ba,詳見gydF4y2Ba創建表gydF4y2Ba的部分gydF4y2Ba以數據科學家的身份開始DatabricksgydF4y2Ba.此過程假設已經在您的工作區中創建了此表gydF4y2Ba默認的gydF4y2Ba
數據庫。gydF4y2Ba
在項目的gydF4y2Ba
模型gydF4y2Ba
目錄,創建一個名為gydF4y2Badiamonds_four_cs.sqlgydF4y2Ba
使用下麵的SQL語句。此語句僅從列表中選擇每顆鑽石的克拉、切工、顏色和淨度細節gydF4y2Ba鑽石gydF4y2Ba
表格的gydF4y2Ba配置gydF4y2Ba
Block指示DBT根據這條語句在數據庫中創建一個表。gydF4y2Ba{{gydF4y2Ba配置gydF4y2Ba(gydF4y2Ba物化gydF4y2Ba=gydF4y2Ba“表”gydF4y2Ba,gydF4y2Bafile_formatgydF4y2Ba=gydF4y2Ba“δ”gydF4y2Ba)gydF4y2Ba}}gydF4y2Ba
選擇gydF4y2Ba克拉gydF4y2Ba,gydF4y2Ba減少gydF4y2Ba,gydF4y2Ba顏色gydF4y2Ba,gydF4y2Ba清晰gydF4y2Ba從gydF4y2Ba鑽石gydF4y2Ba
提示gydF4y2Ba
額外的gydF4y2Ba
配置gydF4y2Ba
選項,例如使用Delta文件格式和gydF4y2Ba合並gydF4y2Ba
增量策略,請參見gydF4y2BaApache Spark配置gydF4y2Ba的“模型配置”和“增量模型”部分gydF4y2Ba使用筆記gydF4y2Ba在GitHub的dbt-labs/dbt-spark存儲庫中。gydF4y2Ba在項目的gydF4y2Ba
模型gydF4y2Ba
目錄,創建第二個名為gydF4y2Badiamonds_list_colors.sqlgydF4y2Ba
使用下麵的SQL語句。屬性中的惟一值gydF4y2Ba顏色gydF4y2Ba
中的列。gydF4y2Badiamonds_four_csgydF4y2Ba
表,排序結果在字母順序從第一到最後。因為沒有gydF4y2Ba配置gydF4y2Ba
塊,此模型指示DBT根據此語句在數據庫中創建視圖。gydF4y2Ba從{{ref('diamonds_four_cs')}}中選擇不同顏色,按顏色asc排序gydF4y2Ba
在項目的gydF4y2Ba
模型gydF4y2Ba
目錄,創建第三個名為gydF4y2Badiamonds_prices.sqlgydF4y2Ba
使用下麵的SQL語句。這個表按鑽石顏色平均鑽石價格,按平均價格從高到低排序。這個模型指示dbt根據這條語句在數據庫中創建一個視圖。gydF4y2Ba選擇gydF4y2Ba顏色gydF4y2Ba,gydF4y2BaavggydF4y2Ba(gydF4y2Ba價格gydF4y2Ba)gydF4y2Ba作為gydF4y2Ba價格gydF4y2Ba從gydF4y2Ba鑽石gydF4y2Ba集團gydF4y2Ba通過gydF4y2Ba顏色gydF4y2Ba訂單gydF4y2Ba通過gydF4y2Ba價格gydF4y2BadescgydF4y2Ba
激活虛擬環境後,運行gydF4y2Ba
印度生物技術部gydF4y2Ba運行gydF4y2Ba
命令,使用上述三個文件的路徑。在gydF4y2Ba默認的gydF4y2Ba
數據庫(如gydF4y2Baprofiles.ymlgydF4y2Ba
文件),DBT創建一個名為gydF4y2Badiamonds_four_csgydF4y2Ba
還有兩個視圖gydF4y2Badiamonds_list_colorsgydF4y2Ba
而且gydF4y2Badiamonds_pricesgydF4y2Ba
.DBT從相關的視圖和表名中獲取這些視圖和表名gydF4y2Ba. sqlgydF4y2Ba
文件的名字。gydF4y2BaDBT運行——model models/diamonds_four_cs。sql / diamonds_list_colors模型。sql模型/ diamonds_prices.sqlgydF4y2Ba
...gydF4y2Ba...1 | 3 default.diamonds_four_cs開始表模型 ....................(運行)gydF4y2Ba...| 1 of 3 OK創建表模型default.diamonds_four_cs...............(好吧…)gydF4y2Ba...| 2 of 3開始視圖模型default.diamonds_list_colors.................(運行)gydF4y2Ba...| 2 of 3 OK創建視圖模型default.diamonds_list_colors............(好吧…)gydF4y2Ba...| 3的3開始default.diamonds_prices視圖模型 ......................(運行)gydF4y2Ba...| 3 of 3 OK創建視圖模型default.diamonds_prices.................(好吧…)gydF4y2Ba...|gydF4y2Ba...完成運行1個表模型,2個視圖模型…gydF4y2Ba成功完成gydF4y2Ba完成了。Pass =3 warn =0 error =0 skip =0 total =3gydF4y2Ba
運行下麵的SQL代碼列出關於新視圖的信息,並從表和視圖中選擇所有行。gydF4y2Ba
如果連接到集群,則可以從數據庫運行此SQL代碼gydF4y2Ba筆記本gydF4y2Ba連接到集群,並指定SQL作為筆記本的默認語言。如果連接到SQL倉庫,則可以從數據庫中運行此SQL代碼gydF4y2Ba查詢gydF4y2Ba.gydF4y2Ba
顯示gydF4y2Ba的觀點gydF4y2Ba在gydF4y2Ba默認的gydF4y2Ba;gydF4y2Ba
+-----------+----------------------+-------------+gydF4y2Ba|命名空間| viewName | istem臨時| . view視圖gydF4y2Ba+===========+======================+=============+gydF4y2Ba| default | diamonds_list_colors | false |gydF4y2Ba+-----------+----------------------+-------------+gydF4y2Ba| default | diamonds_prices | false |gydF4y2Ba+-----------+----------------------+-------------+gydF4y2Ba
選擇gydF4y2Ba*gydF4y2Ba從gydF4y2Badiamonds_four_csgydF4y2Ba;gydF4y2Ba
+-------+---------+-------+---------+gydF4y2Ba|克拉|切|顏色|清晰度|gydF4y2Ba+=======+=========+=======+=========+gydF4y2Ba| 0.23 |理想| E | SI2 |gydF4y2Ba+-------+---------+-------+---------+gydF4y2Ba| 0.21 | Premium | E | SI1 |gydF4y2Ba+-------+---------+-------+---------+gydF4y2Ba...gydF4y2Ba
選擇gydF4y2Ba*gydF4y2Ba從gydF4y2Badiamonds_list_colorsgydF4y2Ba;gydF4y2Ba
+-------+gydF4y2Ba|顏色|gydF4y2Ba+ = = = = = = = +gydF4y2Ba| d |gydF4y2Ba+-------+gydF4y2Ba| e |gydF4y2Ba+-------+gydF4y2Ba...gydF4y2Ba
選擇gydF4y2Ba*gydF4y2Ba從gydF4y2Badiamonds_pricesgydF4y2Ba;gydF4y2Ba
+-------+---------+gydF4y2Ba|顏色|價格|gydF4y2Ba+=======+=========+gydF4y2Ba| j | 5323.82 |gydF4y2Ba+-------+---------+gydF4y2Ba|我| 5091.87 |gydF4y2Ba+-------+---------+gydF4y2Ba...gydF4y2Ba
步驟4:創建並運行更複雜的模型gydF4y2Ba
在此步驟中,您將為一組相關數據表創建更複雜的模型。這些數據表包含關於一個虛構的體育聯賽的信息,該聯賽由三支球隊組成,每個賽季打六場比賽。這個過程創建數據表,創建模型,並運行模型。gydF4y2Ba
運行以下SQL代碼創建必要的數據表。gydF4y2Ba
如果連接到集群,則可以從數據庫運行此SQL代碼gydF4y2Ba筆記本gydF4y2Ba連接到集群,並指定SQL作為筆記本的默認語言。如果連接到SQL倉庫,則可以從數據庫中運行此SQL代碼gydF4y2Ba查詢gydF4y2Ba.gydF4y2Ba
此步驟中的表和視圖從gydF4y2Ba
zzz_gydF4y2Ba
在這個例子中幫助識別它們。對於您自己的表和視圖,不需要遵循此模式。gydF4y2Ba下降gydF4y2Ba表格gydF4y2Ba如果gydF4y2Ba存在gydF4y2Bazzz_game_opponentsgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba表格gydF4y2Ba如果gydF4y2Ba存在gydF4y2Bazzz_game_scoresgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba表格gydF4y2Ba如果gydF4y2Ba存在gydF4y2Bazzz_gamesgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba表格gydF4y2Ba如果gydF4y2Ba存在gydF4y2Bazzz_teamsgydF4y2Ba;gydF4y2Ba創建gydF4y2Ba表格gydF4y2Bazzz_game_opponentsgydF4y2Ba(gydF4y2Bagame_idgydF4y2BaINTgydF4y2Ba,gydF4y2Bahome_team_idgydF4y2BaINTgydF4y2Ba,gydF4y2Bavisitor_team_idgydF4y2BaINTgydF4y2Ba)gydF4y2Ba使用gydF4y2BaδgydF4y2Ba;gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_opponentsgydF4y2Ba值gydF4y2Ba(gydF4y2Ba1gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,gydF4y2Ba2gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_opponentsgydF4y2Ba值gydF4y2Ba(gydF4y2Ba2gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,gydF4y2Ba3.gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_opponentsgydF4y2Ba值gydF4y2Ba(gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba2gydF4y2Ba,gydF4y2Ba1gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_opponentsgydF4y2Ba值gydF4y2Ba(gydF4y2Ba4gydF4y2Ba,gydF4y2Ba2gydF4y2Ba,gydF4y2Ba3.gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_opponentsgydF4y2Ba值gydF4y2Ba(gydF4y2Ba5gydF4y2Ba,gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba1gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_opponentsgydF4y2Ba值gydF4y2Ba(gydF4y2Ba6gydF4y2Ba,gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba2gydF4y2Ba);gydF4y2Ba/*gydF4y2Ba+---------+--------------+-----------------+gydF4y2Ba| game_id | home_team_id | visitor_team_id |gydF4y2Ba+=========+==============+=================+gydF4y2Ba| 1 | 1 | 2 |gydF4y2Ba+---------+--------------+-----------------+gydF4y2Ba| 2 | 1 | 3 |gydF4y2Ba+---------+--------------+-----------------+gydF4y2Ba| 3 | 2 | 1 |gydF4y2Ba+---------+--------------+-----------------+gydF4y2Ba| 4 | 2 | 3 |gydF4y2Ba+---------+--------------+-----------------+gydF4y2Ba| 5 | 3 | 1 |gydF4y2Ba+---------+--------------+-----------------+gydF4y2Ba| 6 | 3 | 2 |gydF4y2Ba+---------+--------------+-----------------+gydF4y2Ba* /gydF4y2Ba創建gydF4y2Ba表格gydF4y2Bazzz_game_scoresgydF4y2Ba(gydF4y2Bagame_idgydF4y2BaINTgydF4y2Ba,gydF4y2Bahome_team_scoregydF4y2BaINTgydF4y2Ba,gydF4y2Bavisitor_team_scoregydF4y2BaINTgydF4y2Ba)gydF4y2Ba使用gydF4y2BaδgydF4y2Ba;gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_scoresgydF4y2Ba值gydF4y2Ba(gydF4y2Ba1gydF4y2Ba,gydF4y2Ba4gydF4y2Ba,gydF4y2Ba2gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_scoresgydF4y2Ba值gydF4y2Ba(gydF4y2Ba2gydF4y2Ba,gydF4y2Ba0gydF4y2Ba,gydF4y2Ba1gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_scoresgydF4y2Ba值gydF4y2Ba(gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,gydF4y2Ba2gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_scoresgydF4y2Ba值gydF4y2Ba(gydF4y2Ba4gydF4y2Ba,gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba2gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_scoresgydF4y2Ba值gydF4y2Ba(gydF4y2Ba5gydF4y2Ba,gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba0gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_game_scoresgydF4y2Ba值gydF4y2Ba(gydF4y2Ba6gydF4y2Ba,gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba1gydF4y2Ba);gydF4y2Ba/*gydF4y2Ba+---------+-----------------+--------------------+gydF4y2Ba| game_id | home_team_score | visitor_team_score |gydF4y2Ba+=========+=================+====================+gydF4y2Ba| 1 | 4 | 2 |gydF4y2Ba+---------+-----------------+--------------------+gydF4y2Ba| 2 | 0 | 1 |gydF4y2Ba+---------+-----------------+--------------------+gydF4y2Ba| 3 | 1 | 2 |gydF4y2Ba+---------+-----------------+--------------------+gydF4y2Ba| 4 | 3 | 2 |gydF4y2Ba+---------+-----------------+--------------------+gydF4y2Ba| 5 | 3 | 0 |gydF4y2Ba+---------+-----------------+--------------------+gydF4y2Ba| 6 | 3 | 1 |gydF4y2Ba+---------+-----------------+--------------------+gydF4y2Ba* /gydF4y2Ba創建gydF4y2Ba表格gydF4y2Bazzz_gamesgydF4y2Ba(gydF4y2Bagame_idgydF4y2BaINTgydF4y2Ba,gydF4y2Bagame_dategydF4y2Ba日期gydF4y2Ba)gydF4y2Ba使用gydF4y2BaδgydF4y2Ba;gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_gamesgydF4y2Ba值gydF4y2Ba(gydF4y2Ba1gydF4y2Ba,gydF4y2Ba“2020-12-12”gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_gamesgydF4y2Ba值gydF4y2Ba(gydF4y2Ba2gydF4y2Ba,gydF4y2Ba“2021-01-09”gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_gamesgydF4y2Ba值gydF4y2Ba(gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba“2020-12-19”gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_gamesgydF4y2Ba值gydF4y2Ba(gydF4y2Ba4gydF4y2Ba,gydF4y2Ba“2021-01-16”gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_gamesgydF4y2Ba值gydF4y2Ba(gydF4y2Ba5gydF4y2Ba,gydF4y2Ba“2021-01-23”gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_gamesgydF4y2Ba值gydF4y2Ba(gydF4y2Ba6gydF4y2Ba,gydF4y2Ba“2021-02-06”gydF4y2Ba);gydF4y2Ba/*gydF4y2Ba+---------+------------+gydF4y2Ba| game_id | game_date |gydF4y2Ba+=========+============+gydF4y2Ba| 1 | 2020-12-12 |gydF4y2Ba+---------+------------+gydF4y2Ba| 2 | 2021-01-09 |gydF4y2Ba+---------+------------+gydF4y2Ba| 3 | 2020-12-19 |gydF4y2Ba+---------+------------+gydF4y2Ba| 4 | 2021-01-16 |gydF4y2Ba+---------+------------+gydF4y2Ba| 5 | 2021-01-23 |gydF4y2Ba+---------+------------+gydF4y2Ba| 6 | 2021-02-06 |gydF4y2Ba+---------+------------+gydF4y2Ba* /gydF4y2Ba創建gydF4y2Ba表格gydF4y2Bazzz_teamsgydF4y2Ba(gydF4y2Bateam_idgydF4y2BaINTgydF4y2Ba,gydF4y2Bateam_citygydF4y2BaVARCHARgydF4y2Ba(gydF4y2Ba15gydF4y2Ba)gydF4y2Ba)gydF4y2Ba使用gydF4y2BaδgydF4y2Ba;gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_teamsgydF4y2Ba值gydF4y2Ba(gydF4y2Ba1gydF4y2Ba,gydF4y2Ba“舊金山”gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_teamsgydF4y2Ba值gydF4y2Ba(gydF4y2Ba2gydF4y2Ba,gydF4y2Ba“西雅圖”gydF4y2Ba);gydF4y2Ba插入gydF4y2Ba成gydF4y2Bazzz_teamsgydF4y2Ba值gydF4y2Ba(gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba“阿姆斯特丹”gydF4y2Ba);gydF4y2Ba/*gydF4y2Ba+---------+---------------+gydF4y2Ba| team_id | team_city |gydF4y2Ba+=========+===============+gydF4y2Ba| 1 |舊金山|gydF4y2Ba+---------+---------------+gydF4y2Ba| 2 |西雅圖|gydF4y2Ba+---------+---------------+gydF4y2Ba| 3 |阿姆斯特丹|gydF4y2Ba+---------+---------------+gydF4y2Ba* /gydF4y2Ba
在項目的gydF4y2Ba
模型gydF4y2Ba
目錄,創建一個名為gydF4y2Bazzz_game_details.sqlgydF4y2Ba
使用下麵的SQL語句。這條語句創建了一個表,其中提供了每場比賽的詳細信息,比如球隊名稱和分數。的gydF4y2Ba配置gydF4y2Ba
Block指示DBT根據這條語句在數據庫中創建一個表。gydF4y2Ba—創建一個表格,提供每款遊戲的全部細節,包括gydF4y2Ba-比賽ID,主隊和客隊的城市名稱和比分,gydF4y2Ba——比賽獲勝者的城市名稱和比賽日期。gydF4y2Ba
{{gydF4y2Ba配置gydF4y2Ba(gydF4y2Ba物化gydF4y2Ba=gydF4y2Ba“表”gydF4y2Ba,gydF4y2Bafile_formatgydF4y2Ba=gydF4y2Ba“δ”gydF4y2Ba)gydF4y2Ba}}gydF4y2Ba
第四步:將訪客團隊id替換為他們所在城市的名稱。gydF4y2Ba選擇gydF4y2Bagame_idgydF4y2Ba,gydF4y2Ba首頁gydF4y2Ba,gydF4y2BatgydF4y2Ba.gydF4y2Bateam_citygydF4y2Ba作為gydF4y2Ba遊客gydF4y2Ba,gydF4y2Bahome_scoregydF4y2Ba,gydF4y2Bavisitor_scoregydF4y2Ba,gydF4y2Ba第四步中的第三步:顯示每場比賽獲勝者的城市名稱。gydF4y2Ba情況下gydF4y2Ba當gydF4y2Bahome_scoregydF4y2Ba>gydF4y2Bavisitor_scoregydF4y2Ba然後gydF4y2Ba首頁gydF4y2Ba當gydF4y2Bavisitor_scoregydF4y2Ba>gydF4y2Bahome_scoregydF4y2Ba然後gydF4y2BatgydF4y2Ba.gydF4y2Bateam_citygydF4y2Ba結束gydF4y2Ba作為gydF4y2Ba贏家gydF4y2Ba,gydF4y2Bagame_dategydF4y2Ba作為gydF4y2Ba日期gydF4y2Ba從gydF4y2Ba(gydF4y2Ba第四步中的第二步:將主隊id替換為他們實際的城市名稱。gydF4y2Ba選擇gydF4y2Bagame_idgydF4y2Ba,gydF4y2BatgydF4y2Ba.gydF4y2Bateam_citygydF4y2Ba作為gydF4y2Ba首頁gydF4y2Ba,gydF4y2Bahome_scoregydF4y2Ba,gydF4y2Bavisitor_team_idgydF4y2Ba,gydF4y2Bavisitor_scoregydF4y2Ba,gydF4y2Bagame_dategydF4y2Ba從gydF4y2Ba(gydF4y2Ba第四步中的第一步:結合來自不同表格的數據(例如,遊戲和球隊id,分數,日期)。gydF4y2Ba選擇gydF4y2BaggydF4y2Ba.gydF4y2Bagame_idgydF4y2Ba,gydF4y2Ba去gydF4y2Ba.gydF4y2Bahome_team_idgydF4y2Ba,gydF4y2BagsgydF4y2Ba.gydF4y2Bahome_team_scoregydF4y2Ba作為gydF4y2Bahome_scoregydF4y2Ba,gydF4y2Ba去gydF4y2Ba.gydF4y2Bavisitor_team_idgydF4y2Ba,gydF4y2BagsgydF4y2Ba.gydF4y2Bavisitor_team_scoregydF4y2Ba作為gydF4y2Bavisitor_scoregydF4y2Ba,gydF4y2BaggydF4y2Ba.gydF4y2Bagame_dategydF4y2Ba從gydF4y2Bazzz_gamesgydF4y2Ba作為gydF4y2BaggydF4y2Ba,gydF4y2Bazzz_game_opponentsgydF4y2Ba作為gydF4y2Ba去gydF4y2Ba,gydF4y2Bazzz_game_scoresgydF4y2Ba作為gydF4y2BagsgydF4y2Ba在哪裏gydF4y2BaggydF4y2Ba.gydF4y2Bagame_idgydF4y2Ba=gydF4y2Ba去gydF4y2Ba.gydF4y2Bagame_idgydF4y2Ba而且gydF4y2BaggydF4y2Ba.gydF4y2Bagame_idgydF4y2Ba=gydF4y2BagsgydF4y2Ba.gydF4y2Bagame_idgydF4y2Ba)gydF4y2Ba作為gydF4y2Baall_idsgydF4y2Ba,gydF4y2Bazzz_teamsgydF4y2Ba作為gydF4y2BatgydF4y2Ba在哪裏gydF4y2Baall_idsgydF4y2Ba.gydF4y2Bahome_team_idgydF4y2Ba=gydF4y2BatgydF4y2Ba.gydF4y2Bateam_idgydF4y2Ba)gydF4y2Ba作為gydF4y2Bavisitor_idsgydF4y2Ba,gydF4y2Bazzz_teamsgydF4y2Ba作為gydF4y2BatgydF4y2Ba在哪裏gydF4y2Bavisitor_idsgydF4y2Ba.gydF4y2Bavisitor_team_idgydF4y2Ba=gydF4y2BatgydF4y2Ba.gydF4y2Bateam_idgydF4y2Ba訂單gydF4y2Ba通過gydF4y2Bagame_dategydF4y2BadescgydF4y2Ba
在項目的gydF4y2Ba
模型gydF4y2Ba
目錄,創建一個名為gydF4y2Bazzz_win_loss_records.sqlgydF4y2Ba
使用下麵的SQL語句。該語句創建了一個視圖,其中列出了本賽季球隊的輸贏記錄。gydF4y2Ba—創建一個視圖,根據球隊總結本賽季的勝利和失敗記錄。第二步:計算每支隊伍的勝利和失敗的次數。選勝者為隊,算(勝者)為勝,——每隊打4場比賽。(4 -計算(贏家))從(- 2中的第一步:確定每場比賽的贏家和輸家。從{{ref('zzz_game_details')}})組中選擇game_id,獲勝者,當home =獲勝者時的情況,然後訪問者其他home end作為失敗者gydF4y2Ba
激活虛擬環境後,運行gydF4y2Ba
印度生物技術部gydF4y2Ba運行gydF4y2Ba
命令,使用前麵兩個文件的路徑。在gydF4y2Ba默認的gydF4y2Ba
數據庫(如gydF4y2Baprofiles.ymlgydF4y2Ba
文件),DBT創建一個名為gydF4y2Bazzz_game_detailsgydF4y2Ba
一個視圖名為gydF4y2Bazzz_win_loss_recordsgydF4y2Ba
.DBT從相關的視圖和表名中獲取這些視圖和表名gydF4y2Ba. sqlgydF4y2Ba
文件的名字。gydF4y2BaDBT運行——model models/zzz_game_details。sql模型/ zzz_win_loss_records.sqlgydF4y2Ba
...gydF4y2Ba...| 1 2 default.zzz_game_details開始表模型 ....................(運行)gydF4y2Ba...| 1 of 2 OK創建表模型default.zzz_game_details...............(好吧…)gydF4y2Ba...| 2 2開始default.zzz_win_loss_records視圖模型 .................(運行)gydF4y2Ba...| 2 of 2 OK創建視圖模型default.zzz_win_loss_records............(好吧…)gydF4y2Ba...|gydF4y2Ba...完成運行1個表模型,1個視圖模型…gydF4y2Ba成功完成gydF4y2Ba完成了。Pass =2 warn =0 error =0 skip =0 total =2gydF4y2Ba
運行以下SQL代碼列出關於新視圖的信息,並從表和視圖中選擇所有行。gydF4y2Ba
如果連接到集群,則可以從數據庫運行此SQL代碼gydF4y2Ba筆記本gydF4y2Ba連接到集群,並指定SQL作為筆記本的默認語言。如果連接到SQL倉庫,則可以從數據庫中運行此SQL代碼gydF4y2Ba查詢gydF4y2Ba.gydF4y2Ba
顯示gydF4y2Ba的觀點gydF4y2Ba從gydF4y2Ba默認的gydF4y2Ba就像gydF4y2Ba“zzz_win_loss_records”gydF4y2Ba;gydF4y2Ba
+-----------+----------------------+-------------+gydF4y2Ba|命名空間| viewName | istem臨時| . view視圖gydF4y2Ba+===========+======================+=============+gydF4y2Ba| default | zzz_win_loss_records | false |gydF4y2Ba+-----------+----------------------+-------------+gydF4y2Ba
選擇gydF4y2Ba*gydF4y2Ba從gydF4y2Bazzz_game_detailsgydF4y2Ba;gydF4y2Ba
+---------+---------------+---------------+------------+---------------+---------------+------------+gydF4y2Ba| game_id | home | visitor | home_score | visitor_score | winner | date |gydF4y2Ba+=========+===============+===============+============+===============+===============+============+gydF4y2Ba| 1 |舊金山|西雅圖| 4 | 2 |舊金山| 2020-12-12 |gydF4y2Ba+---------+---------------+---------------+------------+---------------+---------------+------------+gydF4y2Ba| 2 |舊金山|阿姆斯特丹| 0 | 1 |阿姆斯特丹| 2021-01-09 |gydF4y2Ba+---------+---------------+---------------+------------+---------------+---------------+------------+gydF4y2Ba| 3 |西雅圖|舊金山| 1 | 2 |舊金山| 2020-12-19 |gydF4y2Ba+---------+---------------+---------------+------------+---------------+---------------+------------+gydF4y2Ba| 4 |西雅圖|阿姆斯特丹| 3 | 2 |西雅圖| 2021-01-16 |gydF4y2Ba+---------+---------------+---------------+------------+---------------+---------------+------------+gydF4y2Ba| 5 |阿姆斯特丹|舊金山| 3 | 0 |阿姆斯特丹| 2021-01-23 |gydF4y2Ba+---------+---------------+---------------+------------+---------------+---------------+------------+gydF4y2Ba| 6 |阿姆斯特丹|西雅圖| 3 | 1 |阿姆斯特丹| 2021-02-06 |gydF4y2Ba+---------+---------------+---------------+------------+---------------+---------------+------------+gydF4y2Ba
選擇gydF4y2Ba*gydF4y2Ba從gydF4y2Bazzz_win_loss_recordsgydF4y2Ba;gydF4y2Ba
+---------------+------+--------+gydF4y2Ba|隊|贏|輸|gydF4y2Ba+===============+======+========+gydF4y2Ba|阿姆斯特丹| 3 | 1 |gydF4y2Ba+---------------+------+--------+gydF4y2Ba|舊金山| 2 | 2 |gydF4y2Ba+---------------+------+--------+gydF4y2Ba|西雅圖| 1 | 3 |gydF4y2Ba+---------------+------+--------+gydF4y2Ba
步驟5:創建並運行測試gydF4y2Ba
在此步驟中,您將創建gydF4y2Ba測試gydF4y2Ba,這是你對你的模型做出的斷言。運行這些測試時,dbt會告訴您項目中的每個測試是通過還是失敗。gydF4y2Ba
有兩種類型的測試。gydF4y2Ba模式測試gydF4y2Ba,在YAML中應用,返回沒有通過斷言的記錄數。當這個數字為零時,所有記錄通過,因此測試通過。gydF4y2Ba數據測試gydF4y2Ba是必須返回零記錄才能通過的特定查詢。gydF4y2Ba
在項目的gydF4y2Ba
模型gydF4y2Ba
目錄,創建一個名為gydF4y2Baschema.ymlgydF4y2Ba
附有以下內容。此文件包括模式測試,用於確定指定列是否具有惟一值、是否為空、是否僅具有指定值或組合。gydF4y2Ba版本gydF4y2Ba:gydF4y2Ba2gydF4y2Ba模型gydF4y2Ba:gydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Bazzz_game_detailsgydF4y2Ba列gydF4y2Ba:gydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Bagame_idgydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Ba獨特的gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Ba首頁gydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba-gydF4y2Baaccepted_valuesgydF4y2Ba:gydF4y2Ba值gydF4y2Ba:gydF4y2Ba[gydF4y2Ba“阿姆斯特丹”gydF4y2Ba,gydF4y2Ba“聖gydF4y2Ba舊金山的gydF4y2Ba,gydF4y2Ba“西雅圖”gydF4y2Ba]gydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Ba遊客gydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba-gydF4y2Baaccepted_valuesgydF4y2Ba:gydF4y2Ba值gydF4y2Ba:gydF4y2Ba[gydF4y2Ba“阿姆斯特丹”gydF4y2Ba,gydF4y2Ba“聖gydF4y2Ba舊金山的gydF4y2Ba,gydF4y2Ba“西雅圖”gydF4y2Ba]gydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Bahome_scoregydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Bavisitor_scoregydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Ba贏家gydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba-gydF4y2Baaccepted_valuesgydF4y2Ba:gydF4y2Ba值gydF4y2Ba:gydF4y2Ba[gydF4y2Ba“阿姆斯特丹”gydF4y2Ba,gydF4y2Ba“聖gydF4y2Ba舊金山的gydF4y2Ba,gydF4y2Ba“西雅圖”gydF4y2Ba]gydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Ba日期gydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Bazzz_win_loss_recordsgydF4y2Ba列gydF4y2Ba:gydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Ba團隊gydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Ba獨特的gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba-gydF4y2Ba的關係gydF4y2Ba:gydF4y2Ba來gydF4y2Ba:gydF4y2Ba裁判(“zzz_game_details”)gydF4y2Ba場gydF4y2Ba:gydF4y2Ba首頁gydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Ba贏了gydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba-gydF4y2Ba的名字gydF4y2Ba:gydF4y2Ba損失gydF4y2Ba測試gydF4y2Ba:gydF4y2Ba-gydF4y2Banot_nullgydF4y2Ba
在項目的gydF4y2Ba
測試gydF4y2Ba
目錄,創建一個名為gydF4y2Bazzz_game_details_check_dates.sqlgydF4y2Ba
使用下麵的SQL語句。該文件包括一個數據測試,以確定是否有任何比賽發生在常規賽之外。gydF4y2Ba——本賽季的比賽發生在2020-12-12和2021-02-06之間。—要通過此測試,此查詢必須不返回任何結果。Select date from {{ref('zzz_game_details')}} where date < '2020-12-12' or date > '2021-02-06'gydF4y2Ba
在項目的gydF4y2Ba
測試gydF4y2Ba
目錄,創建一個名為gydF4y2Bazzz_game_details_check_scores.sqlgydF4y2Ba
使用下麵的SQL語句。該文件包括一個數據測試,以確定是否有任何比分為負或任何比賽平局。gydF4y2Ba這項運動不允許負分或平局。—要通過此測試,此查詢必須不返回任何結果。從{{ref('zzz_game_details')}}中選擇home_score, visitor_score,其中home_score < 0或visitor_score < 0或home_score = visitor_scoregydF4y2Ba
在項目的gydF4y2Ba
測試gydF4y2Ba
目錄,創建一個名為gydF4y2Bazzz_win_loss_records_check_records.sqlgydF4y2Ba
使用下麵的SQL語句。該文件包括一個數據測試,以確定是否有任何球隊的輸贏記錄為負,輸贏記錄超過了比賽次數,或者比賽次數超過了允許的次數。gydF4y2Ba——本賽季每隊各參加4場比賽。—要通過此測試,此查詢必須不返回任何結果。從{{ref('zzz_win_loss_records')}}中選擇勝負,其中贏< 0或贏> 4或輸< 0或輸> 4或(贏+輸)> 4gydF4y2Ba
激活虛擬環境後,運行gydF4y2Ba
印度生物技術部gydF4y2Ba測驗gydF4y2Ba
命令使用gydF4y2Ba——模式gydF4y2Ba
屬性中的兩個模型的名稱gydF4y2Ba模型/ schema.ymlgydF4y2Ba
文件運行為這些模型指定的測試。gydF4y2Ba印度生物技術部gydF4y2Ba測驗gydF4y2Ba——schema——models zzz_game_details zzz_win_loss_recordsgydF4y2Ba
...gydF4y2Ba...| 1 of 15 START測試accepted_values_zzz_game_details_home__阿姆斯特丹__san_francisco__seattle [RUN]gydF4y2Ba...| 1 of 15 PASS accepted_values_zzz_game_details_home__Amsterdam__San_Francisco__Seattle [PASS…]gydF4y2Ba...gydF4y2Ba...|gydF4y2Ba...|完成15個測試…gydF4y2Ba成功完成gydF4y2Ba完成了。Pass =15 warn =0 error =0 skip =0 total =15gydF4y2Ba
運行gydF4y2Ba
印度生物技術部gydF4y2Ba測驗gydF4y2Ba
命令使用gydF4y2Ba——數據gydF4y2Ba
選項在項目中運行測試gydF4y2Ba測試gydF4y2Ba
目錄中。gydF4y2Ba印度生物技術部gydF4y2Ba測驗gydF4y2Ba——數據gydF4y2Ba
...gydF4y2Ba...1 | 3 zzz_game_details_check_dates開始測試 .......................(運行)gydF4y2Ba...1 | 3通過zzz_game_details_check_dates .............................(通過…)gydF4y2Ba...gydF4y2Ba...|gydF4y2Ba...|完成3個測試…gydF4y2Ba成功完成gydF4y2Ba完成了。Pass =3 warn =0 error =0 skip =0 total =3gydF4y2Ba
第六步:清理gydF4y2Ba
可以通過運行以下SQL代碼刪除為本例創建的表和視圖。gydF4y2Ba
如果連接到集群,則可以從數據庫運行此SQL代碼gydF4y2Ba筆記本gydF4y2Ba連接到集群,並指定SQL作為筆記本的默認語言。如果連接到SQL倉庫,則可以從數據庫中運行此SQL代碼gydF4y2Ba查詢gydF4y2Ba.gydF4y2Ba
下降gydF4y2Ba表格gydF4y2Bazzz_game_opponentsgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba表格gydF4y2Bazzz_game_scoresgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba表格gydF4y2Bazzz_gamesgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba表格gydF4y2Bazzz_teamsgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba表格gydF4y2Bazzz_game_detailsgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba視圖gydF4y2Bazzz_win_loss_recordsgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba表格gydF4y2Ba鑽石gydF4y2Ba;gydF4y2Ba下降gydF4y2Ba表格gydF4y2Badiamonds_four_csgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba視圖gydF4y2Badiamonds_list_colorsgydF4y2Ba;gydF4y2Ba下降gydF4y2Ba視圖gydF4y2Badiamonds_pricesgydF4y2Ba;gydF4y2Ba
下一個步驟gydF4y2Ba
了解更多關於dbt的知識gydF4y2Ba模型gydF4y2Ba.gydF4y2Ba
了解更多關於如何gydF4y2Ba測驗gydF4y2Ba你的DBT項目。gydF4y2Ba
學習如何使用gydF4y2Ba金賈的gydF4y2Ba,一種模板語言,用於在dbt項目中編程SQL。gydF4y2Ba
了解dbtgydF4y2Ba最佳實踐gydF4y2Ba.gydF4y2Ba
了解gydF4y2Ba印度生物技術部的雲gydF4y2Badbt的托管版本。gydF4y2Ba
故障排除gydF4y2Ba
本節將解決dbt Core與Databricks一起使用時的常見問題。gydF4y2Ba
一般故障排除gydF4y2Ba
看到gydF4y2Ba得到幫助gydF4y2Ba在dbt實驗室網站上。gydF4y2Ba