የውሂብ ግንባታ መሣሪያ ወይም በዳታ ማከማቻ እና በስሞቲ መካከል የተለመደ

የውሂብ ግንባታ መሣሪያ ወይም በዳታ ማከማቻ እና በስሞቲ መካከል የተለመደ
ጥሩ የመረጃ ቋት በምን መርሆዎች ነው የሚገነባው?

የቦይለር ኮድ በማይኖርበት ጊዜ በንግድ እሴት እና ትንታኔ ላይ ያተኩሩ። DWH እንደ ኮድ ቤዝ ማስተዳደር፡ ስሪት ማውጣት፣ መገምገም፣ አውቶሜትድ ሙከራ እና CI። ሞዱላሪቲ፣ ኤክስቴንሽን፣ ክፍት ምንጭ እና ማህበረሰብ። ተስማሚ የተጠቃሚ ሰነድ እና የጥገኝነት እይታ (የውሂብ መስመር)።

ስለ እነዚህ ሁሉ በበለጠ ዝርዝር እና ስለ DBT በትልቁ ዳታ እና ትንታኔ ስነ-ምህዳር ውስጥ ስላለው ሚና - በድመት ስር እንኳን ደህና መጡ።

ሰላም ሁሉም ሰው

አርቴሚ ኮዚር ተገናኝቷል። ከ 5 ዓመታት በላይ ከመረጃ መጋዘኖች ፣ ኢቲኤል / ኢኤልት በመገንባት ፣ እንዲሁም የመረጃ ትንተና እና ምስላዊነት እየሠራሁ ነው። አሁን እየሰራሁ ነው። ዊሊ, በኮርሱ ላይ በ OTUS አስተምራለሁ የመረጃ መሐንዲስ ፡፡፣ እና ዛሬ በምርቃቱ ዋዜማ የፃፍኩትን ፅሁፍ ላካፍላችሁ ለትምህርቱ አዲስ ምዝገባ.

አጭር ግምገማ

የዲቢቲ ማዕቀፍ በELT ምህጻረ ቃል (Extract - Transform - Load) ስለ ፊደል ቲ ነው።

እንደ BigQuery፣ Redshift፣ Snowflake ያሉ ምርታማ እና ሊለኩ የሚችሉ የትንታኔ የውሂብ ጎታዎች ሲመጡ ከዳታ ማከማቻ ውጭ ለውጦችን ማድረግ ምንም ፋይዳ አልነበረውም። 

ዲቢቲ መረጃን ከምንጮች አይጭንም፣ ነገር ግን አስቀድሞ ወደ ማከማቻ (ውስጣዊ ወይም ውጫዊ ማከማቻ) ከተሰቀለ ውሂብ ጋር አብሮ ለመስራት ጥሩ እድሎችን ይሰጣል።

የውሂብ ግንባታ መሣሪያ ወይም በዳታ ማከማቻ እና በስሞቲ መካከል የተለመደ
የዲቢቲ ዋና ዓላማ ኮዱን መውሰድ, ወደ SQL ማጠናቀር, በማጠራቀሚያው ውስጥ በትክክለኛው ቅደም ተከተል ትዕዛዞችን ማከናወን ነው.

DBT ፕሮጀክት መዋቅር

ፕሮጀክቱ 2 ዓይነቶችን ብቻ ማውጫዎች እና ፋይሎችን ያቀፈ ነው-

  • ሞዴል (.sql) - በ SELECT መጠይቅ የተገለጸ የለውጥ አሃድ
  • የማዋቀሪያ ፋይል (.yml) - መለኪያዎች, ቅንብሮች, ሙከራዎች, ሰነዶች

በመሠረታዊ ደረጃ, ሥራው በሚከተለው መንገድ ይገነባል.

  • ተጠቃሚው በማንኛውም ምቹ IDE ውስጥ የሞዴል ኮድ ያዘጋጃል
  • CLI ን በመጠቀም የሞዴሎቹ ማስጀመሪያ ተብሎ ይጠራል, DBT የሞዴሎቹን ኮድ ወደ SQL ያጠናቅራል
  • የተጠናቀረው SQL ኮድ በተጠቀሰው ቅደም ተከተል (ግራፍ) ውስጥ ባለው ማከማቻ ውስጥ ይከናወናል

