{"id":5797,"date":"2024-11-11T17:21:59","date_gmt":"2024-11-11T08:21:59","guid":{"rendered":"https:\/\/blog.since2020.jp\/?p=5797"},"modified":"2024-11-11T17:22:36","modified_gmt":"2024-11-11T08:22:36","slug":"databricks-dbt","status":"publish","type":"post","link":"https:\/\/since2020.jp\/media\/databricks-dbt\/","title":{"rendered":"Databricks\u3068dbt\u3092\u63a5\u7d9a\u3057\u3066\u30c7\u30fc\u30bf\u52a0\u5de5\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001Databricks \u3068 dbt\uff08Data Build Tool\uff09\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u30c7\u30fc\u30bf\u52a0\u5de5\u3092\u52b9\u7387\u7684\u306b\u884c\u3046\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002\u30af\u30e9\u30a6\u30c9\u74b0\u5883\u306e\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3092\u6d3b\u304b\u3057\u3001dbt \u306b\u3088\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u5316\u3068\u30c7\u30fc\u30bf\u54c1\u8cea\u30c1\u30a7\u30c3\u30af\u306e\u81ea\u52d5\u5316\u3092\u884c\u3046\u3053\u3068\u3067\u3001\u30c7\u30fc\u30bf\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u69cb\u7bc9\u3068\u904b\u7528\u304c\u3088\u308a\u30b7\u30f3\u30d7\u30eb\u306b\u306a\u308a\u307e\u3059\u3002\r\n\r\ndbt-osmosis\u3092\u6d3b\u7528\u3057\u305f\u81ea\u52d5\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u751f\u6210\u306b\u3064\u3044\u3066\u3082\u53d6\u308a\u4e0a\u3052\u3001\u30c7\u30fc\u30bf\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u7ba1\u7406\u3084\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n<h2>\u306f\u3058\u3081\u306b<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u672c\u8a18\u4e8b\u3067\u306f\u3001Databricks \u3068 dbt\uff08Data Build Tool\uff09\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u30c7\u30fc\u30bf\u52a0\u5de5\u3092\u52b9\u7387\u7684\u306b\u884c\u3046\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002\u30af\u30e9\u30a6\u30c9\u74b0\u5883\u306e\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3092\u6d3b\u304b\u3057\u3001dbt \u306b\u3088\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u5316\u3068\u30c7\u30fc\u30bf\u54c1\u8cea\u30c1\u30a7\u30c3\u30af\u306e\u81ea\u52d5\u5316\u3092\u884c\u3046\u3053\u3068\u3067\u3001\u30c7\u30fc\u30bf\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u69cb\u7bc9\u3068\u904b\u7528\u304c\u3088\u308a\u30b7\u30f3\u30d7\u30eb\u306b\u306a\u308a\u307e\u3059\u3002<\/span><span style=\"font-family: arial, helvetica, sans-serif\"><code>dbt-osmosis<\/code> \u3092\u6d3b\u7528\u3057\u305f\u81ea\u52d5\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u751f\u6210\u306b\u3064\u3044\u3066\u3082\u53d6\u308a\u4e0a\u3052\u3001\u30c7\u30fc\u30bf\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u7ba1\u7406\u3084\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<p><!-- notionvc: a178c6c3-abd3-41c3-86b5-c85e01561018 --><\/p>\n\n<h2>\u5fc5\u8981\u306a\u6e96\u5099<\/h2>\n<b><span style=\"font-family: arial, helvetica, sans-serif\">1. Databricks \u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/span><\/b>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">Databricks \u3067\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3057\u3001\u63a5\u7d9a\u306b\u5fc5\u8981\u306a\u30db\u30b9\u30c8 URL\u3001HTTP \u30d1\u30b9\u3001\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002\u3053\u306e\u60c5\u5831\u306f\u3001<code>dbt<\/code> \u304c Databricks \u306b\u63a5\u7d9a\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u3067\u3059\u3002<\/span><\/p>\r\n<b><span style=\"font-family: arial, helvetica, sans-serif\">2. dbt \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u8a2d\u5b9a<\/span><\/b>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u3067 dbt \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3057\u3001Databricks \u3078\u306e\u63a5\u7d9a\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306f\u3001<code>profiles.yml<\/code> \u306e\u8a2d\u5b9a\u4f8b\u3067\u3059\u3002<\/span><\/p>\r\n<p>&nbsp;<\/p>\r\n<p><img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2024\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2024-11-11-15.51.03-1.png\" alt=\"\" width=\"706\" height=\"168\" class=\"alignnone size-full wp-image-5799\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2024\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2024-11-11-15.51.03-1.png 706w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2024\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2024-11-11-15.51.03-1-300x71.png 300w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code># ~\/.dbt\/profiles.yml\r\ndbt_project:\r\ntarget: dev\r\noutputs:\r\ndev:\r\ntype: databricks\r\nschema: default\r\nhost: your-databricks-host\r\nhttp_path: your-http-path\r\ntoken: your-access-token<\/code><\/pre>\r\n<\/div>\r\n<p><img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2024\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2024-11-11-14.08.50.png\" alt=\"\" width=\"831\" height=\"537\" class=\"alignnone size-full wp-image-5800\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2024\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2024-11-11-14.08.50.png 831w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2024\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2024-11-11-14.08.50-300x194.png 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2024\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2024-11-11-14.08.50-768x496.png 768w\" sizes=\"(max-width: 831px) 100vw, 831px\" \/><\/p>\r\n<p>&nbsp;<\/p>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u3053\u306e\u8a2d\u5b9a\u3067\u3001Databricks \u74b0\u5883\u306b\u63a5\u7d9a\u3059\u308b\u6e96\u5099\u304c\u6574\u3044\u307e\u3057\u305f\u3002<\/span><!-- notionvc: cd341c47-a77f-4aed-a405-493f46a0ba1a --><\/p>\r\n<p><!-- notionvc: 80459b3a-b293-47dd-a81e-17192f0564d2 --><\/p>\n\n<h2>\u30c7\u30fc\u30bf\u52a0\u5de5\u306e\u5b9f\u4f8b<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f\u3001\u30c7\u30fc\u30bf\u5217\u306b\u542b\u307e\u308c\u308b\u6587\u5b57\u5316\u3051\u306e\u4fee\u6b63\u3092\u884c\u3044\u3001\u6574\u3063\u305f\u30c7\u30fc\u30bf\u3092\u65b0\u3057\u3044\u5217\u3068\u3057\u3066\u751f\u6210\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>-- models\/transform_data.sql\r\nSELECT *,\r\nREPLACE(\r\nREPLACE(\r\nREPLACE(\r\ntarget_column,\r\n'\u6587\u5b57\u5217A',\r\n'\u4fee\u6b63\u5f8c\u306e\u6587\u5b57\u5217A'\r\n),\r\n'\u6587\u5b57\u5217B',\r\n'\u4fee\u6b63\u5f8c\u306e\u6587\u5b57\u5217B'\r\n),\r\n'\u6587\u5b57\u5217C',\r\n'\u4fee\u6b63\u5f8c\u306e\u6587\u5b57\u5217C'\r\n) AS transformed_column\r\nFROM {{ source('data_warehouse', 'raw_data_table') }}<\/code><\/pre>\r\n<\/div>\r\n<p>&nbsp;<\/p>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u3053\u306e\u30af\u30a8\u30ea\u306f\u3001<code>data_warehouse<\/code> \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e <code>raw_data_table<\/code> \u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u3001<code>target_column<\/code> \u5185\u306e\u6587\u5b57\u5217\u3092\u9806\u6b21\u7f6e\u63db\u3057\u3066\u3001\u6587\u5b57\u5316\u3051\u306e\u4fee\u6b63\u7d50\u679c\u3092 <code>transformed_column<\/code> \u5217\u306b\u51fa\u529b\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<b><span style=\"font-family: arial, helvetica, sans-serif\">1. \u30e2\u30c7\u30eb\u306e\u4f5c\u6210<\/span><\/b>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><code>models<\/code> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306b <code>.sql<\/code> \u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u30af\u30a8\u30ea\u3092\u4fdd\u5b58\u3059\u308b\u3053\u3068\u3067\u3001<code>dbt<\/code> \u306f\u3053\u306e\u30af\u30a8\u30ea\u3092\u30e2\u30c7\u30eb\u3068\u3057\u3066\u8a8d\u8b58\u3057\u3001\u5b9f\u884c\u6642\u306b\u5fc5\u8981\u306a\u5909\u63db\u3092\u884c\u3044\u307e\u3059\u3002<\/span><\/p>\r\n<b><span style=\"font-family: arial, helvetica, sans-serif\">2. \u30bd\u30fc\u30b9\u306e\u8a2d\u5b9a<\/span><\/b>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">Databricks \u4e0a\u306e\u65e2\u5b58\u306e\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092 <code>dbt<\/code> \u3067\u4f7f\u7528\u3059\u308b\u305f\u3081\u3001<code>sources.yml<\/code> \u306b\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code># models\/sources.yml\r\nversion: 2\r\n\r\nsources:\r\n- name: data_warehouse\r\ndatabase: data_database\r\nschema: default\r\ntables:\r\n- name: raw_data_table<\/code><\/pre>\r\n<\/div>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001<span data-token-index=\"1\" class=\"notion-enable-hover\">dbt<\/span> \u306f Databricks \u4e0a\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u3042\u308b <span data-token-index=\"3\" class=\"notion-enable-hover\">raw_data_table<\/span> \u3092\u53c2\u7167\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/span><!-- notionvc: b3363cef-5a77-4309-ab81-ed21bff26469 --><\/p>\r\n<p>&nbsp;<\/p>\r\n<p><!-- notionvc: 02a7ae2e-ea2c-45c4-8f2c-802c929c8fb3 --><\/p>\r\n<p><!-- notionvc: 035ee22e-66e7-428b-b9d2-be27a7910556 --><\/p>\n\n<h2>dbt-osmosis \u3092\u4f7f\u3063\u305f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u81ea\u52d5\u751f\u6210<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><code>dbt-osmosis<\/code> \u306f\u3001<code>dbt<\/code> \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u81ea\u52d5\u7684\u306b\u751f\u6210\u3057\u3066\u304f\u308c\u308b\u30c4\u30fc\u30eb\u3067\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u53ef\u8996\u5316\u304c\u5bb9\u6613\u306b\u306a\u308a\u3001\u30ab\u30e9\u30e0\u60c5\u5831\u306a\u3069\u3082\u7ba1\u7406\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002<\/span><\/p>\r\n<b><span style=\"font-family: arial, helvetica, sans-serif\">dbt-osmosis \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span><\/b>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u307e\u305a\u3001<code>dbt-osmosis<\/code> \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-git\" data-lang=\"Git\"><code>pip install dbt-osmosis<\/code><\/pre>\r\n<\/div>\r\n<b><span style=\"font-family: arial, helvetica, sans-serif\">\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u751f\u6210<\/span><\/b>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><code>dbt-osmosis<\/code> \u3092\u4f7f\u3063\u3066\u30b9\u30ad\u30fc\u30de\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u751f\u6210\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u3001<code>dbt<\/code> \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306e\u30e2\u30c7\u30eb\u3084\u30bd\u30fc\u30b9\u306b\u5bfe\u5fdc\u3059\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u304c\u81ea\u52d5\u751f\u6210\u3055\u308c\u307e\u3059\u3002<\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-git\" data-lang=\"Git\"><code>dbt-osmosis yaml document<\/code><\/pre>\r\n<\/div>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><strong>\u51fa\u529b\u4f8b<\/strong><!-- notionvc: 9995afaa-41f5-429c-81d1-6c962010690b --><\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>\r\nversion: 2\r\n\r\nsources:\r\n- name: data_warehouse\r\ndatabase: data_database\r\nschema: default\r\ntables:\r\n- name: raw_data_table\r\ndescription: \"Table containing sample business data for analysis\"\r\ncolumns:\r\n- name: raw_id\r\ndescription: \"Raw ID from data ingestion\"\r\ndata_type: string\r\n- name: extracted_at\r\ndescription: \"Timestamp of data extraction\"\r\ndata_type: timestamp\r\n- name: metadata\r\ndescription: \"Metadata from ingestion process\"\r\ndata_type: string\r\n- name: generation_id\r\ndescription: \"Generation ID from ingestion process\"\r\ndata_type: bigint<\/code><\/pre>\r\n<\/div>\r\n<p>&nbsp;<\/p>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u3053\u306e\u30b3\u30de\u30f3\u30c9\u306b\u3088\u308a\u3001\u5404\u30e2\u30c7\u30eb\u306b\u5bfe\u5fdc\u3059\u308b <span data-token-index=\"1\" class=\"notion-enable-hover\">schema.yml<\/span> \u30d5\u30a1\u30a4\u30eb\u304c\u81ea\u52d5\u751f\u6210\u3055\u308c\u3001\u30ab\u30e9\u30e0\u60c5\u5831\u3084\u8aac\u660e\u306a\u3069\u304c\u53cd\u6620\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u306e\u7ba1\u7406\u304c\u5bb9\u6613\u306b\u306a\u308a\u3001\u30c7\u30fc\u30bf\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u53ef\u8996\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/span><!-- notionvc: 8d8cffe7-6a4f-4836-9826-43f6a5059c87 --><\/p>\r\n<p><!-- notionvc: 33a0d205-d4d5-447b-922f-5aca2faad7f1 --><\/p>\r\n<p><!-- notionvc: fbd427dc-8748-4cf4-8cfa-1768e9ffa57f --><\/p>\n\n<h2>\u30c7\u30fc\u30bf\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u5b9f\u884c<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><code>dbt<\/code> \u3092\u4f7f\u7528\u3057\u3066\u3001\u4f9d\u5b58\u95a2\u4fc2\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3001\u30c7\u30fc\u30bf\u306e\u30c6\u30b9\u30c8\u3001\u30e2\u30c7\u30eb\u306e\u5b9f\u884c\u3092\u884c\u3044\u307e\u3059\u3002<\/span><\/p>\r\n<b><span style=\"font-family: arial, helvetica, sans-serif\">1. <code>dbt deps<\/code> &#8211; \u4f9d\u5b58\u95a2\u4fc2\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span><\/b>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><code>dbt deps<\/code> \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3001<code>dbt_project.yml<\/code> \u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u4f9d\u5b58\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-git\" data-lang=\"Git\"><code>dbt deps<\/code><\/pre>\r\n<\/div>\r\n<b><span style=\"font-family: arial, helvetica, sans-serif\">2. <code>dbt test<\/code> &#8211; \u30c7\u30fc\u30bf\u306e\u30c6\u30b9\u30c8<\/span><\/b>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u6b21\u306b\u3001<code>dbt test<\/code> \u30b3\u30de\u30f3\u30c9\u3067\u30c7\u30fc\u30bf\u306e\u54c1\u8cea\u3092\u30c1\u30a7\u30c3\u30af\u3057\u307e\u3059\u3002<code>schema.yml<\/code> \u306b\u5b9a\u7fa9\u3057\u305f <code>not_null<\/code> \u3084 <code>unique<\/code> \u306a\u3069\u306e\u30c6\u30b9\u30c8\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-git\" data-lang=\"Git\"><code>dbt test<\/code><\/pre>\r\n<\/div>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><!-- notionvc: 843520cc-d9c6-4592-8a64-251e37875e6a --><\/span><\/p>\r\n<b><span style=\"font-family: arial, helvetica, sans-serif\">3. <code>dbt run<\/code> &#8211; \u30e2\u30c7\u30eb\u306e\u5b9f\u884c<\/span><\/b>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u6700\u5f8c\u306b\u3001<code>dbt run<\/code> \u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf\u5909\u63db\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001Databricks \u306b\u63a5\u7d9a\u3057\u3066\u30e2\u30c7\u30eb\u304c\u5b9f\u884c\u3055\u308c\u3001\u5909\u63db\u7d50\u679c\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002<\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-git\" data-lang=\"Git\"><code>dbt run<\/code><\/pre>\r\n<\/div>\r\n<p>&nbsp;<\/p>\r\n<p><!-- notionvc: 4e53d20f-0e8e-4c16-84db-8d8567aba42f --><\/p>\r\n<p><!-- notionvc: 628bd233-8ae5-4d76-9354-8bb4426fdead --><\/p>\n\n<h2>\u307e\u3068\u3081<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">Databricks \u3068 dbt \u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u30af\u30e9\u30a6\u30c9\u4e0a\u3067\u5927\u898f\u6a21\u306a\u30c7\u30fc\u30bf\u306e\u52a0\u5de5\u304c\u7c21\u5358\u304b\u3064\u52b9\u7387\u7684\u306b\u884c\u3048\u307e\u3059\u3002\u307e\u305f\u3001<span data-token-index=\"1\" class=\"notion-enable-hover\">dbt-osmosis<\/span> \u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b9\u30ad\u30fc\u30de\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u4f5c\u6210\u304c\u81ea\u52d5\u5316\u3055\u308c\u3001\u30c7\u30fc\u30bf\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u53ef\u8996\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30c7\u30fc\u30bf\u30a8\u30f3\u30b8\u30cb\u30a2\u304c\u30c7\u30fc\u30bf\u54c1\u8cea\u3092\u4fdd\u3061\u306a\u304c\u3089\u5909\u63db\u51e6\u7406\u3092\u884c\u3046\u74b0\u5883\u304c\u6574\u3044\u3001\u30c7\u30fc\u30bf\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u7ba1\u7406\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002<\/span><!-- notionvc: 447e7552-c18c-4dd1-8e19-ab8c3fffd054 --><\/p>","protected":false},"excerpt":{"rendered":"<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001Databricks \u3068 dbt\uff08Data Build Tool\uff09\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u30c7\u30fc\u30bf\u52a0\u5de5\u3092\u52b9\u7387\u7684\u306b\u884c\u3046\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002\u30af\u30e9\u30a6\u30c9\u74b0\u5883\u306e\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3092\u6d3b\u304b\u3057\u3001dbt \u306b\u3088\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u5316\u3068\u30c7\u30fc\u30bf\u54c1\u8cea\u30c1\u30a7\u30c3\u30af [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":5778,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","swell_btn_cv_data":"","footnotes":"","_wp_rev_ctl_limit":""},"categories":[1249],"tags":[774,758,490,486],"class_list":["post-5797","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledge","tag-databricks","tag-dbt-core","tag-elt","tag-486"],"_links":{"self":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/5797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/comments?post=5797"}],"version-history":[{"count":0,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/5797\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/media\/5778"}],"wp:attachment":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/media?parent=5797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/categories?post=5797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/tags?post=5797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}