ከCLI ማስጀመር ምን ሊመስል ይችላል፡-

የውሂብ ግንባታ መሣሪያ ወይም በዳታ ማከማቻ እና በስሞቲ መካከል የተለመደ

ሁሉም ነገር SELECT ነው።

ይህ የውሂብ ግንባታ መሣሪያ ማዕቀፍ ገዳይ ባህሪ ነው። በሌላ አነጋገር፣ ዲቢቲ ጥያቄዎችህን በማጠራቀሚያው ውስጥ እውን ለማድረግ (ከCREATE፣ INSERT፣ UPDATE፣ Delete AlTER፣ GRANT፣ ... ትእዛዞች ያሉ ልዩነቶች) ጋር የተያያዙ ሁሉንም ኮድ ያጠፋል።

ማንኛውም ሞዴል የውጤቱን የውሂብ ስብስብ የሚገልጽ ነጠላ የ SELECT ጥያቄ መፃፍን ያመለክታል።

በተመሳሳይ ጊዜ, የትራንስፎርሜሽን አመክንዮ ብዙ ደረጃ ሊሆን ይችላል እና ከሌሎች ሞዴሎች መረጃን ያጠናክራል. የትዕዛዝ ማሳያ (f_orders) የሚገነባ ሞዴል ምሳሌ፡-

{% set payment_methods = ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] %}
 
with orders as (
 
   select * from {{ ref('stg_orders') }}
 
),
 
order_payments as (
 
   select * from {{ ref('order_payments') }}
 
),
 
final as (
 
   select
       orders.order_id,
       orders.customer_id,
       orders.order_date,
       orders.status,
       {% for payment_method in payment_methods -%}
       order_payments.{{payment_method}}_amount,
       {% endfor -%}
       order_payments.total_amount as amount
   from orders
       left join order_payments using (order_id)
 
)
 
select * from final

እዚህ ምን አስደሳች ነገሮችን ማየት እንችላለን?

መጀመሪያ: ጥቅም ላይ የዋለው CTE (የጋራ ሰንጠረዥ መግለጫዎች) - ብዙ ለውጦችን እና የንግድ አመክንዮ የያዘውን ኮድ ለማደራጀት እና ለመረዳት

ሁለተኛ፡ የሞዴል ኮድ የ SQL እና የቋንቋ ድብልቅ ነው። ጂንጃ (አብነት ቋንቋ)።

ምሳሌው ሉፕ ይጠቀማል ለ በመግለጫው ውስጥ ለተጠቀሰው ለእያንዳንዱ የመክፈያ ዘዴ መጠን ለማመንጨት ስብስብ. ተግባሩም ጥቅም ላይ ይውላል ማጣቀሻ - በኮዱ ውስጥ ወደ ሌሎች ሞዴሎች የማመልከት ችሎታ;

  • በማጠናቀር ጊዜ ማጣቀሻ በማከማቻው ውስጥ ወደ ዒላማ ጠቋሚ ወደ ጠረጴዛ ወይም እይታ ይቀየራል።
  • ማጣቀሻ የሞዴሎች ጥገኝነት ግራፍ እንዲገነቡ ይፈቅድልዎታል

ነበር ጂንጃ ወደ DBT ከሞላ ጎደል ያልተገደበ እድሎችን ይጨምራል። በብዛት ጥቅም ላይ የዋሉት የሚከተሉት ናቸው-

  • ከሆነ / ሌላ መግለጫዎች - የቅርንጫፍ መግለጫዎች
  • ለ loops - loops
  • ተለዋዋጮች
  • ማክሮ - ማክሮዎችን መፍጠር

ቁሳቁስ: ሠንጠረዥ, እይታ, ተጨማሪ

የቁሳቁስ ስልት በውጤቱ የተገኘው የሞዴል መረጃ ስብስብ በማከማቻው ውስጥ የሚከማችበት አካሄድ ነው።

በመሠረታዊ አገላለጽ ይህ ነው፡-

  • ሠንጠረዥ - በማከማቻ ውስጥ አካላዊ ጠረጴዛ
  • እይታ - እይታ ፣ በማከማቻ ውስጥ ምናባዊ ሰንጠረዥ

እንዲሁም የበለጠ ውስብስብ ቁሳዊ የማውጣት ስልቶች አሉ፡-

  • መጨመር - የመጨመር ጭነት (ትልቅ የእውነታ ሰንጠረዦች); አዲስ መስመሮች ተጨምረዋል, የተቀየሩት ተዘምነዋል, የተሰረዙ ይጸዳሉ 
  • Ephemeral - ሞዴሉ በቀጥታ አይሠራም, ነገር ግን በሌሎች ሞዴሎች እንደ CTE ይሳተፋል
  • እራስዎ ማከል የሚችሉት ሌላ ማንኛውም ስልቶች

ከቁሳቁስ ስልቶች በተጨማሪ ለተወሰኑ Vaults የማመቻቸት እድሎች አሉ ለምሳሌ፡-

  • የበረዶጊዜያዊ ሠንጠረዦች፣ የውህደት ባህሪ፣ የሰንጠረዥ ስብስብ፣ የገንዘብ ድጎማዎችን መቅዳት፣ አስተማማኝ እይታዎች
  • ቀይ አሳይዲስትኪ፣ ደርድር ቁልፍ (የተጠላለፈ፣ ግቢ)፣ ዘግይቶ ማሰሪያ እይታዎች
  • BigQuery፦ የሰንጠረዥ ክፍፍል እና ስብስብ፣ የውህደት ባህሪ፣ የ KMS ምስጠራ፣ መለያዎች እና መለያዎች
  • ሽክርክሪትየፋይል ቅርጸት (ፓርኬት፣ ሲኤስቪ፣ ጄሰን፣ ኦርሲ፣ ዴልታ)፣ ክፍልፋይ_በ፣ በክላስተር_በ፣ ባልዲ፣ የመጨመር_ስልት

የሚከተሉት ማከማቻዎች በአሁኑ ጊዜ ይደገፋሉ፡

  • ድህረ ምረቃ
  • ቀይ አሳይ
  • BigQuery
  • የበረዶ
  • ፕሬስቶ (በከፊል)
  • ብልጭታ (ከፊል)
  • የማይክሮሶፍት SQL አገልጋይ (የማህበረሰብ አስማሚ)

ሞዴላችንን እናሻሽል፡-

  • መሙላቱን ጨምሯል (እየጨመረ) እናድርገው
  • ለ Redshift ክፍልፋይ እና ደርድር ቁልፎችን ያክሉ

-- Конфигурация ПОдоНи: 
-- Инкрементальное наполнение, уникальный ключ для обновления записей (unique_key)
-- Ключ сегментации (dist), ключ сортировки (sort)
{{
  config(
       materialized='incremental',
       unique_key='order_id',
       dist="customer_id",
       sort="order_date"
   )
}}
 
{% set payment_methods = ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] %}
 
with orders as (
 
   select * from {{ ref('stg_orders') }}
   where 1=1
   {% if is_incremental() -%}
       -- Этот фильтр будет применен только для инкрементального Сапуска
       and order_date >= (select max(order_date) from {{ this }})
   {%- endif %} 
 
),
 
order_payments as (
 
   select * from {{ ref('order_payments') }}
 
),
 
final as (
 
   select
       orders.order_id,
       orders.customer_id,
       orders.order_date,
       orders.status,
       {% for payment_method in payment_methods -%}
       order_payments.{{payment_method}}_amount,
       {% endfor -%}
       order_payments.total_amount as amount
   from orders
       left join order_payments using (order_id)
 
)
 
select * from final

የሞዴል ጥገኛ ግራፍ

የጥገኝነት ዛፍ ነው። እሱ ደግሞ DAG (ቀጥተኛ አሲክሊክ ግራፍ - ዳይሬክት አሲክሊክ ግራፍ) ነው።

DBT በሁሉም የፕሮጀክት ሞዴሎች ውቅር ላይ በመመስረት ግራፍ ይገነባል፣ይልቁንስ ማጣቀሻ() ሞዴሎችን ከሌሎች ሞዴሎች ጋር ያገናኛል። ግራፍ መኖሩ የሚከተሉትን ነገሮች እንዲያደርጉ ያስችልዎታል:

  • በትክክለኛ ቅደም ተከተል ውስጥ ሞዴሎችን ማስኬድ
  • የማሳያ ምስረታ ትይዩ
  • የዘፈቀደ ንዑስ ግራፍ በማሄድ ላይ 

የግራፍ እይታ ምሳሌ፡-

የውሂብ ግንባታ መሣሪያ ወይም በዳታ ማከማቻ እና በስሞቲ መካከል የተለመደ
እያንዳንዱ የግራፍ መስቀለኛ መንገድ ሞዴል ነው, የግራፉ ጠርዞች በማጣቀሻው ተሰጥተዋል.

የውሂብ ጥራት እና ሰነድ

ሞዴሎቹ እራሳቸው ከመፈጠሩ በተጨማሪ ዲቢቲ ስለ ውጤቱ የውሂብ ስብስብ ብዙ ግምቶችን (ማስረጃዎችን) ለመፈተሽ ይፈቅድልዎታል-

  • ኑል አይደለም።
  • የተለየ
  • የማጣቀሻ ታማኝነት - የማጣቀሻ ታማኝነት (ለምሳሌ የደንበኛ_መታዘዝ በትዕዛዝ ሠንጠረዥ ውስጥ ከደንበኞች ሠንጠረዥ ውስጥ ካለው መታወቂያ ጋር ይዛመዳል)
  • ትክክለኛ የሆኑ እሴቶች ዝርዝርን ማዛመድ

የእራስዎን ሙከራዎች (ብጁ የውሂብ ሙከራዎች) ማከል ይቻላል, ለምሳሌ, % የገቢ ልዩነት ከአንድ ቀን, ከሳምንት, ከአንድ ወር በፊት አመላካቾች. እንደ SQL መጠይቅ የተዘጋጀ ማንኛውም ግምት ፈተና ሊሆን ይችላል።

በዚህ መንገድ ያልተፈለጉ ልዩነቶች እና በውሂብ ውስጥ ያሉ ስህተቶች በመጋዘኑ የሱቅ ፊት ለፊት ሊያዙ ይችላሉ።

ከሰነድ አንፃር፣ ዲቢቲ ሜታዳታ እና አስተያየቶችን በአምሳያው እና በባህሪ ደረጃዎች ለመጨመር፣ ለማተም እና ለማሰራጨት ስልቶችን ያቀርባል። 

በማዋቀር ፋይል ደረጃ ላይ ሙከራዎችን እና ሰነዶችን ማከል እንደዚህ ይመስላል።

 - name: fct_orders
   description: This table has basic information about orders, as well as some derived facts based on payments
   columns:
     - name: order_id
       tests:
         - unique # проверка на уникальность значений
         - not_null # проверка на наличие null
       description: This is a unique identifier for an order
     - name: customer_id
       description: Foreign key to the customers table
       tests:
         - not_null
         - relationships: # проверка ссылочной целостности
             to: ref('dim_customers')
             field: customer_id
     - name: order_date
       description: Date (UTC) that the order was placed
     - name: status
       description: '{{ doc("orders_status") }}'
       tests:
         - accepted_values: # проверка на допустимые значения
             values: ['placed', 'shipped', 'completed', 'return_pending', 'returned']

እና ይህ ሰነድ በመነጨው ድህረ ገጽ ላይ እንዴት እንደሚመስል እነሆ፡-

የውሂብ ግንባታ መሣሪያ ወይም በዳታ ማከማቻ እና በስሞቲ መካከል የተለመደ

ማክሮዎች እና ሞጁሎች

የዲቢቲ አላማ የSQL ስክሪፕቶች ስብስብ ለመሆን ብዙ አይደለም ነገር ግን ለተጠቃሚዎች ሀይለኛ እና ባህሪ የበለፀገ ዘዴን ለማቅረብ የራሳቸውን ለውጥ ለመገንባት እና እነዚህን ሞጁሎች ለማሰራጨት ነው።

ማክሮዎች በአምሳያዎች ውስጥ ተግባራት ተብለው ሊጠሩ የሚችሉ የግንባታ እና መግለጫዎች ስብስቦች ናቸው። ማክሮዎች በDRY (ራስህን አትድገም) የምህንድስና መርህ መሰረት በ ሞዴሎች እና ፕሮጀክቶች መካከል SQL ን እንደገና እንድትጠቀም ያስችልሃል።

የማክሮ ምሳሌ፡-

{% macro rename_category(column_name) %}
case
 when {{ column_name }} ilike  '%osx%' then 'osx'
 when {{ column_name }} ilike  '%android%' then 'android'
 when {{ column_name }} ilike  '%ios%' then 'ios'
 else 'other'
end as renamed_product
{% endmacro %}

እና አጠቃቀሙ፡-

{% set column_name = 'product' %}
select
 product,
 {{ rename_category(column_name) }} -- вызов макроса
from my_table

DBT ተጠቃሚዎች ነጠላ ሞጁሎችን እና ማክሮዎችን እንዲያትሙ እና እንደገና እንዲጠቀሙ ከሚፈቅድ ጥቅል አስተዳዳሪ ጋር አብሮ ይመጣል።

ይህ ማለት እንደ፡- ያሉ ቤተ-መጻሕፍትን የማውረድ እና የመጠቀም ችሎታ ማለት ነው።

  • dbt_utilsከቀን/ሰዓት፣ ተተኪ ቁልፎች፣ የመርሃግብር ፈተናዎች፣ ምሶሶ/ንጣፊ እና ሌሎች ጋር መስራት
  • ለመሳሰሉት አገልግሎቶች ዝግጁ የሆኑ የማሳያ አብነቶች የበረዶ ቅንጣቶች и ሰንበር 
  • ቤተ-መጻሕፍት ለተወሰኑ የውሂብ ማከማቻዎች፣ ለምሳሌ ቀይ አሳይ 
  • የምዝግብ ማስታወሻ - የዲቢቲ ስራን ለመመዝገብ ሞጁል

የተሟላ የጥቅሎች ዝርዝር በ ላይ ይገኛል። dbt hub.

እንዲያውም ተጨማሪ ባህሪያት

እዚህ እኔ እና ቡድኑ የውሂብ ማከማቻን ለመገንባት የምንጠቀምባቸውን ጥቂት ሌሎች አስደሳች ባህሪያትን እና አተገባበርን እገልጻለሁ። ዊሊ.

የማስፈጸሚያ አካባቢዎችን መለየት DEV - TEST - PROD

በተመሳሳዩ የDWH ክላስተር ውስጥም ቢሆን (በተለያዩ እቅዶች)። ለምሳሌ በሚከተለው አገላለጽ፡-

with source as (
 
   select * from {{ source('salesforce', 'users') }}
   where 1=1
   {%- if target.name in ['dev', 'test', 'ci'] -%}           
       where timestamp >= dateadd(day, -3, current_date)   
   {%- endif -%}
 
)

ይህ ኮድ በጥሬው እንዲህ ይላል፡- ለአካባቢ ዴቭ፣ ፈተና፣ ሲ ውሂቡን ላለፉት 3 ቀናት ብቻ ይውሰዱ እና ከዚያ በላይ። ያም በእነዚህ አካባቢዎች ውስጥ መሮጥ በጣም ፈጣን እና ጥቂት ሀብቶችን ይፈልጋል። በአካባቢው ላይ ሲሮጡ ምርት የማጣሪያው ሁኔታ ችላ ይባላል.

ቁሳቁስ ከአማራጭ አምድ ኢንኮዲንግ ጋር

Redshift ለእያንዳንዱ አምድ የውሂብ መጭመቂያ ስልተ ቀመሮችን ለማዘጋጀት የሚያስችል ዓምድ DBMS ነው። የምርጥ ስልተ ቀመሮች ምርጫ በ 20-50% የተያዘውን የዲስክ ቦታ ሊቀንስ ይችላል.

ማክሮ redshift.compress_table የANALYZE COMPRESSION ትዕዛዙን ያስፈጽማል፣ ከተመከረው አምድ ኢንኮዲንግ ስልተ ቀመሮች ጋር አዲስ ሠንጠረዥ ይፈጥራል፣ የተወሰነ ክፍልፋይ (dist_key) እና የመደርደር (የቁልፍ_ቁልፍ) ቁልፎችን ያዘጋጃል፣ ውሂቡን ወደ እሱ ያስተላልፋል፣ እና አስፈላጊ ከሆነ የድሮውን ቅጂ ይሰርዛል።

የማክሮ ፊርማ፡-

{{ compress_table(schema, table,
                 drop_backup=False,
                 comprows=none|Integer,
                 sort_style=none|compound|interleaved,
                 sort_keys=none|List<String>,
                 dist_style=none|all|even,
                 dist_key=none|String) }}

የሞዴል አሂድ ምዝግብ ማስታወሻ

ለእያንዳንዱ የአምሳያው አፈፃፀም ፣ ከመጀመሩ በፊት ወይም ሞዴሉ ከተፈጠረ በኋላ ወዲያውኑ የሚከናወኑ መንጠቆዎችን (መንጠቆዎችን) መስቀል ይችላሉ-

   pre-hook: "{{ logging.log_model_start_event() }}"
   post-hook: "{{ logging.log_model_end_event() }}"

የመመዝገቢያ ሞጁል ሁሉንም አስፈላጊ ሜታዳታ በተለየ ሠንጠረዥ ውስጥ እንዲጽፉ ይፈቅድልዎታል, በዚህ መሠረት በኋላ ላይ የችግር አካባቢዎችን (ጠርሙሶችን) መመርመር እና መተንተን ይችላሉ.

ዳሽቦርዱ በLoker ውስጥ ባለው የመግቢያ ውሂብ ላይ እንዴት እንደሚመስል እነሆ፡-

የውሂብ ግንባታ መሣሪያ ወይም በዳታ ማከማቻ እና በስሞቲ መካከል የተለመደ

የማከማቻ አውቶማቲክ

እንደ UDF (በተጠቃሚ የተገለጹ ተግባራት) ያሉ ጥቅም ላይ የዋለውን የማከማቻ ተግባር አንዳንድ ቅጥያዎችን ከተጠቀሙ፣ የእነዚህን ተግባራት ቅጂ፣ የመዳረሻ ቁጥጥር እና በራስ-ሰር አዲስ የተለቀቁ ልቀቶችን በDBT ውስጥ ለማከናወን በጣም ምቹ ነው።

እኛ ሃሽ እሴቶችን ለማስላት Python UDF እንጠቀማለን ፣ የመልእክት አድራሻ ጎራዎችን ፣ የቢትማስክ ዲኮዲንግ።

በማንኛውም የሩጫ ጊዜ አካባቢ (dev፣ test፣ prod) ላይ UDF የሚፈጥር የማክሮ ምሳሌ፡-

{% macro create_udf() -%}
 
 {% set sql %}
       CREATE OR REPLACE FUNCTION {{ target.schema }}.f_sha256(mes "varchar")
           RETURNS varchar
           LANGUAGE plpythonu
           STABLE
       AS $$  
           import hashlib
           return hashlib.sha256(mes).hexdigest()
       $$
       ;
 {% endset %}
  
 {% set table = run_query(sql) %}
 
{%- endmacro %}

በዊሊ በ PostgreSQL ላይ የተመሰረተውን Amazon Redshift እንጠቀማለን. ለ Redshift በመደበኛነት በጠረጴዛዎች ላይ ስታቲስቲክስን መሰብሰብ እና የዲስክ ቦታን ነጻ ማድረግ አስፈላጊ ነው - የ ANALYZE እና VACUUM ትዕዛዞች በቅደም ተከተል።

ይህንን ለማድረግ ከredshift_maintenance ማክሮ የሚመጡ ትዕዛዞች በየምሽቱ ይፈጸማሉ፡-

{% macro redshift_maintenance() %}
 
   {% set vacuumable_tables=run_query(vacuumable_tables_sql) %}
 
   {% for row in vacuumable_tables %}
       {% set message_prefix=loop.index ~ " of " ~ loop.length %}
 
       {%- set relation_to_vacuum = adapter.get_relation(
                                               database=row['table_database'],
                                               schema=row['table_schema'],
                                               identifier=row['table_name']
                                   ) -%}
       {% do run_query("commit") %}
 
       {% if relation_to_vacuum %}
           {% set start=modules.datetime.datetime.now() %}
           {{ dbt_utils.log_info(message_prefix ~ " Vacuuming " ~ relation_to_vacuum) }}
           {% do run_query("VACUUM " ~ relation_to_vacuum ~ " BOOST") %}
           {{ dbt_utils.log_info(message_prefix ~ " Analyzing " ~ relation_to_vacuum) }}
           {% do run_query("ANALYZE " ~ relation_to_vacuum) %}
           {% set end=modules.datetime.datetime.now() %}
           {% set total_seconds = (end - start).total_seconds() | round(2)  %}
           {{ dbt_utils.log_info(message_prefix ~ " Finished " ~ relation_to_vacuum ~ " in " ~ total_seconds ~ "s") }}
       {% else %}
           {{ dbt_utils.log_info(message_prefix ~ ' Skipping relation "' ~ row.values() | join ('"."') ~ '" as it does not exist') }}
       {% endif %}
 
   {% endfor %}
 
{% endmacro %}

DBT ደመና

DBT እንደ አገልግሎት (የሚተዳደር አገልግሎት) መጠቀም ይቻላል። ተካትቷል፡

  • የድር አይዲኢ ለፕሮጀክት እና ሞዴል ልማት
  • የሥራ ውቅር እና የጊዜ ሰሌዳ አቀማመጥ
  • የምዝግብ ማስታወሻዎች ቀላል እና ምቹ መዳረሻ
  • ድህረ ገጽ ከፕሮጀክትዎ ሰነድ ጋር
  • CI (የቀጠለ ውህደት) በማገናኘት ላይ

የውሂብ ግንባታ መሣሪያ ወይም በዳታ ማከማቻ እና በስሞቲ መካከል የተለመደ

መደምደሚያ

DWHን ማዘጋጀት እና መብላት ለስላሳ መጠጥ መጠጣት አስደሳች እና ጤናማ ይሆናል። DBT ጂንጃ፣ ብጁ ማራዘሚያዎች (ሞጁሎች)፣ ማጠናከሪያ፣ ሞተር (አስፈፃሚ) እና የጥቅል አስተዳዳሪን ያካትታል። እነዚህን ንጥረ ነገሮች አንድ ላይ በማጣመር ለእርስዎ የውሂብ ማከማቻ የተሟላ የስራ አካባቢ ያገኛሉ። ዛሬ በDWH ውስጥ ለውጦችን ለመቆጣጠር የተሻለ መንገድ የለም።

የውሂብ ግንባታ መሣሪያ ወይም በዳታ ማከማቻ እና በስሞቲ መካከል የተለመደ

በዲቢቲ ገንቢዎች የሚከተሏቸው እምነቶች እንደሚከተለው ተቀምጠዋል።

  • ኮድ፣ GUI ሳይሆን፣ ውስብስብ የትንታኔ ሎጂክን ለመግለጽ ምርጡ ረቂቅ ነው።
  • ከመረጃ ጋር አብሮ መስራት የሶፍትዌር ምህንድስና (ሶፍትዌር ኢንጂነሪንግ) ምርጥ ተሞክሮዎችን ማስተካከል አለበት።

  • ወሳኝ የመረጃ መሠረተ ልማት እንደ ክፍት ምንጭ ሶፍትዌር በተጠቃሚው ማህበረሰብ ቁጥጥር ሾር መሆን አለበት።
  • የትንታኔ መሳሪያዎች ብቻ ሳይሆን ኮዱም የክፍት ምንጭ ማህበረሰቡ ንብረት እየሆነ ይሄዳል

እነዚህ ዋና እምነቶች ዛሬ ከ 850 በላይ ኩባንያዎች ጥቅም ላይ የሚውለውን ምርት ፈጥረዋል, እና ለወደፊቱ ለሚፈጠሩ ብዙ አስደሳች ቅጥያዎች መሰረት ይሆናሉ.

ፍላጎት ላላቸው ሰዎች፣ ከጥቂት ወራት በፊት በ OTUS ውስጥ የተከፈተ ትምህርት አካል አድርጌ የሰራሁት የተከፈተ ትምህርት የቪዲዮ ቀረጻ አለ። የውሂብ ግንባታ መሣሪያ ለአማዞን Redshift ማከማቻ.

ከዲቢቲ እና ከዳታ ማከማቻዎች በተጨማሪ፣ በOTUS መድረክ ላይ እንደ የውሂብ መሐንዲስ ኮርስ አካል፣ እኔ እና ባልደረቦቼ በሌሎች ተዛማጅ እና ዘመናዊ ርዕሶች ላይ ትምህርቶችን እንመራለን።

  • ለትልቅ ዳታ አፕሊኬሽኖች አርክቴክቸር ፅንሰ-ሀሳቦች
  • በስፓርክ እና በስፓርክ ዥረት ይለማመዱ
  • የመረጃ ምንጮችን ለመጫን የመማሪያ መንገዶች እና መሳሪያዎች
  • በDWH ውስጥ የትንታኔ የመደብር ፊት መገንባት
  • NoSQL ጽንሰ-ሀሳቦች፡ HBase፣ Cassandra፣ ElasticSearch
  • የክትትል እና ኦርኬስትራ አደረጃጀት መርሆዎች 
  • የመጨረሻ ፕሮጀክት፡ ሁሉንም ችሎታዎች በአማካሪ ድጋፍ ሾር ማሰባሰብ

ማጣቀሻዎች

  1. DBT ሰነድ - ኦፊሴላዊ ሰነዶች
  2. ዲቢቲ በትክክል ምንድን ነው? - ከዲቢቲ ደራሲዎች በአንዱ የቀረበውን ጽሑፍ ይገምግሙ 
  3. የውሂብ ግንባታ መሣሪያ ለአማዞን Redshift ማከማቻ — YouTube, OTUS የክፍት ትምህርት ቀረጻ
  4. የግሪንፕለም መግቢያ - በጣም ቅርብ የሆነው ክፍት ትምህርት ሜይ 15፣ 2020 ነው።
  5. የውሂብ ምህንድስና ኮርስ - ኦቲኤስ
  6. የበሰለ ትንታኔ የስራ ፍሰት መገንባት - የወደፊቱን የውሂብ እና የትንታኔ እይታ
  7. የክፍት ምንጭ ትንተና ጊዜው አሁን ነው። - የትንታኔ ዝግመተ ለውጥ እና የክፍት ምንጭ ተጽእኖ
  8. ቀጣይነት ያለው ውህደት እና አውቶሜትድ የግንባታ ሙከራ በdbtCloud - DBT በመጠቀም CI የመገንባት መርሆዎች
  9. በDBT አጋዥ ስልጠና መጀመር - ተለማመዱ፣ ራስን ለማጥናት የደረጃ በደረጃ መመሪያዎች
  10. jaffle ሱቅ - Github DBT አጋዥ - Github, የመማሪያ ፕሮጀክት ኮድ

ስለ ኮርሱ የበለጠ ይረዱ።

ምንጭ: hab.com

አስተያየት ያክሉ