├── .github └── workflows │ └── deploy.yaml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── SECURITY.md ├── SUPPORT.md ├── assets ├── LICENSE └── olist-brazilian-ecommerse-dataset.zip ├── images ├── access-databricks-workspace │ ├── adb-access-1.jpg │ ├── adb-access-2.jpg │ ├── adb-access-3.jpg │ ├── adb-lang-1.jpg │ ├── adb-lang-2.jpg │ └── adb-lang-3.jpg ├── access-dbsql-adls-part1 │ ├── dbsql-access-1.jpg │ ├── dbsql-access-2.jpg │ ├── dbsql-access-3.jpg │ ├── dbsql-access-4.jpg │ ├── dbsql-access-5.jpg │ ├── dbsql-access-6.jpg │ ├── dbsql-access-7.jpg │ ├── dbsql-access-8.jpg │ ├── dbsql-start-error.jpg │ ├── storage-key-1.jpg │ ├── storage-key-2.jpg │ └── storage-key-3.jpg ├── access-dbsql-adls-part2 │ ├── dbsql-1.jpg │ ├── dbsql-2.jpg │ ├── dbsql-3.jpg │ ├── kv-secret-1.jpg │ ├── kv-secret-2.jpg │ ├── secret-scope-1.jpg │ └── secret-scope-2.jpg ├── azure-services-overview │ ├── adls-gen2-hierarchical-namespace.jpg │ ├── architecture-overview.jpg │ ├── azure-databricks.jpg │ ├── azure-storage.jpg │ ├── azure-synapse-analytics.jpg │ ├── databricks-sql.jpg │ ├── mapping-data-flow.jpg │ ├── microsoft-power-bi.jpg │ └── synapse-pipeline.jpg ├── create-azure-resources │ ├── adb-create-1.jpg │ ├── adb-create-2.jpg │ ├── adb-create-3.jpg │ ├── adb-create-4.jpg │ ├── kv-create-1.jpg │ ├── kv-create-2.jpg │ ├── kv-create-3.jpg │ ├── kv-create-4.jpg │ ├── summary.jpg │ ├── syn-create-1.jpg │ ├── syn-create-2.jpg │ ├── syn-create-3.jpg │ ├── syn-create-4.jpg │ ├── syn-create-5.jpg │ └── syn-create-6.jpg ├── create-resource-group │ ├── azure-portal-lang.jpg │ ├── rg-create-1.jpg │ ├── rg-create-2.jpg │ ├── rg-create-3.jpg │ ├── rg-create-4.jpg │ ├── rg-iam-1.jpg │ ├── rg-iam-2.jpg │ ├── rg-iam-3.jpg │ ├── rg-iam-4.jpg │ ├── rg-iam-5.jpg │ ├── rg-iam-6.jpg │ ├── rg-iam-7.jpg │ └── rg-iam-8.jpg ├── curate-daily-order-amounts │ ├── check-data-lake-1.jpg │ ├── create-data-flow-1.jpg │ ├── create-data-flow-10.jpg │ ├── create-data-flow-11.jpg │ ├── create-data-flow-12.jpg │ ├── create-data-flow-13.jpg │ ├── create-data-flow-14.jpg │ ├── create-data-flow-2.jpg │ ├── create-data-flow-3.jpg │ ├── create-data-flow-4.jpg │ ├── create-data-flow-5.jpg │ ├── create-data-flow-6.jpg │ ├── create-data-flow-7.jpg │ ├── create-data-flow-8.jpg │ ├── create-data-flow-9.jpg │ ├── create-pipeline-1.jpg │ ├── create-pipeline-2.jpg │ ├── create-pipeline-3.jpg │ ├── data-flow-complete-picture.jpg │ └── diagram-curate-daily-order-amounts.jpg ├── dbsql-query-history │ ├── query-history-1.jpg │ ├── query-history-2.jpg │ ├── query-history-3.jpg │ ├── query-history-4.jpg │ └── query-history-5.jpg ├── deploy-data │ ├── access-synapse-studio-1.jpg │ ├── access-synapse-studio-2.jpg │ ├── access-synapse-studio-3.jpg │ ├── create-container-1.jpg │ ├── create-container-2.jpg │ ├── create-dataset-source-1.jpg │ ├── create-dataset-source-2.jpg │ ├── create-dataset-source-3.jpg │ ├── create-dataset-source-4.jpg │ ├── create-dataset-source-5.jpg │ ├── create-dataset-target-1.jpg │ ├── create-dataset-target-2.jpg │ ├── create-dataset-target-3.jpg │ ├── create-linked-service-1.jpg │ ├── create-linked-service-2.jpg │ ├── create-linked-service-3.jpg │ ├── create-linked-service-4.jpg │ ├── create-linked-service-5.jpg │ ├── create-pipeline-1.jpg │ ├── create-pipeline-2.jpg │ ├── create-pipeline-3.jpg │ ├── create-pipeline-4.jpg │ ├── create-pipeline-5.jpg │ ├── create-pipeline-6.jpg │ ├── create-pipeline-7.jpg │ ├── create-pipeline-8.jpg │ ├── create-pipeline-9.jpg │ ├── deploy-data-1.jpg │ ├── deploy-data-2.jpg │ ├── deploy-data-3.jpg │ ├── deploy-data-4.jpg │ ├── deploy-data-5.jpg │ ├── deploy-data-6.jpg │ ├── diagram-copy-activity.jpg │ └── relationship-between-data-factory-entities.png ├── diagrams.pptx ├── dummy.jpg ├── enrich-order-items │ ├── check-delta-lake-1.jpg │ ├── create-data-flow-1.jpg │ ├── create-data-flow-2.jpg │ ├── create-data-flow-3.jpg │ ├── create-data-flow-4.jpg │ ├── create-data-flow-5.jpg │ ├── create-data-flow-6.jpg │ ├── create-pipeline-1.jpg │ ├── create-pipeline-2.jpg │ ├── create-pipeline-3.jpg │ ├── data-flow-complete-picture.jpg │ ├── diagram-enrich-order-items.jpg │ ├── overview-data-1.jpg │ └── overview-data-2.jpg ├── enrich-orders │ ├── check-delta-lake-1.jpg │ ├── create-data-flow-1.jpg │ ├── create-data-flow-10.jpg │ ├── create-data-flow-11.jpg │ ├── create-data-flow-12.jpg │ ├── create-data-flow-13.jpg │ ├── create-data-flow-14.jpg │ ├── create-data-flow-2.jpg │ ├── create-data-flow-3.jpg │ ├── create-data-flow-4.jpg │ ├── create-data-flow-5.jpg │ ├── create-data-flow-6.jpg │ ├── create-data-flow-7.jpg │ ├── create-data-flow-8.jpg │ ├── create-data-flow-9.jpg │ ├── create-pipeline-1.jpg │ ├── create-pipeline-2.jpg │ ├── create-pipeline-3.jpg │ ├── create-pipeline-4.jpg │ ├── create-pipeline-5.jpg │ ├── create-pipeline-6.jpg │ ├── create-pipeline-7.jpg │ ├── data-flow-complete-picture.jpg │ ├── data-flow-debug-1.jpg │ ├── data-flow-debug-2.jpg │ ├── diagram-enrich-orders.jpg │ ├── overview-data-1.jpg │ ├── overview-data-2.jpg │ ├── upsert-1.jpg │ └── upsert-2.jpg ├── enrich-with-adb-notebook │ ├── add-repo-1.jpg │ ├── add-repo-2.jpg │ ├── create-cluster-1.jpg │ ├── create-cluster-2.jpg │ ├── run-notebook-1.jpg │ ├── run-notebook-2.jpg │ ├── run-notebook-3.jpg │ ├── run-notebook-4.jpg │ ├── run-notebook-5.jpg │ └── run-notebook-6.jpg ├── olist-data-schema.jpg ├── visualize-with-dbsql │ ├── create-dashboard-1.jpg │ ├── create-dashboard-2.jpg │ ├── create-dashboard-3.jpg │ ├── create-query-1-1.jpg │ ├── create-query-1-2.jpg │ ├── create-query-1-3.jpg │ ├── create-query-1-4.jpg │ ├── create-query-1-5.jpg │ ├── create-query-1-6.jpg │ ├── create-query-1-7.jpg │ ├── create-query-1-8.jpg │ ├── create-query-1-9.jpg │ ├── create-query-2-1.jpg │ ├── create-query-2-10.jpg │ ├── create-query-2-2.jpg │ ├── create-query-2-3.jpg │ ├── create-query-2-4.jpg │ ├── create-query-2-5.jpg │ ├── create-query-2-6.jpg │ ├── create-query-2-7.jpg │ ├── create-query-2-8.jpg │ ├── create-query-2-9.jpg │ └── dashboard-complete-picture.jpg └── visualize-with-pbi │ ├── access-pbi-1.jpg │ ├── access-pbi-2.jpg │ ├── access-pbi-3.jpg │ ├── access-pbi-4.jpg │ ├── create-report-1.jpg │ ├── create-report-10.jpg │ ├── create-report-2.jpg │ ├── create-report-3.jpg │ ├── create-report-4.jpg │ ├── create-report-5.jpg │ ├── create-report-6.jpg │ ├── create-report-7.jpg │ ├── create-report-8.jpg │ ├── create-report-9.jpg │ └── report-complete-picture.jpg ├── notebooks └── Enrich Olist Datasets with ADB Notebook.py └── workshop.md /.github/workflows/deploy.yaml: -------------------------------------------------------------------------------- 1 | name: github pages 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | deploy: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | - name: Setup Go environment 14 | uses: actions/setup-go@v3 15 | - name: Install claat 16 | run: go install github.com/googlecodelabs/tools/claat@latest 17 | - name: Generate lab contents 18 | run: $HOME/go/bin/claat export workshop.md 19 | - name: Deploy 20 | uses: peaceiris/actions-gh-pages@v3 21 | with: 22 | deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} 23 | publish_dir: ./docs/ 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _work/ 2 | diagrams/ 3 | ~$*.pptx 4 | .vscode/ 5 | docs/ -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Microsoft Open Source Code of Conduct 2 | 3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 4 | 5 | Resources: 6 | 7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) 8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) 9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More_considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution 4.0 International Public License 58 | 59 | By exercising the Licensed Rights (defined below), You accept and agree 60 | to be bound by the terms and conditions of this Creative Commons 61 | Attribution 4.0 International Public License ("Public License"). To the 62 | extent this Public License may be interpreted as a contract, You are 63 | granted the Licensed Rights in consideration of Your acceptance of 64 | these terms and conditions, and the Licensor grants You such rights in 65 | consideration of benefits the Licensor receives from making the 66 | Licensed Material available under these terms and conditions. 67 | 68 | 69 | Section 1 -- Definitions. 70 | 71 | a. Adapted Material means material subject to Copyright and Similar 72 | Rights that is derived from or based upon the Licensed Material 73 | and in which the Licensed Material is translated, altered, 74 | arranged, transformed, or otherwise modified in a manner requiring 75 | permission under the Copyright and Similar Rights held by the 76 | Licensor. For purposes of this Public License, where the Licensed 77 | Material is a musical work, performance, or sound recording, 78 | Adapted Material is always produced where the Licensed Material is 79 | synched in timed relation with a moving image. 80 | 81 | b. Adapter's License means the license You apply to Your Copyright 82 | and Similar Rights in Your contributions to Adapted Material in 83 | accordance with the terms and conditions of this Public License. 84 | 85 | c. Copyright and Similar Rights means copyright and/or similar rights 86 | closely related to copyright including, without limitation, 87 | performance, broadcast, sound recording, and Sui Generis Database 88 | Rights, without regard to how the rights are labeled or 89 | categorized. For purposes of this Public License, the rights 90 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 91 | Rights. 92 | 93 | d. Effective Technological Measures means those measures that, in the 94 | absence of proper authority, may not be circumvented under laws 95 | fulfilling obligations under Article 11 of the WIPO Copyright 96 | Treaty adopted on December 20, 1996, and/or similar international 97 | agreements. 98 | 99 | e. Exceptions and Limitations means fair use, fair dealing, and/or 100 | any other exception or limitation to Copyright and Similar Rights 101 | that applies to Your use of the Licensed Material. 102 | 103 | f. Licensed Material means the artistic or literary work, database, 104 | or other material to which the Licensor applied this Public 105 | License. 106 | 107 | g. Licensed Rights means the rights granted to You subject to the 108 | terms and conditions of this Public License, which are limited to 109 | all Copyright and Similar Rights that apply to Your use of the 110 | Licensed Material and that the Licensor has authority to license. 111 | 112 | h. Licensor means the individual(s) or entity(ies) granting rights 113 | under this Public License. 114 | 115 | i. Share means to provide material to the public by any means or 116 | process that requires permission under the Licensed Rights, such 117 | as reproduction, public display, public performance, distribution, 118 | dissemination, communication, or importation, and to make material 119 | available to the public including in ways that members of the 120 | public may access the material from a place and at a time 121 | individually chosen by them. 122 | 123 | j. Sui Generis Database Rights means rights other than copyright 124 | resulting from Directive 96/9/EC of the European Parliament and of 125 | the Council of 11 March 1996 on the legal protection of databases, 126 | as amended and/or succeeded, as well as other essentially 127 | equivalent rights anywhere in the world. 128 | 129 | k. You means the individual or entity exercising the Licensed Rights 130 | under this Public License. Your has a corresponding meaning. 131 | 132 | 133 | Section 2 -- Scope. 134 | 135 | a. License grant. 136 | 137 | 1. Subject to the terms and conditions of this Public License, 138 | the Licensor hereby grants You a worldwide, royalty-free, 139 | non-sublicensable, non-exclusive, irrevocable license to 140 | exercise the Licensed Rights in the Licensed Material to: 141 | 142 | a. reproduce and Share the Licensed Material, in whole or 143 | in part; and 144 | 145 | b. produce, reproduce, and Share Adapted Material. 146 | 147 | 2. Exceptions and Limitations. For the avoidance of doubt, where 148 | Exceptions and Limitations apply to Your use, this Public 149 | License does not apply, and You do not need to comply with 150 | its terms and conditions. 151 | 152 | 3. Term. The term of this Public License is specified in Section 153 | 6(a). 154 | 155 | 4. Media and formats; technical modifications allowed. The 156 | Licensor authorizes You to exercise the Licensed Rights in 157 | all media and formats whether now known or hereafter created, 158 | and to make technical modifications necessary to do so. The 159 | Licensor waives and/or agrees not to assert any right or 160 | authority to forbid You from making technical modifications 161 | necessary to exercise the Licensed Rights, including 162 | technical modifications necessary to circumvent Effective 163 | Technological Measures. For purposes of this Public License, 164 | simply making modifications authorized by this Section 2(a) 165 | (4) never produces Adapted Material. 166 | 167 | 5. Downstream recipients. 168 | 169 | a. Offer from the Licensor -- Licensed Material. Every 170 | recipient of the Licensed Material automatically 171 | receives an offer from the Licensor to exercise the 172 | Licensed Rights under the terms and conditions of this 173 | Public License. 174 | 175 | b. No downstream restrictions. You may not offer or impose 176 | any additional or different terms or conditions on, or 177 | apply any Effective Technological Measures to, the 178 | Licensed Material if doing so restricts exercise of the 179 | Licensed Rights by any recipient of the Licensed 180 | Material. 181 | 182 | 6. No endorsement. Nothing in this Public License constitutes or 183 | may be construed as permission to assert or imply that You 184 | are, or that Your use of the Licensed Material is, connected 185 | with, or sponsored, endorsed, or granted official status by, 186 | the Licensor or others designated to receive attribution as 187 | provided in Section 3(a)(1)(A)(i). 188 | 189 | b. Other rights. 190 | 191 | 1. Moral rights, such as the right of integrity, are not 192 | licensed under this Public License, nor are publicity, 193 | privacy, and/or other similar personality rights; however, to 194 | the extent possible, the Licensor waives and/or agrees not to 195 | assert any such rights held by the Licensor to the limited 196 | extent necessary to allow You to exercise the Licensed 197 | Rights, but not otherwise. 198 | 199 | 2. Patent and trademark rights are not licensed under this 200 | Public License. 201 | 202 | 3. To the extent possible, the Licensor waives any right to 203 | collect royalties from You for the exercise of the Licensed 204 | Rights, whether directly or through a collecting society 205 | under any voluntary or waivable statutory or compulsory 206 | licensing scheme. In all other cases the Licensor expressly 207 | reserves any right to collect such royalties. 208 | 209 | 210 | Section 3 -- License Conditions. 211 | 212 | Your exercise of the Licensed Rights is expressly made subject to the 213 | following conditions. 214 | 215 | a. Attribution. 216 | 217 | 1. If You Share the Licensed Material (including in modified 218 | form), You must: 219 | 220 | a. retain the following if it is supplied by the Licensor 221 | with the Licensed Material: 222 | 223 | i. identification of the creator(s) of the Licensed 224 | Material and any others designated to receive 225 | attribution, in any reasonable manner requested by 226 | the Licensor (including by pseudonym if 227 | designated); 228 | 229 | ii. a copyright notice; 230 | 231 | iii. a notice that refers to this Public License; 232 | 233 | iv. a notice that refers to the disclaimer of 234 | warranties; 235 | 236 | v. a URI or hyperlink to the Licensed Material to the 237 | extent reasonably practicable; 238 | 239 | b. indicate if You modified the Licensed Material and 240 | retain an indication of any previous modifications; and 241 | 242 | c. indicate the Licensed Material is licensed under this 243 | Public License, and include the text of, or the URI or 244 | hyperlink to, this Public License. 245 | 246 | 2. You may satisfy the conditions in Section 3(a)(1) in any 247 | reasonable manner based on the medium, means, and context in 248 | which You Share the Licensed Material. For example, it may be 249 | reasonable to satisfy the conditions by providing a URI or 250 | hyperlink to a resource that includes the required 251 | information. 252 | 253 | 3. If requested by the Licensor, You must remove any of the 254 | information required by Section 3(a)(1)(A) to the extent 255 | reasonably practicable. 256 | 257 | 4. If You Share Adapted Material You produce, the Adapter's 258 | License You apply must not prevent recipients of the Adapted 259 | Material from complying with this Public License. 260 | 261 | 262 | Section 4 -- Sui Generis Database Rights. 263 | 264 | Where the Licensed Rights include Sui Generis Database Rights that 265 | apply to Your use of the Licensed Material: 266 | 267 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 268 | to extract, reuse, reproduce, and Share all or a substantial 269 | portion of the contents of the database; 270 | 271 | b. if You include all or a substantial portion of the database 272 | contents in a database in which You have Sui Generis Database 273 | Rights, then the database in which You have Sui Generis Database 274 | Rights (but not its individual contents) is Adapted Material; and 275 | 276 | c. You must comply with the conditions in Section 3(a) if You Share 277 | all or a substantial portion of the contents of the database. 278 | 279 | For the avoidance of doubt, this Section 4 supplements and does not 280 | replace Your obligations under this Public License where the Licensed 281 | Rights include other Copyright and Similar Rights. 282 | 283 | 284 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 285 | 286 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 287 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 288 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 289 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 290 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 291 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 292 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 293 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 294 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 295 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 296 | 297 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 298 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 299 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 300 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 301 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 302 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 303 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 304 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 305 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 306 | 307 | c. The disclaimer of warranties and limitation of liability provided 308 | above shall be interpreted in a manner that, to the extent 309 | possible, most closely approximates an absolute disclaimer and 310 | waiver of all liability. 311 | 312 | 313 | Section 6 -- Term and Termination. 314 | 315 | a. This Public License applies for the term of the Copyright and 316 | Similar Rights licensed here. However, if You fail to comply with 317 | this Public License, then Your rights under this Public License 318 | terminate automatically. 319 | 320 | b. Where Your right to use the Licensed Material has terminated under 321 | Section 6(a), it reinstates: 322 | 323 | 1. automatically as of the date the violation is cured, provided 324 | it is cured within 30 days of Your discovery of the 325 | violation; or 326 | 327 | 2. upon express reinstatement by the Licensor. 328 | 329 | For the avoidance of doubt, this Section 6(b) does not affect any 330 | right the Licensor may have to seek remedies for Your violations 331 | of this Public License. 332 | 333 | c. For the avoidance of doubt, the Licensor may also offer the 334 | Licensed Material under separate terms or conditions or stop 335 | distributing the Licensed Material at any time; however, doing so 336 | will not terminate this Public License. 337 | 338 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 339 | License. 340 | 341 | 342 | Section 7 -- Other Terms and Conditions. 343 | 344 | a. The Licensor shall not be bound by any additional or different 345 | terms or conditions communicated by You unless expressly agreed. 346 | 347 | b. Any arrangements, understandings, or agreements regarding the 348 | Licensed Material not stated herein are separate from and 349 | independent of the terms and conditions of this Public License. 350 | 351 | 352 | Section 8 -- Interpretation. 353 | 354 | a. For the avoidance of doubt, this Public License does not, and 355 | shall not be interpreted to, reduce, limit, restrict, or impose 356 | conditions on any use of the Licensed Material that could lawfully 357 | be made without permission under this Public License. 358 | 359 | b. To the extent possible, if any provision of this Public License is 360 | deemed unenforceable, it shall be automatically reformed to the 361 | minimum extent necessary to make it enforceable. If the provision 362 | cannot be reformed, it shall be severed from this Public License 363 | without affecting the enforceability of the remaining terms and 364 | conditions. 365 | 366 | c. No term or condition of this Public License will be waived and no 367 | failure to comply consented to unless expressly agreed to by the 368 | Licensor. 369 | 370 | d. Nothing in this Public License constitutes or may be interpreted 371 | as a limitation upon, or waiver of, any privileges and immunities 372 | that apply to the Licensor or You, including from the legal 373 | processes of any jurisdiction or authority. 374 | 375 | 376 | ======================================================================= 377 | 378 | Creative Commons is not a party to its public 379 | licenses. Notwithstanding, Creative Commons may elect to apply one of 380 | its public licenses to material it publishes and in those instances 381 | will be considered the “Licensor.” The text of the Creative Commons 382 | public licenses is dedicated to the public domain under the CC0 Public 383 | Domain Dedication. Except for the limited purpose of indicating that 384 | material is shared under a Creative Commons public license or as 385 | otherwise permitted by the Creative Commons policies published at 386 | creativecommons.org/policies, Creative Commons does not authorize the 387 | use of the trademark "Creative Commons" or any other trademark or logo 388 | of Creative Commons without its prior written consent including, 389 | without limitation, in connection with any unauthorized modifications 390 | to any of its public licenses or any other arrangements, 391 | understandings, or agreements concerning use of licensed material. For 392 | the avoidance of doubt, this paragraph does not form part of the 393 | public licenses. 394 | 395 | Creative Commons may be contacted at creativecommons.org. 396 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Databricks SQL on Azure Workshop [Japanese] 2 | Databricks SQL と Synapse パイプライン & データ フローを中心とする Microsoft Azure のデータ分析プラットフォームの構築のノウハウを学習するためのワークショップの資材管理用の GitHub リポジトリです。以下 URL よりワークショップを開始できます。 3 | 4 | https://microsoft.github.io/azure-databricks-sql-workshop-ja/ 5 | 6 | ## ワークショップのドキュメントの更新方法 (Contributor 向けの情報) 7 | 本ワークショップのドキュメントは Markdown 形式のファイル (`workshop.md`) を [claat (Google Codelabs command line tool)](https://github.com/googlecodelabs/tools/tree/main/claat) でレンダリングして作成しています。 8 | 9 | 以下の手順でドキュメントを更新します。 10 | 11 | 1. 以下ドキュメントを参考にして claat をセットアップする 12 | - https://zenn.dev/nakazax/articles/18506708b5eea9 13 | 2. `workshop.md` を更新する 14 | 3. ターミナルで `claat export workshop.md` を実行し `docs/` ディレクトリ配下のファイル群が更新されることを確認する 15 | 4. ターミナルで `claat serve docs/` を実行しレンダリング結果を確認する 16 | 17 | ## Contributing 18 | This project welcomes contributions and suggestions. Most contributions require you to agree to a 19 | Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us 20 | the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. 21 | 22 | When you submit a pull request, a CLA bot will automatically determine whether you need to provide 23 | a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions 24 | provided by the bot. You will only need to do this once across all repos using our CLA. 25 | 26 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 27 | For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or 28 | contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 29 | 30 | ## Trademarks 31 | This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft 32 | trademarks or logos is subject to and must follow 33 | [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). 34 | Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. 35 | Any use of third-party trademarks or logos are subject to those third-party's policies. 36 | 37 | ## Security 38 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). 39 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)), please report it to us as described [SECURITY.md](SECURITY.md). 40 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Security 4 | 5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). 6 | 7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. 8 | 9 | ## Reporting Security Issues 10 | 11 | **Please do not report security vulnerabilities through public GitHub issues.** 12 | 13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). 14 | 15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). 16 | 17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). 18 | 19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: 20 | 21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) 22 | * Full paths of source file(s) related to the manifestation of the issue 23 | * The location of the affected source code (tag/branch/commit or direct URL) 24 | * Any special configuration required to reproduce the issue 25 | * Step-by-step instructions to reproduce the issue 26 | * Proof-of-concept or exploit code (if possible) 27 | * Impact of the issue, including how an attacker might exploit the issue 28 | 29 | This information will help us triage your report more quickly. 30 | 31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. 32 | 33 | ## Preferred Languages 34 | 35 | We prefer all communications to be in English. 36 | 37 | ## Policy 38 | 39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). 40 | 41 | 42 | -------------------------------------------------------------------------------- /SUPPORT.md: -------------------------------------------------------------------------------- 1 | # TODO: The maintainer of this repo has not yet edited this file 2 | 3 | **REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project? 4 | 5 | - **No CSS support:** Fill out this template with information about how to file issues and get help. 6 | - **Yes CSS support:** Fill out an intake form at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). CSS will work with/help you to determine next steps. 7 | - **Not sure?** Fill out an intake as though the answer were "Yes". CSS will help you decide. 8 | 9 | *Then remove this first heading from this SUPPORT.MD file before publishing your repo.* 10 | 11 | # Support 12 | 13 | ## How to file issues and get help 14 | 15 | This project uses GitHub Issues to track bugs and feature requests. Please search the existing 16 | issues before filing new issues to avoid duplicates. For new issues, file your bug or 17 | feature request as a new Issue. 18 | 19 | For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE 20 | FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER 21 | CHANNEL. WHERE WILL YOU HELP PEOPLE?**. 22 | 23 | ## Microsoft Support Policy 24 | 25 | Support for this **PROJECT or PRODUCT** is limited to the resources listed above. 26 | -------------------------------------------------------------------------------- /assets/LICENSE: -------------------------------------------------------------------------------- 1 | Brazilian E-Commerce Public Dataset by Olist is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. -------------------------------------------------------------------------------- /assets/olist-brazilian-ecommerse-dataset.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/assets/olist-brazilian-ecommerse-dataset.zip -------------------------------------------------------------------------------- /images/access-databricks-workspace/adb-access-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-databricks-workspace/adb-access-1.jpg -------------------------------------------------------------------------------- /images/access-databricks-workspace/adb-access-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-databricks-workspace/adb-access-2.jpg -------------------------------------------------------------------------------- /images/access-databricks-workspace/adb-access-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-databricks-workspace/adb-access-3.jpg -------------------------------------------------------------------------------- /images/access-databricks-workspace/adb-lang-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-databricks-workspace/adb-lang-1.jpg -------------------------------------------------------------------------------- /images/access-databricks-workspace/adb-lang-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-databricks-workspace/adb-lang-2.jpg -------------------------------------------------------------------------------- /images/access-databricks-workspace/adb-lang-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-databricks-workspace/adb-lang-3.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/dbsql-access-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/dbsql-access-1.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/dbsql-access-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/dbsql-access-2.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/dbsql-access-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/dbsql-access-3.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/dbsql-access-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/dbsql-access-4.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/dbsql-access-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/dbsql-access-5.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/dbsql-access-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/dbsql-access-6.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/dbsql-access-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/dbsql-access-7.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/dbsql-access-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/dbsql-access-8.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/dbsql-start-error.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/dbsql-start-error.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/storage-key-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/storage-key-1.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/storage-key-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/storage-key-2.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part1/storage-key-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part1/storage-key-3.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part2/dbsql-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part2/dbsql-1.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part2/dbsql-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part2/dbsql-2.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part2/dbsql-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part2/dbsql-3.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part2/kv-secret-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part2/kv-secret-1.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part2/kv-secret-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part2/kv-secret-2.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part2/secret-scope-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part2/secret-scope-1.jpg -------------------------------------------------------------------------------- /images/access-dbsql-adls-part2/secret-scope-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/access-dbsql-adls-part2/secret-scope-2.jpg -------------------------------------------------------------------------------- /images/azure-services-overview/adls-gen2-hierarchical-namespace.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/azure-services-overview/adls-gen2-hierarchical-namespace.jpg -------------------------------------------------------------------------------- /images/azure-services-overview/architecture-overview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/azure-services-overview/architecture-overview.jpg -------------------------------------------------------------------------------- /images/azure-services-overview/azure-databricks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/azure-services-overview/azure-databricks.jpg -------------------------------------------------------------------------------- /images/azure-services-overview/azure-storage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/azure-services-overview/azure-storage.jpg -------------------------------------------------------------------------------- /images/azure-services-overview/azure-synapse-analytics.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/azure-services-overview/azure-synapse-analytics.jpg -------------------------------------------------------------------------------- /images/azure-services-overview/databricks-sql.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/azure-services-overview/databricks-sql.jpg -------------------------------------------------------------------------------- /images/azure-services-overview/mapping-data-flow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/azure-services-overview/mapping-data-flow.jpg -------------------------------------------------------------------------------- /images/azure-services-overview/microsoft-power-bi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/azure-services-overview/microsoft-power-bi.jpg -------------------------------------------------------------------------------- /images/azure-services-overview/synapse-pipeline.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/azure-services-overview/synapse-pipeline.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/adb-create-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/adb-create-1.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/adb-create-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/adb-create-2.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/adb-create-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/adb-create-3.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/adb-create-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/adb-create-4.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/kv-create-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/kv-create-1.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/kv-create-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/kv-create-2.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/kv-create-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/kv-create-3.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/kv-create-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/kv-create-4.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/summary.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/summary.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/syn-create-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/syn-create-1.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/syn-create-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/syn-create-2.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/syn-create-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/syn-create-3.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/syn-create-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/syn-create-4.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/syn-create-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/syn-create-5.jpg -------------------------------------------------------------------------------- /images/create-azure-resources/syn-create-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-azure-resources/syn-create-6.jpg -------------------------------------------------------------------------------- /images/create-resource-group/azure-portal-lang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/azure-portal-lang.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-create-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-create-1.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-create-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-create-2.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-create-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-create-3.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-create-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-create-4.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-iam-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-iam-1.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-iam-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-iam-2.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-iam-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-iam-3.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-iam-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-iam-4.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-iam-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-iam-5.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-iam-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-iam-6.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-iam-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-iam-7.jpg -------------------------------------------------------------------------------- /images/create-resource-group/rg-iam-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/create-resource-group/rg-iam-8.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/check-data-lake-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/check-data-lake-1.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-1.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-10.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-11.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-12.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-13.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-14.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-2.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-3.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-4.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-5.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-6.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-7.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-8.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-data-flow-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-data-flow-9.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-pipeline-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-pipeline-1.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-pipeline-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-pipeline-2.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/create-pipeline-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/create-pipeline-3.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/data-flow-complete-picture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/data-flow-complete-picture.jpg -------------------------------------------------------------------------------- /images/curate-daily-order-amounts/diagram-curate-daily-order-amounts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/curate-daily-order-amounts/diagram-curate-daily-order-amounts.jpg -------------------------------------------------------------------------------- /images/dbsql-query-history/query-history-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/dbsql-query-history/query-history-1.jpg -------------------------------------------------------------------------------- /images/dbsql-query-history/query-history-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/dbsql-query-history/query-history-2.jpg -------------------------------------------------------------------------------- /images/dbsql-query-history/query-history-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/dbsql-query-history/query-history-3.jpg -------------------------------------------------------------------------------- /images/dbsql-query-history/query-history-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/dbsql-query-history/query-history-4.jpg -------------------------------------------------------------------------------- /images/dbsql-query-history/query-history-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/dbsql-query-history/query-history-5.jpg -------------------------------------------------------------------------------- /images/deploy-data/access-synapse-studio-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/access-synapse-studio-1.jpg -------------------------------------------------------------------------------- /images/deploy-data/access-synapse-studio-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/access-synapse-studio-2.jpg -------------------------------------------------------------------------------- /images/deploy-data/access-synapse-studio-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/access-synapse-studio-3.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-container-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-container-1.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-container-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-container-2.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-dataset-source-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-dataset-source-1.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-dataset-source-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-dataset-source-2.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-dataset-source-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-dataset-source-3.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-dataset-source-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-dataset-source-4.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-dataset-source-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-dataset-source-5.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-dataset-target-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-dataset-target-1.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-dataset-target-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-dataset-target-2.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-dataset-target-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-dataset-target-3.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-linked-service-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-linked-service-1.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-linked-service-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-linked-service-2.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-linked-service-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-linked-service-3.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-linked-service-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-linked-service-4.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-linked-service-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-linked-service-5.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-pipeline-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-pipeline-1.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-pipeline-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-pipeline-2.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-pipeline-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-pipeline-3.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-pipeline-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-pipeline-4.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-pipeline-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-pipeline-5.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-pipeline-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-pipeline-6.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-pipeline-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-pipeline-7.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-pipeline-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-pipeline-8.jpg -------------------------------------------------------------------------------- /images/deploy-data/create-pipeline-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/create-pipeline-9.jpg -------------------------------------------------------------------------------- /images/deploy-data/deploy-data-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/deploy-data-1.jpg -------------------------------------------------------------------------------- /images/deploy-data/deploy-data-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/deploy-data-2.jpg -------------------------------------------------------------------------------- /images/deploy-data/deploy-data-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/deploy-data-3.jpg -------------------------------------------------------------------------------- /images/deploy-data/deploy-data-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/deploy-data-4.jpg -------------------------------------------------------------------------------- /images/deploy-data/deploy-data-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/deploy-data-5.jpg -------------------------------------------------------------------------------- /images/deploy-data/deploy-data-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/deploy-data-6.jpg -------------------------------------------------------------------------------- /images/deploy-data/diagram-copy-activity.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/diagram-copy-activity.jpg -------------------------------------------------------------------------------- /images/deploy-data/relationship-between-data-factory-entities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/deploy-data/relationship-between-data-factory-entities.png -------------------------------------------------------------------------------- /images/diagrams.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/diagrams.pptx -------------------------------------------------------------------------------- /images/dummy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/dummy.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/check-delta-lake-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/check-delta-lake-1.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/create-data-flow-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/create-data-flow-1.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/create-data-flow-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/create-data-flow-2.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/create-data-flow-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/create-data-flow-3.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/create-data-flow-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/create-data-flow-4.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/create-data-flow-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/create-data-flow-5.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/create-data-flow-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/create-data-flow-6.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/create-pipeline-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/create-pipeline-1.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/create-pipeline-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/create-pipeline-2.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/create-pipeline-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/create-pipeline-3.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/data-flow-complete-picture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/data-flow-complete-picture.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/diagram-enrich-order-items.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/diagram-enrich-order-items.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/overview-data-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/overview-data-1.jpg -------------------------------------------------------------------------------- /images/enrich-order-items/overview-data-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-order-items/overview-data-2.jpg -------------------------------------------------------------------------------- /images/enrich-orders/check-delta-lake-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/check-delta-lake-1.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-1.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-10.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-11.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-12.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-13.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-14.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-2.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-3.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-4.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-5.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-6.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-7.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-8.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-data-flow-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-data-flow-9.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-pipeline-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-pipeline-1.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-pipeline-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-pipeline-2.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-pipeline-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-pipeline-3.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-pipeline-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-pipeline-4.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-pipeline-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-pipeline-5.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-pipeline-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-pipeline-6.jpg -------------------------------------------------------------------------------- /images/enrich-orders/create-pipeline-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/create-pipeline-7.jpg -------------------------------------------------------------------------------- /images/enrich-orders/data-flow-complete-picture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/data-flow-complete-picture.jpg -------------------------------------------------------------------------------- /images/enrich-orders/data-flow-debug-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/data-flow-debug-1.jpg -------------------------------------------------------------------------------- /images/enrich-orders/data-flow-debug-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/data-flow-debug-2.jpg -------------------------------------------------------------------------------- /images/enrich-orders/diagram-enrich-orders.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/diagram-enrich-orders.jpg -------------------------------------------------------------------------------- /images/enrich-orders/overview-data-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/overview-data-1.jpg -------------------------------------------------------------------------------- /images/enrich-orders/overview-data-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/overview-data-2.jpg -------------------------------------------------------------------------------- /images/enrich-orders/upsert-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/upsert-1.jpg -------------------------------------------------------------------------------- /images/enrich-orders/upsert-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-orders/upsert-2.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/add-repo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/add-repo-1.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/add-repo-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/add-repo-2.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/create-cluster-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/create-cluster-1.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/create-cluster-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/create-cluster-2.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/run-notebook-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/run-notebook-1.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/run-notebook-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/run-notebook-2.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/run-notebook-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/run-notebook-3.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/run-notebook-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/run-notebook-4.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/run-notebook-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/run-notebook-5.jpg -------------------------------------------------------------------------------- /images/enrich-with-adb-notebook/run-notebook-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/enrich-with-adb-notebook/run-notebook-6.jpg -------------------------------------------------------------------------------- /images/olist-data-schema.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/olist-data-schema.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-dashboard-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-dashboard-1.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-dashboard-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-dashboard-2.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-dashboard-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-dashboard-3.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-1-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-1-1.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-1-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-1-2.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-1-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-1-3.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-1-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-1-4.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-1-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-1-5.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-1-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-1-6.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-1-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-1-7.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-1-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-1-8.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-1-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-1-9.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-1.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-10.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-2.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-3.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-4.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-5.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-6.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-7.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-8.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/create-query-2-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/create-query-2-9.jpg -------------------------------------------------------------------------------- /images/visualize-with-dbsql/dashboard-complete-picture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-dbsql/dashboard-complete-picture.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/access-pbi-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/access-pbi-1.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/access-pbi-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/access-pbi-2.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/access-pbi-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/access-pbi-3.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/access-pbi-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/access-pbi-4.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-1.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-10.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-2.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-3.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-4.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-5.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-6.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-7.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-8.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/create-report-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/create-report-9.jpg -------------------------------------------------------------------------------- /images/visualize-with-pbi/report-complete-picture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-databricks-sql-workshop-ja/ab02905e85c0f67e375b48651307a879d1231058/images/visualize-with-pbi/report-complete-picture.jpg -------------------------------------------------------------------------------- /notebooks/Enrich Olist Datasets with ADB Notebook.py: -------------------------------------------------------------------------------- 1 | # Databricks notebook source 2 | # MAGIC %md 3 | # MAGIC # 1. 環境セットアップ 4 | 5 | # COMMAND ---------- 6 | 7 | # MAGIC %md 8 | # MAGIC ## 1-1. 定数設定 9 | # MAGIC 🔍**以下の定数のセルのみ自身の環境に合わせて書き換えてください (1-2 以降のセルは編集不要です)** 10 | 11 | # COMMAND ---------- 12 | 13 | # ストレージ アカウントの名前 14 | STORAGE_ACCOUNT = "stadbwssmith20221205" 15 | # コンテナの名前 16 | CONTAINER = "olist-brazilian-ecommerce" 17 | # シークレット スコープ 18 | SECRET_SCOPE = "my-secret-scope" 19 | # ストレージ アカウントのシークレット名 20 | SECRET_NAME = "secret-storage-account-key" 21 | 22 | # COMMAND ---------- 23 | 24 | # MAGIC %md 25 | # MAGIC ## 1-2. アカウント キーによる認証 26 | 27 | # COMMAND ---------- 28 | 29 | spark.conf.set(f"fs.azure.account.key.{STORAGE_ACCOUNT}.dfs.core.windows.net", dbutils.secrets.get(scope=SECRET_SCOPE, key=SECRET_NAME)) 30 | 31 | # COMMAND ---------- 32 | 33 | # MAGIC %md 34 | # MAGIC # 2. データ加工 35 | 36 | # COMMAND ---------- 37 | 38 | # スキーマ作成 (ここまでの手順で作成済みのはずだが念のため) 39 | spark.sql("CREATE SCHEMA IF NOT EXISTS olist_enriched;") 40 | 41 | # COMMAND ---------- 42 | 43 | # Delta テーブルへの書き込み用関数を定義 44 | def csv_to_delta(path_csv: str, path_delta: str, table_delta: str) -> None: 45 | # CSV から DataFrame に読み込み 46 | df = spark.read.format("csv").option("header", True).option("inferSchema", True).load(path_csv) 47 | # Delta テーブルに書き込み 48 | (df.write 49 | .format("delta") 50 | .mode("overwrite") 51 | .option("delta.autoOptimize.autoCompact", True) 52 | .option("delta.autoOptimize.optimizeWrite", True) 53 | .saveAsTable(table_delta, path=path_delta)) 54 | 55 | # COMMAND ---------- 56 | 57 | # MAGIC %md 58 | # MAGIC ## 2-1. olist_customers_dataset 59 | 60 | # COMMAND ---------- 61 | 62 | # パスなどの変数を設定 63 | path_csv = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/raw/olist_customers_dataset.csv" 64 | path_delta = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/enriched/customers" 65 | table_delta = "olist_enriched.customers" 66 | 67 | # Delta テーブルに書き込み 68 | csv_to_delta(path_csv, path_delta, table_delta) 69 | # Delta テーブルのデータ確認 70 | display(spark.table(table_delta)) 71 | # Delta テーブルのプロパティ確認 72 | display(spark.sql(f"DESC DETAIL {table_delta}")) 73 | # Delta テーブルのバージョン確認 74 | display(spark.sql(f"DESC HISTORY {table_delta}")) 75 | 76 | # COMMAND ---------- 77 | 78 | # MAGIC %md 79 | # MAGIC ## 2-2. olist_geolocation_dataset 80 | 81 | # COMMAND ---------- 82 | 83 | path_csv = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/raw/olist_geolocation_dataset.csv" 84 | path_delta = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/enriched/geolocation" 85 | table_delta = "olist_enriched.geolocation" 86 | 87 | csv_to_delta(path_csv, path_delta, table_delta) 88 | display(spark.table(table_delta)) 89 | display(spark.sql(f"DESC DETAIL {table_delta}")) 90 | display(spark.sql(f"DESC HISTORY {table_delta}")) 91 | 92 | # COMMAND ---------- 93 | 94 | # MAGIC %md 95 | # MAGIC ## 2-3. olist_order_payments_dataset 96 | 97 | # COMMAND ---------- 98 | 99 | path_csv = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/raw/olist_order_payments_dataset.csv" 100 | path_delta = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/enriched/order_payments" 101 | table_delta = "olist_enriched.order_payments" 102 | 103 | csv_to_delta(path_csv, path_delta, table_delta) 104 | display(spark.table(table_delta)) 105 | display(spark.sql(f"DESC DETAIL {table_delta}")) 106 | display(spark.sql(f"DESC HISTORY {table_delta}")) 107 | 108 | # COMMAND ---------- 109 | 110 | # MAGIC %md 111 | # MAGIC ## 2-4. olist_order_reviews_dataset 112 | 113 | # COMMAND ---------- 114 | 115 | path_csv = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/raw/olist_order_reviews_dataset.csv" 116 | path_delta = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/enriched/order_reviews" 117 | table_delta = "olist_enriched.olist_order_reviews" 118 | 119 | csv_to_delta(path_csv, path_delta, table_delta) 120 | display(spark.table(table_delta)) 121 | display(spark.sql(f"DESC DETAIL {table_delta}")) 122 | display(spark.sql(f"DESC HISTORY {table_delta}")) 123 | 124 | # COMMAND ---------- 125 | 126 | # MAGIC %md 127 | # MAGIC ## 2-5. olist_products_dataset 128 | 129 | # COMMAND ---------- 130 | 131 | path_csv = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/raw/olist_products_dataset.csv" 132 | path_delta = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/enriched/products" 133 | table_delta = "olist_enriched.products" 134 | 135 | csv_to_delta(path_csv, path_delta, table_delta) 136 | display(spark.table(table_delta)) 137 | display(spark.sql(f"DESC DETAIL {table_delta}")) 138 | display(spark.sql(f"DESC HISTORY {table_delta}")) 139 | 140 | # COMMAND ---------- 141 | 142 | # MAGIC %md 143 | # MAGIC ## 2-6. olist_sellers_dataset 144 | 145 | # COMMAND ---------- 146 | 147 | path_csv = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/raw/olist_sellers_dataset.csv" 148 | path_delta = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/enriched/sellers" 149 | table_delta = "olist_enriched.sellers" 150 | 151 | csv_to_delta(path_csv, path_delta, table_delta) 152 | display(spark.table(table_delta)) 153 | display(spark.sql(f"DESC DETAIL {table_delta}")) 154 | display(spark.sql(f"DESC HISTORY {table_delta}")) 155 | 156 | # COMMAND ---------- 157 | 158 | # MAGIC %md 159 | # MAGIC ## 2-7. product_category_name_translation 160 | 161 | # COMMAND ---------- 162 | 163 | path_csv = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/raw/product_category_name_translation.csv" 164 | path_delta = f"abfss://{CONTAINER}@{STORAGE_ACCOUNT}.dfs.core.windows.net/enriched/product_category_name_translation" 165 | table_delta = "olist_enriched.product_category_name_translation" 166 | 167 | csv_to_delta(path_csv, path_delta, table_delta) 168 | display(spark.table(table_delta)) 169 | display(spark.sql(f"DESC DETAIL {table_delta}")) 170 | display(spark.sql(f"DESC HISTORY {table_delta}")) 171 | 172 | # COMMAND ---------- 173 | 174 | # MAGIC %sql 175 | # MAGIC -- 環境クリーンアップ用 (普段はコメントアウト) 176 | # MAGIC -- DROP TABLE IF EXISTS olist_enriched.customers; 177 | # MAGIC -- DROP TABLE IF EXISTS olist_enriched.geolocation; 178 | # MAGIC -- DROP TABLE IF EXISTS olist_enriched.order_payments; 179 | # MAGIC -- DROP TABLE IF EXISTS olist_enriched.order_reviews; 180 | # MAGIC -- DROP TABLE IF EXISTS olist_enriched.products; 181 | # MAGIC -- DROP TABLE IF EXISTS olist_enriched.sellers; 182 | # MAGIC -- DROP TABLE IF EXISTS olist_enriched.product_category_name_translation; 183 | -------------------------------------------------------------------------------- /workshop.md: -------------------------------------------------------------------------------- 1 | Author: Hiroyuki Nakazato 2 | Summary: Databricks SQL on Azure ワークショップ 3 | Id: docs 4 | Environments: Web 5 | Status: Published 6 | Feedback Link: https://github.com/microsoft/azure-databricks-sql-workshop-ja 7 | 8 | # Databricks SQL on Azure ワークショップ 9 | ## 始める前に 10 | Duration: 00:10:00 11 | 12 | このワークショップでは、Microsoft Azure のサービスと Microsoft Power BI を組み合わせて、以下のデータ分析プラットフォームをステップ バイ ステップで構築します。 13 | 14 | ![](images/azure-services-overview/architecture-overview.jpg) 15 | 16 | ### **🎯 学習内容** 17 | ワークショップを通じて以下の内容を学びます。 18 | 19 | - Azure Synapse Analytics のコピー アクティビティを用いた外部データのコピー 20 | - Azure Synapse Analytics のマッピング データ フローを用いた CSV から Delta Lake への変換 21 | - Databricks SQL から Azure Data Lake Storage Gen2 (ADLS Gen2) への接続 22 | - Databricks SQL を用いた ADLS Gen2 上のデータのクエリ 23 | - Databricks SQL のダッシュボードを用いたデータの可視化 24 | - Power BI Desktop と Databricks SQL を用いたデータの可視化 25 | 26 | ### **🔰 難易度** 27 | - ワークショップのドキュメントには画面キャプチャ付きの詳細な手順を記載していますので、Azure にはじめて触れる方でも安心して進めて頂けます。 28 | - Python や Spark のプログラムは分からないという方もご安心ください。できるだけ多くのスキル レベルの方に取り組んで頂けるよう、極力プログラムを書かずに進められるように構成しています。データの加工 (ETL) には、Azure Synapse Analytics のノーコード・ローコード ETL 機能である Synapse パイプラインとデータフローを主に用います。 29 | 30 | ### **📢 前提条件** 31 | ワークショップ実施にあたっての前提条件は以下の通りです。 32 | 33 | **前提条件** | **備考** 34 | --- | --- 35 | 有効な **Azure サブスクリプション** を持っていること | 有効な Azure サブスクリプションを持っていない場合、[Azure の無料アカウント](https://azure.microsoft.com/ja-jp/free/) の利用を検討してください 36 | 受講者のうち少なくとも 1 人が Azure サブスクリプションまたはリソース グループの **所有者** ロールまたは **ユーザー アクセス管理者** ロールを持っていること | 他の受講者にロールを割り当てる必要があるためです 37 | ワークショップで利用するリージョン (特段の希望がなければ東日本リージョン) の以下のクォータの値が **`24 vCPU × 受講者数`** 以上になっていること | 38 | Power BI Desktop をインストール済みであること (Windows ユーザーのみ) | 39 | 40 | 49 | 50 | ### **💮 フィードバック** 51 | ワークショップのコンテンツは以下の GitHub リポジトリで管理しています。コンテンツに不備を発見した場合はワークショップ講師にお伝え頂くか、以下の GitHub リポジトリの Issue または Pull Request でお知らせ頂けるとありがたいです。 52 | 53 | [https://github.com/microsoft/azure-databricks-sql-workshop-ja](https://github.com/microsoft/azure-databricks-sql-workshop-ja) 54 | 55 | ## ワークショップで利用するサービスの説明 56 | Duration: 00:20:00 57 | 58 | この章では、ワークショップで利用する Microsoft の各種サービス・機能について説明します。これらの概要について既に十分ご存じの場合はスキップして次の章にお進みください。 59 | 60 | ### **🔎 主に利用するサービス・機能** 61 | ワークショップで主に利用するサービス・機能は以下の通りです。それぞれの概要について以降に記載します。 62 | 63 | **サービス名または機能名** | **概要** 64 | --- | --- 65 | Azure Data Lake Storage Gen2 | ビッグデータ分析に最適化されたクラウド オブジェクト ストレージ 66 | Databricks SQL | Azure Databricks に搭載されたデータ分析機能 67 | Synapse パイプラインおよびマッピング データ フロー | Azure Synapse Analytics に搭載されたデータ統合機能 68 | Microsoft Power BI | データの分析・可視化を行う BI 用サービス 69 | 70 | ### **Azure Data Lake Storage Gen2** 71 | Azure Data Lake Storage Gen2 は、Azure のマネージド型のクラウド オブジェクト ストレージである Azure Storage の一機能です。略称は ADLS Gen2 です。 72 | 73 | ADLS Gen2 は汎用性の高いオブジェクト ストレージである Blob Storage の機能をベースに構築され、ビッグ データ分析に最適化されています。Azure ストレージ アカウントをデプロイする際に階層型名前空間のオプションをオンにすると ADLS Gen2 の機能が利用できます。 74 | 75 | ![](images/azure-services-overview/azure-storage.jpg) 76 | 77 | 86 | 87 | ### **Azure Databricks** 88 | Azure Databricks は Apache Spark ベースのフル マネージド サービスで、レイクハウス プラットフォームを実現できます。 89 | 90 | レイクハウスは、データ レイクとデータ ウェアハウスからなる造語です。データ レイクの高い経済性、データ ウェアハウスの高い処理性能を併せ持ちます。レイクハウスでは、あらゆるデータをデータ レイク に集約し、Delta Lake や Apache Parquet などの分析に最適化した形式に変換して保持します。 91 | 92 | Azure Databricks は Data Lake Storage をメインのデータ ストアとして、データ エンジニアリング、データ サイエンスと機械学習、そしてデータ分析のユースケースをカバーします。 93 | 94 | ![](images/azure-services-overview/azure-databricks.jpg) 95 | 96 | ### **Databricks SQL** 97 | Databricks SQL は Azure Databricks に搭載されているデータ分析のための機能で、2021 年 12 月に一般提供になりました。特徴として、クラウド ストレージ上のデータを標準的な SQL で分析できます。さらに SQL の結果を OSS のメジャーなダッシュボード ツール Redash をベースとしたリッチなダッシュボードで可視化できます。 98 | 99 | 優れた UI/UX を持つだけでなく、2021 年 11 月に[ビッグデータ向けのベンチマークの TPC-DS 100TB クラスで世界記録を更新](https://www.databricks.com/jp/blog/2021/11/02/databricks-sets-official-data-warehousing-performance-record.html)するなど、非常に高い処理性能を兼ね備えています。 100 | 101 | ![](images/azure-services-overview/databricks-sql.jpg) 102 | 103 | ### **Azure Synapse Analytics** 104 | Azure Synapse Analytics は、エンドツーエンドの分析のための統合クラウド ネイティブ プラットフォームです。図の左側にあるようなオンプレミス、クラウドなど様々なデータを集約し、Synapse スタジオという専用の UI で集中的に分析できます。 105 | 106 | さらに Microsoft Purview や Azure Databricks などの Microsoft の他のサービスとのシームレスな連携機能も特長です。専用 SQL プールやサーバーレス SQL プールなどの分析ランタイムを備えています。 107 | 108 | ![](images/azure-services-overview/azure-synapse-analytics.jpg) 109 | 110 | ### **Synapse パイプライン** 111 | Synapse パイプラインは Azure Synapse Analytics に搭載されたデータ統合機能で、データのコピーや ETL 処理をスケジュールやイベント ベースのトリガーで実行できます。100 以上の組み込みのコネクターを提供しており、Azure の主要なデータ ストアはもちろん、Azure 以外のデータ ストアについてもサポートされています。 112 | 113 | コピー アクティビティという機能を用いてオンプレミスや他のクラウドからデータを Azure にコピーし、後述するマッピング データ フローで ETL (Extract / Transform / Load) を行うユーザーが多いです。 114 | 115 | ![](images/azure-services-overview/synapse-pipeline.jpg) 116 | 117 | ### **マッピング データ フロー** 118 | マッピング データ フローは、変換 (Transformation) と呼ばれるパーツを組合わせて、ノーコードで ETL 処理を作成できる Azure Synapse Analytics の機能です。Synapse パイプラインから呼び出す形で利用します。略称はデータ フローです。 119 | 120 | データ フローの処理は Microsoft マネージドの Spark クラスター上で実行されるため、大規模なデータを扱うことができます。 121 | 122 | ![](images/azure-services-overview/mapping-data-flow.jpg) 123 | 124 | ### **Microsoft Power BI** 125 | Microsoft Power BI はデータを分析・可視化して洞察を得るための BI (Business Intelligence) ツールです。Power BI は大きく Power BI Desktop、Power BI サービス、そして Power BI モバイル / ブラウザから構成されます。 126 | 127 | 本ワークショップの後半で Power BI Desktop から Databricks SQL に接続してレポートを作成します。 128 | 129 | ![](images/azure-services-overview/microsoft-power-bi.jpg) 130 | 131 | ### **🎉 まとめ** 132 | この章では、ワークショップで利用する Microsoft の各種サービス・機能について学びました。**[Next]** を選択して次の章に進みましょう。 133 | 134 | ## リソース グループ作成 135 | Duration: 00:10:00 136 | 137 | この章では、ワークショップで利用するリソース グループを作成し、受講者に必要な権限を付与します。 138 | 139 | リソース グループとは Azure 上のリソースをまとめて管理するためのものです。リソース グループを指定して複数のリソースをまとめて削除したり、リソース グループ別に課金を確認できたりします。 140 | 141 | ### **🤔 複数人でワークショップを受講する場合の考慮点** 142 | 複数人でワークショップを受講する場合、リソース グループの作成にあたって以下 2 つの選択肢があります。 143 | 144 | **権限** | **対応** 145 | --- | --- 146 | 代表者のみがリソース グループを作成できる権限を持ち、他の方が権限を持っていない場合 | **全員で 1 つのリソース グループを共有**し、その中に受講者全員の Azure リソースを作成する 147 | 受講者全員がリソース グループを作成できる権限を持つ場合 | **1 人 1 つのリソース グループを作成**し、その中に各受講者の Azure リソースを作成する 148 | 149 | どちらの方法を選んでも問題ありません。講師と、あるいは参加者同士で相談して、どちらの方法にするかを決めてください。なお、リソース グループ名や Azure リソース名はサブスクリプション内、あるいはグローバルでの一意性が求められることが多いです。この後の手順でも名前が重複しないようガイドしていきますが、この点を意識してセットアップ作業を進めていきましょう。 150 | 151 | 161 | 162 | ### **1. リソース グループの作成** 163 | **(注: 全員で 1 つのリソース グループを共有する場合は代表者 1 人が実施します)** 164 | 165 | (1) Azure ポータル ([https://portal.azure.com](https://portal.azure.com)) にサインインします。必要に応じて画面右上の歯車アイコン > **[言語と地域]** からポータルの表示言語を日本語に変更します。 166 | 167 | ![](images/create-resource-group/azure-portal-lang.jpg) 168 | 169 | (2) Azure ポータル上部の検索バーに **[リソース グループ]** と入力します。検索結果の **[サービス]** 内の **[リソース グループ]** をクリックします。 170 | 171 | ![](images/create-resource-group/rg-create-1.jpg) 172 | 173 | (3) **[作成]** をクリックします。 174 | 175 | ![](images/create-resource-group/rg-create-2.jpg) 176 | 177 | (4) リソース グループの作成画面で以下の項目を設定し、**[確認および作成]** をクリックします。 178 | 179 | **項目** | **設定値** 180 | --- | --- 181 | サブスクリプション | 任意のサブスクリプションを選択します。 182 | リソース グループ | サブスクリプション内で一意の任意の名前を入力します。このワークショップでは **`rg-adb-ws-{yyyyMMdd}`** (**`{yyyyMMdd}`** はワークショップの実施日で置換) を使用します。
注: 1 人 1 つのリソース グループを作成する場合は **`rg-adb-ws-{yyyyMMdd}-{lastname}`** (**`{lastname}`** は受講者の姓で置換) を使用します。

例: **`rg-adb-ws-20221205`** または **`rg-adb-ws-20221205-smith`** 183 | リージョン | 任意のリージョンを選択します。このワークショップでは **`Japan East`** を選択します。 184 | 185 | ![リソース グループの作成](images//create-resource-group/rg-create-3.jpg) 186 | 187 | (5) **[確認および作成]** 画面で検証結果に問題がなければ、**[作成]** をクリックします。通常、すぐに作成が完了します。 188 | 189 | ![](images/create-resource-group/rg-create-4.jpg) 190 | 191 | ### **2. リソース グループへのロールの割り当て** 192 | **(注: 全員で 1 つのリソース グループを共有する場合は代表者 1 人が実施します)** 193 | 194 | (1) 先ほど作成したワークショップ用リソース グループにアクセスします。 195 | 196 | ![](images/create-resource-group/rg-iam-1.jpg) 197 | 198 | (2) ワークショップ用リソース グループの左側メニューから **[アクセス制御 (IAM)]** > **[追加]** > **[ロールの割り当ての追加]** をクリックします。 199 | 200 | ![](images/create-resource-group/rg-iam-2.jpg) 201 | 202 | (3) ロールの割り当ての追加画面で **[所有者]** を選択し **[次へ]** をクリックします。 203 | 204 | ![](images/create-resource-group/rg-iam-3.jpg) 205 | 206 | (4) **[+ メンバーを選択する]** をクリックします。 207 | 208 | ![](images/create-resource-group/rg-iam-4.jpg) 209 | 210 | (5) メンバーの選択欄が画面右側に表示されるので、すべてのワークショップ受講者を選択し、**[選択]** をクリックします。 211 | 212 | ![](images/create-resource-group/rg-iam-5.jpg) 213 | 214 | (6) **[レビューと割り当て]** をクリックします。 215 | 216 | ![](images/create-resource-group/rg-iam-6.jpg) 217 | 218 | (7) 再度、**[レビューと割り当て]** をクリックします。 219 | 220 | ![](images/create-resource-group/rg-iam-7.jpg) 221 | 222 | (8) リソース グループの **[アクセス制御 (IAM)]** > **[ロールの割り当て]** を選択し、参加者全員に **[所有者]** のロールが割り当てられていることを確認します。 223 | 224 | ![](images/create-resource-group/rg-iam-8.jpg) 225 | 226 | ### **🎉 まとめ** 227 | この章では、ワークショップで利用するリソース グループを作成し、参加者全員に **[所有者]** のロールを割り当てました。次の章に進みましょう。 228 | 229 | ## Azure リソース作成 230 | Duration: 00:20:00 231 | 232 | この章では、ワークショップで利用する Azure リソースを作成します。 233 | 234 | ### **1. Azure Synapse Analytics ワークスペース & Azure ストレージ アカウントの作成** 235 | **(注: ここから先の手順はワークショップの受講者全員が実施します)** 236 | 237 | (1) Azure ポータル ([https://portal.azure.com](https://portal.azure.com)) にサインインし、検索バーに **[リソース グループ]** と入力してリソース グループ一覧に移動し、ワークショップで利用するリソース グループが表示されることを確認します。 238 | 239 | ![](images/create-azure-resources/syn-create-1.jpg) 240 | 241 | (2) Azure ポータル上部の検索バーに **[synapse]** と入力します。検索結果の **[サービス]** 内の **[Azure Synapse Analytics]** をクリックします。 242 | 243 | ![](images/create-azure-resources/syn-create-2.jpg) 244 | 245 | (3) **[作成]** をクリックします。 246 | 247 | ![](images/create-azure-resources/syn-create-3.jpg) 248 | 249 | (4) Synapse ワークスペースの作成画面で以下の項目を設定し、**[次へ: セキュリティ]** をクリックします。 250 | 251 | **項目** | **設定値** 252 | --- | --- 253 | サブスクリプション | 任意のサブスクリプションを選択します。 254 | リソース グループ | 先の手順で作成したリソース グループ **`rg-adb-ws-{yyyyMMdd}`** を選択します。 255 | マネージド リソース グループ | 空白のままにします。 256 | ワークスペース名 | グローバルに一意の任意の名前を入力します。このワークショップでは **`syn-adb-ws-{lastname}-{yyyyMMdd}`** (**`{lastname}`** は受講者の姓で置換、**`{yyyyMMdd}`** はワークショップの実施日で置換) を使用します。

例: **`syn-adb-ws-smith-20221205`** 257 | 地域 | 任意のリージョンを選択します。このワークショップでは **`Japan East`** を選択します。 258 | Data Lake Storage Gen2 を選択する | **[サブスクリプションから]** を選択します。 259 | アカウント名 | **[新規作成]** を選択し、グローバルに一意の任意の名前を入力します。このワークショップでは **`stadbws{lastname}{yyyyMMdd}`** を使用します。

例: **`stadbwssmith20221205`** 260 | ファイル システム名 | **[新規作成]** を選択し、任意の名前を入力します。このワークショップでは **`synapse`** を使用します。 261 | 262 | ![](images/create-azure-resources/syn-create-4.jpg) 263 | 264 | 273 | 274 | (5) **[セキュリティ]** 画面で以下の項目を設定し、**[確認および作成]** をクリックします。 275 | 276 | **項目** | **設定値** 277 | --- | --- 278 | 認証方法 | **[Azure Active Directory (Azure AD) 認証のみを使用する]** を選択します。
備考: 本ワークショップでは SQL プールは利用しません。余分な入力を省くため、最もシンプルな認証方法を選択します。 279 | 280 | ![](images/create-azure-resources/syn-create-5.jpg) 281 | 282 | (6) **[確認および作成]** 画面で検証結果に問題がなければ、**[作成]** をクリックします。通常 3-5 分で作成が完了します。次のステップに進みましょう。 283 | 284 | ![](images/create-azure-resources/syn-create-6.jpg) 285 | 286 | ### **2. Azure Databricks ワークスペース作成** 287 | (1) Azure ポータル上部の検索バーに **[databricks]** と入力します。検索結果の **[サービス]** 内の **[Azure Databricks]** をクリックします。 288 | 289 | ![](images/create-azure-resources/adb-create-1.jpg) 290 | 291 | (2) **[作成]** をクリックします。 292 | 293 | ![](images/create-azure-resources/adb-create-2.jpg) 294 | 295 | (3) Azure Databricks サービスの作成画面で以下の項目を設定し、**[確認および作成]** をクリックします。 296 | 297 | **項目** | **設定値** 298 | --- | --- 299 | サブスクリプション | 任意のサブスクリプションを選択します。 300 | リソース グループ | 先の手順で作成したリソース グループ **`rg-adb-ws-{yyyyMMdd}`** を選択します。 301 | ワークスペース 名 | サブスクリプション内で一意の任意の名前を入力します。このワークショップでは **`adb-ws-{lastname}-{yyyyMMdd}`** を使用します。

例: **`adb-ws-smith-20221205`** 302 | リージョン | 任意のリージョンを選択します。このワークショップでは **`Japan East`** を選択します。 303 | 価格レベル | **`Premium`** を選択します。 304 | 305 | ![](images/create-azure-resources/adb-create-3.jpg) 306 | 307 | 315 | 316 | (4) **[確認および作成]** 画面で検証結果に問題がなければ、**[作成]** をクリックします。通常 3-5 分で作成が完了します。次のステップに進みましょう。 317 | 318 | ![](images/create-azure-resources/adb-create-4.jpg) 319 | 320 | ### **3. Azure Key Vault の作成** 321 | 後続の手順でシークレット文字列をセキュアに扱えるように、Azure Key Vault を作成します。 322 | 323 | (1) Azure ポータル上部の検索バーに **[key vault]** と入力します。検索結果の **[サービス]** 内の **[キー コンテナー]** をクリックします。 324 | 325 | ![](images/create-azure-resources/kv-create-1.jpg) 326 | 327 | (2) **[作成]** をクリックします。 328 | 329 | ![](images/create-azure-resources/kv-create-2.jpg) 330 | 331 | (3) キー コンテナーの作成画面で以下の項目を設定し、**[確認および作成]** をクリックします。 332 | 333 | **項目** | **設定値** 334 | --- | --- 335 | サブスクリプション | 任意のサブスクリプションを選択します。 336 | リソース グループ | 先の手順で作成したリソース グループ **`rg-adb-ws-{yyyyMMdd}`** を選択します。 337 | Key Vault 名 | グローバルに一意の任意の名前を入力します。このワークショップでは **`kv-adb-ws-{lastname}-{yyyyMMdd}`** を使用します。

例: **`kv-adb-ws-smith-20221205`** 338 | 地域 | 任意のリージョンを選択します。このワークショップでは **`Japan East`** を選択します。 339 | 価格レベル | 標準を選択します。 340 | 削除されたコンテナーを保持する日数 | **`7`** に変更します。 341 | 消去保護 | **`消去保護を無効にする`** を選択します。 342 | 343 | ![](images/create-azure-resources/kv-create-3.jpg) 344 | 345 | (4) **[確認および作成]** 画面で検証結果に問題がなければ、**[作成]** をクリックします。通常 1-2 分で作成が完了します。 346 | 347 | ![](images/create-azure-resources/kv-create-4.jpg) 348 | 349 | ### **🎉 まとめ** 350 | この章では以下の Azure リソースを作成しました。問題なく作成できていることを確認して、次の章に進みましょう。 351 | 352 | 1. Azure Synapse Analytics ワークスペース 353 | 2. Azure ストレージ アカウント (ADLS Gen2) 354 | 3. Azure Databricks ワークスペース 355 | 4. Azure Key Vault 356 | 357 | ![](images/create-azure-resources/summary.jpg) 358 | 359 | ## データの概要 360 | Duration: 00:10:00 361 | 362 | この章では、分析対象として利用する E コマースのサンプル データの概要を確認します。 363 | 364 | ### **🔎 分析対象として利用するデータの概要** 365 | Kaggle に公開されている E コマースのサンプル データ「[Brazilian E-Commerce Public Dataset by Olist](https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce)」を利用します。データ スキーマは以下の通りです。 366 | 367 | ![](images/olist-data-schema.jpg) 368 | (\* Brazilian E-Commerce Public Dataset by Olist は [クリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 (CC BY-NC-SA 4.0)](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ja) の下で提供されています) 369 | 370 | 上記データ スキーマのうち、本ワークショップでは主に以下の 2 つのデータセットを利用します。 371 | 372 | - `olist_orders_dataset` : 注文データ 373 | - `olist_order_items_dataset` : 注文明細データ 374 | 375 | [Kaggle のデータセットの説明のページ](https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce?select=olist_orders_dataset.csv)にアクセスして、上記のデータセットの概要 (どのような列があるか、各列のデータ型や値の例など) を確認しましょう。 376 | 377 | ## データの配置 378 | Duration: 00:40:00 379 | 380 | この章では、Synapse パイプラインのコピー アクティビティを用いて、分析対象のデータを Azure Data Lake Storage (ADLS) Gen2 に配置します。 381 | 382 | ### **🔎 データ変換の流れ** 383 | この章で実現するデータ変換の流れは以下の通りです。 384 | 385 | ![](images/deploy-data/diagram-copy-activity.jpg) 386 | 387 | ### **1. ストレージ アカウントのコンテナー作成** 388 | はじめに、分析対象のデータを格納するための領域 (コンテナー) をストレージ アカウントに作成します。 389 | 390 | (1) Azure ポータルにアクセスし、ワークショップで利用するリソース グループを選択します。リソース グループから自身が利用するストレージ アカウントを選択します。 391 | 392 | ![](images/deploy-data/create-container-1.jpg) 393 | 394 | (2) 左側メニューの **[ストレージ ブラウザー (プレビュー)]** > **[BLOB コンテナー]** > **[+ コンテナーを追加する]** をクリックします。画面右側に **[新しいコンテナー]** が表示されますので、以下の設定を行い、**[作成]** をクリックします。 395 | 396 | **項目** | **設定値** 397 | --- | --- 398 | 名前 | **`olist-brazilian-ecommerce`** と入力します。 399 | パブリック アクセス レベル | 既定の **`プライベート (匿名アクセスはありません)`** を選択します。 400 | 401 | ![](images/deploy-data/create-container-2.jpg) 402 | 403 | ### **2. Synapse Studio への接続** 404 | (1) Azure ポータルにアクセスし、ワークショップで利用するリソース グループを選択します。リソース グループから自身が利用する Synapse ワークスペースを選択します。 405 | 406 | (2) 左側メニューの **[概要]** が選択されていることを確認し、画面中央の **[Synapse Studio を開く]** の中の **[オープン]** というリンクをクリックします。別タブで **Synapse Studio** が開きます。 407 | 408 | ![](images/deploy-data/access-synapse-studio-1.jpg) 409 | 410 | (3) はじめて Synapse Studio に接続する際、画面上部にオプションの cookie 使用についての通知が表示されるので、特に問題がなければ **[同意]** をクリックします。 411 | 412 | ![](images/deploy-data/access-synapse-studio-2.jpg) 413 | 414 | 421 | 422 | ### **3. コピー アクティビティによるデータの配置** 423 | 分析対象のデータを Zip にまとめたファイルを [GitHub リポジトリ](https://github.com/microsoft/azure-databricks-sql-workshop-ja/blob/main/assets/olist-brazilian-ecommerse-dataset.zip)に格納していますので、そちらを ADLS Gen2 にコピーします。 424 | 425 | 具体的な手順として、Synapse Studio にてリンク サービス、データセット、パイプラインを作成し、パイプラインにコピー アクティビティを定義して、パイプラインを実行します。 426 | 427 | 438 | 439 | #### **3-1. リンク サービスの作成** 440 | まずはコピー元の Zip ファイルがある GitHub リポジトリの接続情報を定義したリンク サービスを作成します。 441 | 442 | (1) Synapse スタジオで **[Manage]** ハブ > **[Linked services]** > **[+ 新規]** をクリックします。 443 | 444 | ![](images/deploy-data/create-linked-service-1.jpg) 445 | 446 | (2) 検索ボックスに `http` と入力します。候補として **[HTTP]** が表示されるので選択し **[続行]** をクリックします。 447 | 448 | ![](images/deploy-data/create-linked-service-2.jpg) 449 | 450 | (3) 新しいリンク サービスの作成画面で以下の項目を設定し、**[テスト接続]** をクリックします。**接続成功** と表示されたら **[作成]** をクリックします。 451 | 452 | **項目** | **設定値** 453 | --- | --- 454 | 名前 | 任意の名前を入力します。このワークショップでは **`HttpGitHubAdbWorkshop`** を入力します。 455 | ベース URL | **`https://github.com/microsoft/azure-databricks-sql-workshop-ja/`** を入力します。 456 | 認証の種類 | **`匿名`** を選択します。 457 | 458 | ![](images/deploy-data/create-linked-service-3.jpg) 459 | 460 | (4) 画面上部の **[すべて発行]** (保存に相当する操作) をクリックします。確認画面が表示されるので **[発行]** をクリックします。 461 | 462 | ![](images/deploy-data/create-linked-service-4.jpg) 463 | 464 | これでリンク サービスの作成は完了です。以降、データセットとパイプラインを作成していきますが、作業結果が途中で消えてしまわないように、キリの良いタイミングでこまめに **[すべて発行]** を実行するようにしましょう。 465 | 466 | #### **3-2. データセット (コピー元) の作成** 467 | 続いてコピー元とコピー先のデータセットを作成します。まずはコピー元 (GitHub に格納された Zip ファイル) に対応するデータセットを作成します。 468 | 469 | (1) Synapse スタジオで **[Data]** ハブにアクセスした後、**[+]** ボタンをクリックし、**[統合データセット]** を選択します。 470 | 471 | ![](images/deploy-data/create-dataset-source-1.jpg) 472 | 473 | (2) 検索ボックスに `http` と入力します。候補として **[HTTP]** が表示されるので選択し **[続行]** をクリックします。 474 | 475 | ![](images/deploy-data/create-dataset-source-2.jpg) 476 | 477 | (3) 形式の選択画面で **[バイナリ]** を選択し **[続行]** をクリックします。 478 | 479 | ![](images/deploy-data/create-dataset-source-3.jpg) 480 | 481 | (4) プロパティの設定画面で以下の項目を設定し、**[OK]** をクリックします。 482 | 483 | **項目** | **設定値** 484 | --- | --- 485 | 名前 | 任意の名前を入力します。このワークショップでは **`CopySourceDataset`** を入力します。 486 | リンク サービス | 先ほど作成したリンク サービス **`HttpGitHubAdbWorkshop`** を選択します。 487 | 相対 URL | **`raw/main/assets/olist-brazilian-ecommerse-dataset.zip`** を入力します。 488 | 489 | ![](images/deploy-data/create-dataset-source-4.jpg) 490 | 491 | (5) 作成されたデータセットの **[接続]** タブの **[圧縮の種類]** を `ZipDelfate (.zip)` に変更します。 492 | 493 | ![](images/deploy-data/create-dataset-source-5.jpg) 494 | 495 | これでコピー元のデータセットの作成は完了ですので、発行しておきましょう。 496 | 497 | #### **3-3. データセット (コピー先) の作成** 498 | 続いてコピー先 (ADLS Gen2 の CSV ファイル群) に対応するデータセットを作成します。 499 | 500 | (1) Synapse スタジオで **[Data]** ハブにアクセスした後、**[+]** ボタンをクリックし、**[統合データセット]** を選択します。 501 | 502 | (2) 検索ボックスに `gen2` と入力します。候補として **[Azure Data Lake Storage Gen2]** が表示されるので選択し **[続行]** をクリックします。 503 | 504 | ![](images/deploy-data/create-dataset-target-1.jpg) 505 | 506 | (3) 形式の選択画面で **[バイナリ]** を選択し **[続行]** をクリックします。 507 | 508 | ![](images/deploy-data/create-dataset-target-2.jpg) 509 | 510 | (4) プロパティの設定画面で以下の項目を設定し、**[OK]** をクリックします。 511 | 512 | **項目** | **設定値** 513 | --- | --- 514 | 名前 | 任意の名前を入力します。このワークショップでは **`CopyTargetDataset`** を入力します。 515 | リンク サービス | **`{Synapse ワークスペース名}-WorkspaceDefaultStorage`** を選択します。 516 | ファイル パス | コンテナ名に **`olist-brazilian-ecommerce`**、フォルダ名に **`raw`** を入力します。(ファイル名は空白のままで OK です) 517 | 518 | ![](images/deploy-data/create-dataset-target-3.jpg) 519 | 520 | これでコピー先のデータセットの作成は完了です。発行しておきましょう。 521 | 522 | 529 | 530 | 540 | 541 | #### **3-4. パイプラインの作成と実行** 542 | 最後にコピー アクティビティを含むパイプラインを作成した後、パイプラインを実行します。 543 | 544 | (1) Synapse スタジオで **[Integrate]** ハブにアクセスした後、**[+]** ボタンをクリックし、**[パイプライン]** を選択します。 545 | 546 | ![](images/deploy-data/create-pipeline-1.jpg) 547 | 548 | (2) パイプラインのプロパティで **[名前]** に `CopyAndUnzipDataset` を入力します。作業領域を広くするため以下の画面キャプチャ内の赤枠で囲んだボタンをクリックしてプロパティを折りたたみます。 549 | 550 | ![](images/deploy-data/create-pipeline-2.jpg) 551 | 552 | (3) パイプラインのアクティビティ一覧の **[移動と変換]** セクションを展開し **[データのコピー]** を右側のキャンバスにドラッグ & ドロップします。 553 | 554 | ![](images/deploy-data/create-pipeline-3.jpg) 555 | 556 | (4) キャンバス上のコピー アクティビティを選択し、**[ソース]** タブを開き、以下の項目を設定します。 557 | 558 | **項目** | **設定値** 559 | --- | --- 560 | ソース データセット | 先ほど作成した **`CopySourceDataset`** を選択します。 561 | zip ファイル名をフォルダーとして保持する | チェックを外します。 562 | 563 | ![](images/deploy-data/create-pipeline-4.jpg) 564 | 565 | (5) 続いて **[シンク]** タブを開き、以下の項目を設定します。 566 | 567 | **項目** | **設定値** 568 | --- | --- 569 | シンク データセット |先ほど作成した **`CopyTargetDataset`** を選択します。 570 | 571 | ![](images/deploy-data/create-pipeline-5.jpg) 572 | 573 | (6) 以上でパイプラインの作成は完了です。画面上部の **[デバッグ]** をクリックします。パイプラインが実行されますので、以下の画面キャプチャ内の赤枠で囲んだボタンを定期的にクリックして表示を更新し、状態が `成功` になるまで待ちます。 574 | 575 | ![](images/deploy-data/create-pipeline-6.jpg) 576 | 577 | (7) 状態が `成功` になったらパイプラインの実行結果を確認します。以下の画面キャプチャ内の赤枠で囲んだアイコン (マウスを近づけると表示されます) をクリックします。 578 | 579 | ![](images/deploy-data/create-pipeline-7.jpg) 580 | 581 | (8) パイプラインの実行結果が表示されます。コピー元、コピー先のデータ サイズ、ファイル数が以下キャプチャの内容と一致することを確認します。問題なければ右上の **[×]** をクリックして閉じます。 582 | 583 | ![](images/deploy-data/create-pipeline-8.jpg) 584 | 585 | (9) Synapse スタジオの **[Data]** ハブを開き、以下キャプチャの通り、ADLS Gen2 に CSV ファイル群がコピーされていることを確認します。 586 | 587 | ![](images/deploy-data/create-pipeline-9.jpg) 588 | 589 | 以上でパイプラインの作成と実行は完了です。発行しておきましょう。 590 | 591 | ### 4. **(オプション) 手動でのデータ配置** 592 | 以下は Synapse パイプラインのコピー アクティビティではなく手動でデータを配置する手順です。コピー アクティビティでデータを配置済みの場合、この手順はスキップしてください。 593 | 594 | (1) 以下 URL にアクセスし、**[Download]** をクリックし、データセットの Zip ファイルをダウンロードします。 595 | [https://github.com/microsoft/azure-databricks-sql-workshop-ja/blob/main/assets/olist-brazilian-ecommerse-dataset.zip](https://github.com/microsoft/azure-databricks-sql-workshop-ja/blob/main/assets/olist-brazilian-ecommerse-dataset.zip) 596 | 597 | ![](images/deploy-data/deploy-data-1.jpg) 598 | 599 | (2) Zip ファイルを展開します。 600 | 601 | ![](images/deploy-data/deploy-data-2.jpg) 602 | 603 | (3) Azure ポータルで自身が利用するストレージ アカウントで、左側メニュー **[ストレージ ブラウザー (プレビュー)]** にアクセスし、コンテナー `olist-brazilian-ecommerce` を選択します。 604 | 605 | (4) **[ディレクトリの追加]** を選択します。画面右側に **[ディレクトリの追加]** が表示されますので、**[名前]** に **`raw`** と入力し、**[保存]** をクリックします。 606 | 607 | ![](images/deploy-data/deploy-data-3.jpg) 608 | 609 | (5) `raw` ディレクトリを選択します。**[アップロード]** > **[ファイルの参照]** をクリックし、手元にダウンロード & 展開した CSV ファイル群をアップロードします。 610 | 611 | ![](images/deploy-data/deploy-data-4.jpg) 612 | 613 | (一度に複数ファイルをアップロードできます) 614 | 615 | ![](images/deploy-data/deploy-data-5.jpg) 616 | 617 | (6) アップロードした CSV ファイル群が以下のように表示されます。 618 | ![](images/deploy-data/deploy-data-6.jpg) 619 | 620 | ### **🎉 まとめ** 621 | この章では、分析対象として利用するデータの内容を確認し、Azure Data Lake Storage (ADLS) Gen2 に配置しました。内容的にはここで一区切りになります。ここまで休憩を取らずに進めている場合、少し休憩を取ってリフレッシュしてから、次の章に進みましょう。 622 | 623 | ## Databricks ワークスペースへの接続 624 | Duration: 00:10:00 625 | 626 | この章では、Databricks ワークスペースに接続し、必要に応じて表示言語を日本語に変更します。 627 | 628 | ### **1. Databricks ワークスペースに接続** 629 | (1) Azure ポータルにアクセスし、ワークショップで利用するリソース グループを選択します。リソース グループから自身が利用する Azure Databricks サービスを選択します。 630 | 631 | ![](images/access-databricks-workspace/adb-access-1.jpg) 632 | 633 | (2) 画面中央の **[ワークスペースの起動]** をクリックします。別タブで Azure Databricks ワークスペースが開きます。 634 | 635 | ![](images/access-databricks-workspace/adb-access-2.jpg) 636 | 637 | (3) 利用目的に関するアンケートが表示されますが、必須ではないため **[Finish]** をクリックします。 638 | 639 | ![](images/access-databricks-workspace/adb-access-3.jpg) 640 | 641 | ### **2. Databricks ワークスペースの日本語化 (オプション)** 642 | Databricks ワークスペースの表示言語を日本語に変更します。英語のままでもワークショップの進行的には問題ありませんので、必要に応じて実施してください。 643 | 644 | (1) 画面右上のユーザー名をクリックし、**[User Settings]** をクリックします。 645 | 646 | ![](images/access-databricks-workspace/adb-lang-1.jpg) 647 | 648 | (2) **[Language settings]** タブを選択し、**[Change your language]** のリスト ボックスから **[日本語]** を選択します。 649 | 650 | ![](images/access-databricks-workspace/adb-lang-2.jpg) 651 | 652 | (3) 自動的に画面が更新され、日本語の表示に変更されます。 653 | 654 | ![](images/access-databricks-workspace/adb-lang-3.jpg) 655 | 656 | ### **🎉 まとめ** 657 | この章では、Databricks ワークスペースに接続し、必要に応じて表示言語を日本語に変更しました。次の章に進みましょう。 658 | 659 | ## Databricks SQL から ADLS Gen2 への接続 #1 660 | Duration: 00:30:00 661 | 662 | この章では、Databricks SQL から ADLS Gen2 に接続し、前の章で配置した CSV ファイル群に対して SQL クエリを実行します。 663 | 664 | ### **🤔 Databricks SQL から ADLS Gen2 に接続する際の認証方式について** 665 | Databricks SQL から ADLS Gen2 に接続する際、以下 4 つの認証方式が利用できます。 666 | 667 | 1. Unity Catalog による資格情報の管理 668 | 2. Azure サービス プリンシパル 669 | 3. SAS トークン 670 | 4. アカウント キー 671 | 672 | 各認証方式の詳細については以下ドキュメントを参照してください。
673 | [https://learn.microsoft.com/ja-jp/azure/databricks/external-data/azure-storage](https://learn.microsoft.com/ja-jp/azure/databricks/external-data/azure-storage) 674 | 675 | 商用環境では Unity Catalog による資格情報の管理、または Azure サービス プリンシパルを利用することが推奨されています。いずれの方式もセットアップにあたって Azure Active Directory の操作が必要となります。 676 | 677 | 本ワークショップでは、受講者が Azure Active Directory の操作に必要な権限を持っていない可能性があるため、ストレージ アカウントのアカウント キーを用いた認証方式を利用します。まずは本章でアカウント キーを Databricks SQL でそのまま利用して接続確認を行い、次の章で Key Vault にシークレットとして格納する方法を試します。 678 | 679 | 687 | 688 | ### **1. アカウント キーの取得** 689 | (1) テキスト エディターを開き、以下のスニペットをコピー & ペーストし、`{storage-account}` を以前の章で作成したストレージ アカウント名に置き換えます。(置換後の文字列に `{}` を含める必要はありません) 690 | 691 | ``` 692 | spark.hadoop.fs.azure.account.key.{storage-account}.dfs.core.windows.net {account-key} 693 | ``` 694 | 695 | (2) Azure ポータルにアクセスし、ワークショップで利用するリソース グループを選択します。リソース グループから自身が利用するストレージ アカウントを選択します。 696 | 697 | ![](images/access-dbsql-adls-part1/storage-key-1.jpg) 698 | 699 | (3) 左側メニューの **[アクセス キー]** をクリックします。**[Key1]** の右横の **[表示]** をクリックし、アカウント キーをコピーします。 700 | 701 | ![](images/access-dbsql-adls-part1/storage-key-2.jpg) 702 | 703 | (キーの右端のアイコンをクリックすることで、アカウント キーをコピーできます) 704 | 705 | ![](images/access-dbsql-adls-part1/storage-key-3.jpg) 706 | 707 | (4) コピーしたアカウント キーを用いて (1) の `{account-key}` を置き換えます。(置換後の文字列に `{}` を含める必要はありません) 708 | 709 | ### **2. Databricks SQL ウェアハウスの設定** 710 | (1) Databricks ワークスペースの画面左上のペルソナ スイッチャーから **[SQL]** を選択します。 711 | 712 | ![](images/access-dbsql-adls-part1/dbsql-access-1.jpg) 713 | 714 | 723 | 724 | (2) 画面右上のユーザー名を選択し、**[SQL 管理コンソール]** > **[SQL ウェアハウスの設定]** を選択します。 725 | 726 | ![](images/access-dbsql-adls-part1/dbsql-access-2.jpg) 727 | 728 | (3) **[データ アクセス設定]** にテキスト エディターの内容をコピー & ペーストし、**[変更を保存]** をクリックします。 729 | 730 | ![](images/access-dbsql-adls-part1/dbsql-access-3.jpg) 731 | 732 | (4) Databricks ワークスペースの左側メニューから **[SQL ウェアハウス]** を選択します。最初から存在するウェアハウス `Starter Warehouse` の三点をクリックし **[編集]** を選択します。 733 | 734 | ![](images/access-dbsql-adls-part1/dbsql-access-4.jpg) 735 | 736 | (5) **[クラスター サイズ]** を最も小さいサイズである **XXS** に変更し、**[Type]** を安価かつ基本的な機能を備えた **クラシック** に変更します。Type 変更時に `Workloads will be inpacted!` という警告のダイアログが出ますが、**[Confirm]** をクリックします。右上の **[保存]** をクリックします。 737 | 738 | ![](images/access-dbsql-adls-part1/dbsql-access-5.jpg) 739 | 740 | (6) **[開始]** をクリックします。ステータスが **開始中** になります。約 3-5 分で **実行中** になります。 741 | 742 | ![](images/access-dbsql-adls-part1/dbsql-access-6.jpg) 743 | 744 | 758 | 759 | ### **3. Databricks SQL でのクエリ実行** 760 | (1) SQL ウェアハウスのステータスが **実行中** になったら、画面左側メニューの **[SQL エディタ]** にアクセスします。以下のクエリをコピー & ペーストして LOCATION 句の `{storage-account-name}` 2 か所を書き換え、**[すべてを実行]** をクリックします。これらのクエリにより、`olist_raw` データベース (またはスキーマとも呼びます) および `orders` テーブル、`order_items` テーブルが作成されます。 761 | 762 | ```sql 763 | CREATE DATABASE IF NOT EXISTS olist_raw; 764 | 765 | CREATE TABLE IF NOT EXISTS olist_raw.orders 766 | USING CSV 767 | OPTIONS (HEADER true, INFERSCHEMA true) 768 | LOCATION 'abfss://olist-brazilian-ecommerce@{storage-account-name}.dfs.core.windows.net/raw/olist_orders_dataset.csv'; 769 | 770 | CREATE TABLE IF NOT EXISTS olist_raw.order_items 771 | USING CSV 772 | OPTIONS (HEADER true, INFERSCHEMA true) 773 | LOCATION 'abfss://olist-brazilian-ecommerce@{storage-account-name}.dfs.core.windows.net/raw/olist_order_items_dataset.csv'; 774 | ``` 775 | 776 | (2) スキーマ ブラウザーに作成したデータベースとテーブルが表示されることを確認します。(データベース名が表示されない場合はキャプチャ赤枠のボタンをクリックして表示を更新します) 777 | 778 | ![](images/access-dbsql-adls-part1/dbsql-access-7.jpg) 779 | 780 | (3) `olist_raw.orders` テーブルに対して以下のクエリを 1 つずつ実行して、データ内容と件数が取得できることを確認します。Shift キーを押しながら実行したい SQL を選択して Enter キーを押すと、選択した SQL のみを実行できます。 781 | 782 | ```sql 783 | SELECT * FROM olist_raw.orders LIMIT 5; 784 | 785 | -- カウント結果として 99441 件が表示されることを確認 786 | SELECT COUNT(*) FROM olist_raw.orders; 787 | ``` 788 | 789 | (4) `olist_raw.order_items` テーブルに対して以下のクエリを 1 つずつ実行して、データ内容と件数が取得できることを確認します。 790 | 791 | ```sql 792 | SELECT * FROM olist_raw.order_items LIMIT 5; 793 | 794 | -- カウント結果として 112650 件が表示されることを確認 795 | SELECT COUNT(*) FROM olist_raw.order_items; 796 | ``` 797 | 798 | (5) Databricks SQL ではクエリに名前を付けて保存することができます。`Create orders & order_items table` などと名前を付けて **[保存]** をクリックします。 799 | 800 | ![](images/access-dbsql-adls-part1/dbsql-access-8.jpg) 801 | 802 | ### **🎉 まとめ** 803 | この章では、Databricks SQL から ADLS Gen2 に接続し、前の章で配置した CSV ファイル群に対して SQL クエリを実行しました。また、ストレージ アカウントのアカウント キーを Databricks SQL で直接利用して認証を行いました。次の章に進みましょう。 804 | 805 | ## Databricks SQL から ADLS Gen2 への接続 #2 806 | Duration: 00:20:00 807 | 808 | この章では、ストレージ アカウントのアカウント キーを Azure Key Vault にシークレットとして登録します。Databricks SQL から Key Vault に登録されたシークレットをシークレット スコープを経由して参照し、ADLS Gen2 上の CSV ファイル群に対して SQL クエリを実行します。 809 | 810 | 820 | 821 | ### **1. Key Vault へのシークレットの登録** 822 | (1) Azure ポータルにアクセスし、ワークショップで利用するリソース グループを選択します。リソース グループから自身が利用する Key Vault (日本語の場合はキー コンテナー) を選択します。 823 | 824 | (2) 左側メニューの **[シークレット]** を選択した後、画面上部の **[+ 生成/インポート]** をクリックします。 825 | 826 | ![](images/access-dbsql-adls-part2/kv-secret-1.jpg) 827 | 828 | (3) シークレットの作成画面で以下の項目を設定 (他の項目は変更不要) し、 **[作成]** をクリックします。 829 | 830 | **項目** | **設定値** 831 | --- | --- 832 | 名前 | 任意の名前を入力します。このワークショップでは **`secret-storage-account-key`** とします。 833 | シークレット値 | ストレージ アカウントのアカウント キーを貼り付けます。 834 | 835 | ![](images/access-dbsql-adls-part2/kv-secret-2.jpg) 836 | 837 | ### **2. Databricks のシークレット スコープの作成** 838 | (1) Databricks のシークレット スコープの作成画面 `https://{my-databricks-workspace-url}#secrets/createScope` にアクセスします。 839 | 840 | - `{my-databricks-workspace-url}` は自身の Databricks ワークスペースの URL に置き換えてください。 841 | - 例: `https://adb-1234567890.1.azuredatabricks.net#secrets/createScope` 842 | 843 | (2) Databricks のシークレット スコープの作成画面で以下の項目を設定し、 **[Create]** をクリックします。 844 | 845 | **項目** | **設定値** 846 | --- | --- 847 | Scope Name | 任意の名前を入力します。このワークショップでは **`my-secret-scope`** とします。 848 | Manage Principal | **`Creator`** を選択します。 849 | DNS Name | Key Vault の左側メニューの **[プロパティ]** > **[コンテナーの URI]** の値をコピーして貼り付けます。 850 | Resource ID | Key Vault の左側メニューの **[プロパティ]** > **[リソース ID]** の値をコピーして貼り付けます。 851 | 852 | ![](images/access-dbsql-adls-part2/secret-scope-1.jpg) 853 | 854 | (3) 以下のようなダイアログが表示されたらシークレット スコープの作成は完了です。**[OK]** をクリックします。Web ブラウザのこのタブは閉じても構いません。 855 | 856 | ![](images/access-dbsql-adls-part2/secret-scope-2.jpg) 857 | 858 | ### **3. Databricks SQL ウェアハウスの設定とクエリの実行** 859 | (1) Databricks SQL にアクセスし、画面右上のユーザー名を選択し、**[SQL 管理コンソール]** > **[SQL ウェアハウスの設定]** を選択します。 860 | 861 | (2) データ アクセス設定の現在の記述は削除した上で、以下のスニペットをコピー & ペーストし、`{storage-account}` を以前の章で作成したストレージ アカウント名に置き換えます。画面下部の **[変更を保存]** をクリックします。これにより SQL ウェアハウスが再起動されます。 862 | 863 | ``` 864 | spark.hadoop.fs.azure.account.key.{storage-account}.dfs.core.windows.net {{secrets/my-secret-scope/secret-storage-account-key}} 865 | ``` 866 | 867 | ![](images/access-dbsql-adls-part2/dbsql-1.jpg) 868 | 869 | (3) SQL ウェアハウスの再起動完了後、Databricks SQL の左側メニューの **[クエリ]** にアクセスし、以前の章で保存したクエリを開きます。 870 | 871 | ![](images/access-dbsql-adls-part2/dbsql-2.jpg) 872 | 873 | (4) クエリのうち適当な SELECT 文を選択して実行します。結果が返ってくれば、SQL ウェアハウスのデータ アクセス設定が正しく設定されていることが確認できます。 874 | 875 | ![](images/access-dbsql-adls-part2/dbsql-3.jpg) 876 | 877 | ### **🎉 まとめ** 878 | この章では、ストレージ アカウントのアカウント キーを Azure Key Vault にシークレットとして登録した後、Databricks SQL から Key Vault に登録されたシークレットをシークレット スコープを経由して参照し、ADLS Gen2 上の CSV ファイル群に対して SQL クエリを実行しました。次の章に進みましょう。 879 | 880 | ## Delta Lake 形式への変換 #1 (Orders) 881 | Duration: 00:40:00 882 | 883 | この章では、Azure Synapse Analytics のマッピング データ フローを用いて Orders の CSV ファイル (`olist_orders_dataset.csv`) を Delta Lake 形式に変換します。変換の前後で CSV 形式のデータと Delta Lake 形式のデータを Databricks SQL のクエリとデータ エクスプローラーで概観します。 884 | 885 | ### **🔎 データ変換の流れ** 886 | この章で実現するデータ変換の流れは以下の通りです。 887 | 888 | ![](images/enrich-orders/diagram-enrich-orders.jpg) 889 | 890 | ### **1. Databricks SQL による CSV データの概観** 891 | (1) Databricks SQL の左側メニューの **[データ]** にアクセスします。データ エクスプローラーと呼ばれる画面が表示されます。`olist_raw` データベースの `orders` テーブルの **[スキーマ]** を選択し、列名やデータ型を確認します。`order_id` がキー項目です。 892 | 893 | ![](images/enrich-orders/overview-data-1.jpg) 894 | 895 | (2) 続けて **[サンプル データ]** をクリックし、データの内容を確認します。 896 | 897 | ![](images/enrich-orders/overview-data-2.jpg) 898 | 899 | ### **2. マッピング データ フローによる Delta Lake 形式への変換** 900 | Azure Synapse Analytics のマッピング データ フローを用いて Orders の CSV ファイルを Delta Lake 形式に変換します。 901 | 902 | 具体的な手順として、Synapse Studio にてデータ フローのデバッグを有効化、データ フローとパイプラインを作成、パイプラインにデータ フロー アクティビティを定義してパイプラインを実行します。 903 | 904 | #### **データ フローの完成形** 905 | データ フローの完成形は以下キャプチャの通りです。ソース変換で ADLS Gen2 上の Orders の CSV ファイルを読み取り、行の変更変換を挟んで、シンク変換で ADLS Gen2 に Delta Lake 形式で出力します。 906 | 907 | ![](images/enrich-orders/data-flow-complete-picture.jpg) 908 | 909 | 914 | 915 | 930 | 931 | #### **2-1. データ フローのデバッグの有効化** 932 | まずはデバッグ用の Spark クラスターを起動します。これにより、各変換でデータがどのように変更されるかをプレビューしながら作業を行えるようになります。 933 | 934 | (1) Synapse スタジオで **[Develop]** ハブにアクセスした後、**[+]** ボタンをクリックし **[データ フロー]** を選択します。 935 | 936 | ![](images/enrich-orders/create-data-flow-1.jpg) 937 | 938 | (2) データ フローのプロパティで **[名前]** に `DataflowEnrichOrders` を入力します。作業領域を広くするため以下の画面キャプチャ内の赤枠で囲んだボタンをクリックしてプロパティを折りたたみます。 939 | 940 | ![](images/enrich-orders/create-data-flow-2.jpg) 941 | 942 | (3) **[データ フローのデバッグ]** のトグルをオンにします。 943 | 944 | ![](images/enrich-orders/data-flow-debug-1.jpg) 945 | 946 | (4) 以下のような確認のダイアログが出ますので **[OK]** をクリックします。通常 5 分程度でデバッグ用のクラスターの起動が完了します。起動の完了を待たずに次のステップに進みましょう。 947 | 948 | ![](images/enrich-orders/data-flow-debug-2.jpg) 949 | 950 | #### **2-2. データ フロー > ソース変換** 951 | (1) データ フローのキャンバス内の **[ソースの追加]** の下向き矢印をクリックし、**[ソースの追加]** を選択します。 952 | 953 | ![](images/enrich-orders/create-data-flow-3.jpg) 954 | 955 | (2) ソース変換をクリックし、画面下部に表示された **[ソースの設定]** タブを開き、以下の項目を設定します。 956 | 957 | **項目** | **設定値** 958 | --- | --- 959 | ソースの種類 | **`インライン`** を選択します。 960 | インライン データセットの種類 | **`DelimitedText`** を選択します。 961 | リンク サービス | **`{Synapse ワークスペース名}-WorkspaceDefaultStorage`** を選択します。 962 | 963 | ![](images/enrich-orders/create-data-flow-4.jpg) 964 | 965 | (3) 続いて **[ソースのオプション]** タブを開き、以下の項目を設定します。 966 | 967 | **項目** | **設定値** 968 | --- | --- 969 | ファイル パス | コンテナ名に **`olist-brazilian-ecommerce`**、フォルダ名に **`raw`**、ファイル名に **`olist_orders_dataset.csv`** を入力します。(「参照」からファイルを選択する方法でも OK です) 970 | 先頭行をヘッダーとして | チェックします。 971 | 972 | ![](images/enrich-orders/create-data-flow-5.jpg) 973 | 974 | (4) 続いて **[プロジェクション]** タブを開き、**[スキーマのインポート]** をクリックします。この操作を完了するにはデータ フローのデバッグ用クラスターが起動している必要があります。 975 | 976 | ![](images/enrich-orders/create-data-flow-6.jpg) 977 | 978 | (5) スキーマのインポート動作の画面では何も入力せずに **[インポート]** をクリックします。 979 | 980 | ![](images/enrich-orders/create-data-flow-7.jpg) 981 | 982 | (6) スキーマのインポートが完了するまで待機します。完了すると以下のように表示されます。 983 | 984 | ![](images/enrich-orders/create-data-flow-8.jpg) 985 | 986 | (7) 続いて **[データのプレビュー]** タブを開き、**[最新の情報に更新]** をクリックします。完了すると以下のように表示されます。 987 | 988 | ![](images/enrich-orders/create-data-flow-9.jpg) 989 | 990 | ソース変換の編集はこれで完了です。 991 | 992 | #### **2-3. データ フロー > 行の変更変換** 993 | (1) ソース変換の後ろに「行の変更」変換を追加します。 994 | 995 | ![](images/enrich-orders/create-data-flow-10.jpg) 996 | 997 | (2) 行の変更変換をクリックし、画面下部に表示された **[行の変更の設定]** タブを開き、以下の項目を設定します。 998 | 999 | **項目** | **設定値** 1000 | --- | --- 1001 | 行の変更条件 | **`次の場合にアップサートする`** を選択し、値に **`true()`** を入力します。 1002 | 1003 | ![](images/enrich-orders/create-data-flow-11.jpg) 1004 | 1005 | 行の変更変換の編集はこれで完了です。 1006 | 1007 | #### **2-4. データ フロー > シンク変換** 1008 | (1) 行の変更変換の後ろにシンク変換を追加します。 1009 | 1010 | ![](images/enrich-orders/create-data-flow-12.jpg) 1011 | 1012 | (2) シンク変換をクリックし、画面下部に表示された **[シンク]** タブを開き、以下の項目を設定します。 1013 | 1014 | **項目** | **設定値** 1015 | --- | --- 1016 | シンクの種類 | **`インライン`** を選択します。 1017 | インライン データセットの種類 | **`Delta`** を選択します。 1018 | リンク サービス | **`{Synapse ワークスペース名}-WorkspaceDefaultStorage`** を選択します。 1019 | 1020 | ![](images/enrich-orders/create-data-flow-13.jpg) 1021 | 1022 | (3) 続いて **[設定]** タブを開き、以下の項目を設定します。 1023 | 1024 | **項目** | **設定値** 1025 | --- | --- 1026 | フォルダーのパス | コンテナ名に **`olist-brazilian-ecommerce`**、フォルダー名に **`enriched/orders/`** を入力します。 1027 | 更新方法 | **`アップサートを許可`** を選択します。 1028 | キー列 | **`order_id`** を選択します。 1029 | デルタ オプション > 自動圧縮 | チェックします。 1030 | デルタ オプション > 書き込みの最適化 | チェックします。 1031 | 1032 | ![](images/enrich-orders/create-data-flow-14.jpg) 1033 | 1034 | シンク変換およびデータ フローの編集はこれで完了です。発行を行っておきましょう。 1035 | 1036 | #### **2-5. パイプラインの作成と実行** 1037 | 最後にデータ フロー アクティビティを含むパイプラインを作成した後、パイプラインを実行します。 1038 | 1039 | (1) Synapse スタジオで **[Integrate]** ハブにアクセスした後、**[+]** ボタンをクリックし、**[パイプライン]** を選択します。 1040 | 1041 | ![](images/enrich-orders/create-pipeline-1.jpg) 1042 | 1043 | (2) パイプラインのプロパティで **[名前]** に `PipelineEnrichOrders` を入力します。作業領域を広くするため以下の画面キャプチャ内の赤枠で囲んだボタンをクリックしてプロパティを折りたたみます。 1044 | 1045 | ![](images/enrich-orders/create-pipeline-2.jpg) 1046 | 1047 | (3) パイプラインのアクティビティ一覧の **[移動と変換]** セクションを展開し **[データ フロー]** を右側のキャンバスにドラッグ & ドロップします。 1048 | 1049 | ![](images/enrich-orders/create-pipeline-3.jpg) 1050 | 1051 | (4) キャンバス上のデータ フロー アクティビティを選択し、**[設定]** タブを開き、以下の項目を設定します。 1052 | 1053 | **項目** | **設定値** 1054 | --- | --- 1055 | データ フロー | 先ほど作成した **`DataflowEnrichOrders`** を選択します。 1056 | 1057 | ![](images/enrich-orders/create-pipeline-4.jpg) 1058 | 1059 | (5) 以上でパイプラインの作成は完了です。画面上部の **[デバッグ]** をクリックします。パイプラインが実行されますので、リフレッシュ ボタンを定期的にクリックして表示を更新し、状態が `成功` になるまで待ちます。 1060 | 1061 | (6) 状態が `成功` になったらパイプラインの実行結果を確認します。以下の画面キャプチャ内の赤枠で囲んだアイコン (マウスを近づけると表示されます) をクリックします。 1062 | 1063 | ![](images/enrich-orders/create-pipeline-5.jpg) 1064 | 1065 | (7) パイプラインの実行結果が表示されます。書き込まれた行数が以下キャプチャの内容と一致することを確認します。 1066 | 1067 | ![](images/enrich-orders/create-pipeline-6.jpg) 1068 | 1069 | (8) Synapse スタジオの **[Data]** ハブを開き、以下キャプチャの通り、ADLS Gen2 に `_delta_log` フォルダと Parquet ファイルが作成されていることを確認します。 1070 | 1071 | ![](images/enrich-orders/create-pipeline-7.jpg) 1072 | 1073 | パイプラインの編集はこれで完了です。発行を行っておきましょう。 1074 | 1075 | ### **3. Databricks SQL による Delta Lake データの概観** 1076 | (1) Databricks SQL の左側メニューの **[SQL エディタ]** にアクセスします。以下のクエリをコピー & ペーストして LOCATION 句の `{storage-account-name}` を書き換え、**[すべてを実行]** を選択します。これらのクエリにより、`olist_enriched` データベースおよび `orders` テーブルが作成されます。 1077 | 1078 | ```sql 1079 | CREATE DATABASE IF NOT EXISTS olist_enriched; 1080 | 1081 | CREATE TABLE IF NOT EXISTS olist_enriched.orders 1082 | LOCATION 'abfss://olist-brazilian-ecommerce@{storage-account-name}.dfs.core.windows.net/enriched/orders/'; 1083 | ``` 1084 | 1085 | (2) スキーマ ブラウザーに作成したデータベースとテーブルが表示されることを確認します。(データベース名が表示されない場合はリフレッシュ ボタンを選択して表示を更新します) 1086 | 1087 | (3) `olist_enriched.orders` テーブルに対して以下のクエリを 1 つずつ実行して、データ内容と件数が取得できることを確認します。 1088 | 1089 | ```sql 1090 | -- カウント結果として 99441 件が表示されることを確認 1091 | SELECT COUNT(*) FROM olist_enriched.orders; 1092 | 1093 | SELECT * FROM olist_enriched.orders; 1094 | ``` 1095 | 1096 | ![](images/enrich-orders/check-delta-lake-1.jpg) 1097 | 1098 | (5) クエリについて `Create enriched orders table` などと名前を付けて **[保存]** を選択します。 1099 | 1100 | ### **🎉 まとめ** 1101 | この章では、Azure Synapse Analytics のマッピング データ フローを用いて Orders の CSV ファイル (`olist_orders_dataset.csv`) を Delta Lake 形式に変換しました。変換の前後で CSV 形式のデータと Delta Lake 形式のデータを Databricks SQL のクエリとデータ エクスプローラーで概観しました。次の章に進みましょう。 1102 | 1103 | ## Delta Lake 形式への変換 #2 (Order Items) 1104 | Duration: 00:20:00 1105 | 1106 | この章では、Azure Synapse Analytics のマッピング データ フローを用いて Orders Items の CSV ファイル (`olist_order_items_dataset.csv`) を Delta Lake 形式に変換します。変換の前後で CSV 形式のデータと Delta Lake 形式のデータを Databricks SQL のクエリとデータ エクスプローラーで概観します。 1107 | 1108 | ### **🔎 データ変換の流れ** 1109 | この章で実現するデータ変換の流れは以下の通りです。 1110 | 1111 | ![](images/enrich-order-items/diagram-enrich-order-items.jpg) 1112 | 1113 | ### **1. Databricks SQL による CSV データの概観** 1114 | (1) Databricks SQL の左側メニューの **[データ]** にアクセスします。データ エクスプローラーで `olist_raw` データベースの `order_items` テーブルの **[スキーマ]** を選択し、列名やデータ型を確認します。`order_id` と `order_item_id` がキー項目です。 1115 | 1116 | ![](images/enrich-order-items/overview-data-1.jpg) 1117 | 1118 | (2) 続けて **[サンプル データ]** をクリックし、データの内容を確認します。 1119 | 1120 | ![](images/enrich-order-items/overview-data-2.jpg) 1121 | 1122 | ### **2. マッピング データ フローによる Delta Lake 形式への変換** 1123 | Azure Synapse Analytics のマッピング データ フローを用いて Order Items の CSV ファイルを Delta Lake 形式に変換します。 1124 | 1125 | 具体的な手順として、前の章で作成した Orders のデータ フローを複製して編集、パイプラインを作成、パイプラインにデータ フロー アクティビティを定義してパイプラインを実行します。 1126 | 1127 | #### **データ フローの完成形** 1128 | データ フローの完成形は以下キャプチャの通りです。前章の Orders と同じ変換を利用します。 1129 | 1130 | ![](images/enrich-order-items/data-flow-complete-picture.jpg) 1131 | 1132 | #### **2-1. データ フローの複製** 1133 | (1) Synapse スタジオで **[Develop]** ハブにアクセスした後、前章で作成したデータ フロー `DataflowEnrichOrders` を右クリックし **[複製]** を選択します。 1134 | 1135 | ![](images/enrich-order-items/create-data-flow-1.jpg) 1136 | 1137 | (2) データ フローのプロパティで **[名前]** に `DataflowEnrichOrderItems` を入力します。作業領域を広くするため以下の画面キャプチャ内の赤枠で囲んだボタンをクリックしてプロパティを折りたたみます。 1138 | 1139 | ![](images/enrich-order-items/create-data-flow-2.jpg) 1140 | 1141 | #### **2-2. データ フロー > ソース変換** 1142 | (1) ソース変換をクリックし、**[ソースのオプション]** タブを開き、以下の項目を設定します。 1143 | 1144 | **項目** | **設定値** 1145 | --- | --- 1146 | ファイル パス | コンテナ名に **`olist-brazilian-ecommerce`**、フォルダー名に **`raw`**、ファイル名に **`olist_order_items_dataset.csv`** を入力します。 1147 | 1148 | ![](images/enrich-order-items/create-data-flow-3.jpg) 1149 | 1150 | (2) 続いて **[プロジェクション]** タブを開き、**[スキーマをクリア]** をクリックします。その後、**[スキーマのインポート]** をクリックします。 1151 | 1152 | ![](images/enrich-order-items/create-data-flow-4.jpg) 1153 | 1154 | (3) スキーマのインポート動作の画面では何も入力せずに **[インポート]** をクリックし、スキーマのインポートが完了するまで待機します。 1155 | 1156 | (4) 続いて **[データのプレビュー]** タブを開き、**[最新の情報に更新]** をクリックします。完了すると以下のように表示されます。 1157 | 1158 | ![](images/enrich-order-items/create-data-flow-5.jpg) 1159 | 1160 | ソース変換の編集はこれで完了です。 1161 | 1162 | #### **2-3. データ フロー > 行の変更変換** 1163 | 行の変更変換は編集不要です。 1164 | 1165 | #### **2-4. データ フロー > シンク変換** 1166 | (1) シンク変換をクリックし、**[設定]** タブを開き、以下の項目を設定します。 1167 | 1168 | **項目** | **設定値** 1169 | --- | --- 1170 | フォルダーのパス | コンテナ名に **`olist-brazilian-ecommerce`**、フォルダー名に **`enriched/order_items/`** を入力します。 1171 | キー列 | **`order_id`** と **`order_item_id`** を選択します。 1172 | 1173 | ![](images/enrich-order-items/create-data-flow-6.jpg) 1174 | 1175 | シンク変換およびデータ フローの編集はこれで完了です。発行を行っておきましょう。 1176 | 1177 | #### **2-5. パイプラインの作成と実行** 1178 | 最後にデータ フロー アクティビティを含むパイプラインを作成した後、パイプラインを実行します。 1179 | 1180 | 1) Synapse スタジオで **[Integrate]** ハブにアクセスした後、**[+]** ボタンをクリックし、**[パイプライン]** を選択します。 1181 | 1182 | 2) パイプラインのプロパティで **[名前]** に `PipelineEnrichOrderItems` を入力します。 1183 | 1184 | 3) パイプラインのアクティビティ一覧の **[移動と変換]** セクションを展開し **[データ フロー]** を右側のキャンバスにドラッグ & ドロップします。 1185 | 1186 | 4) キャンバス上のデータ フロー アクティビティを選択し、**[設定]** タブを開き、以下の項目を設定します。 1187 | 1188 | **項目** | **設定値** 1189 | --- | --- 1190 | データ フロー | 先ほど作成した **`DataflowEnrichOrderItems`** を選択します。 1191 | 1192 | ![](images/enrich-order-items/create-pipeline-1.jpg) 1193 | 1194 | 5) 以上でパイプラインの作成は完了です。画面上部の **[デバッグ]** をクリックします。パイプラインが実行されますので、リフレッシュ ボタンを定期的にクリックして表示を更新し、状態が `成功` になるまで待ちます。 1195 | 1196 | 6) 状態が `成功` になったらパイプラインの実行結果を確認します。書き込まれた行数が以下キャプチャの内容と一致することを確認します。 1197 | 1198 | ![](images/enrich-order-items/create-pipeline-2.jpg) 1199 | 1200 | 7) Synapse スタジオの **[Data]** ハブを開き、以下キャプチャの通り、ADLS Gen2 に `_delta_log` フォルダと Parquet ファイルが作成されていることを確認します。 1201 | 1202 | ![](images/enrich-order-items/create-pipeline-3.jpg) 1203 | 1204 | パイプラインの編集はこれで完了です。発行を行っておきましょう。 1205 | 1206 | ### **3. Databricks SQL による Delta Lake データの概観** 1207 | (1) Databricks SQL の左側メニューの **[SQL エディタ]** にアクセスします。以下のクエリをコピー & ペーストして LOCATION 句の `{storage-account-name}` を書き換え、**[すべてを実行]** をクリックします。これらのクエリにより、`olist_enriched` データベースおよび `order_items` テーブルが作成されます。 1208 | 1209 | ```sql 1210 | CREATE DATABASE IF NOT EXISTS olist_enriched; 1211 | 1212 | CREATE TABLE IF NOT EXISTS olist_enriched.order_items 1213 | LOCATION 'abfss://olist-brazilian-ecommerce@{storage-account-name}.dfs.core.windows.net/enriched/order_items/'; 1214 | ``` 1215 | 1216 | (2) スキーマ ブラウザーに作成したデータベースとテーブルが表示されることを確認します。(データベース名が表示されない場合はリフレッシュ ボタンをクリックして表示を更新します) 1217 | 1218 | (3) `olist_enriched.order_items` テーブルに対して以下のクエリを 1 つずつ実行して、データ内容と件数が取得できることを確認します。 1219 | 1220 | ```sql 1221 | -- カウント結果として 112650 件が表示されることを確認 1222 | SELECT COUNT(*) FROM olist_enriched.order_items; 1223 | 1224 | SELECT * FROM olist_enriched.order_items; 1225 | ``` 1226 | 1227 | ![](images/enrich-order-items/check-delta-lake-1.jpg) 1228 | 1229 | (4) クエリについて `Create enriched order_items table` などと名前を付けて **[保存]** を選択します。 1230 | 1231 | ### **🎉 まとめ** 1232 | この章では、Azure Synapse Analytics のマッピング データ フローを用いて Orders Items の CSV ファイル (`olist_order_items_dataset.csv`) を Delta Lake 形式に変換しました。変換の前後で CSV 形式のデータと Delta Lake 形式のデータを Databricks SQL のクエリとデータ エクスプローラーで概観しました。 1233 | 1234 | 休憩をあまり取らずに進めている場合はこの辺りで少し休憩してから、次の章に進みましょう。 1235 | 1236 | ## 日別の注文金額の集計処理 1237 | Duration: 00:30:00 1238 | 1239 | この章では、Azure Synapse Analytics のマッピング データ フローを用いて Orders と Order Items の Delta Lake 形式のデータを元に日別の注文金額の集計を行い、Delta Lake 形式で出力します。その後、Databricks SQL のクエリとデータ エクスプローラーで結果を概観します。 1240 | 1241 | ### **🔎 データ変換の流れ** 1242 | この章で実現するデータ変換の流れは以下の通りです。 1243 | 1244 | ![](images/curate-daily-order-amounts/diagram-curate-daily-order-amounts.jpg) 1245 | 1246 | ### **1. マッピング データ フローによる集計処理** 1247 | 具体的な手順として、Synapse Studio にてデータ フローとパイプラインを作成、パイプラインにデータ フロー アクティビティを定義してパイプラインを実行します。 1248 | 1249 | #### **データ フローの完成形** 1250 | データ フローの完成形は以下キャプチャの通りです。一つ目のソース変換で ADLS Gen2 上の Orders の Delta Lake のデータを読み取り、二つ目のソース変換で ADLS Gen2 上の Order Items の Delta Lake のデータを読み取ります。結合変換で Orders と Order Items を結合、集計変換で購入日 (`order_purchase_date`) ごとの金額を集計し、行の変更変換を挟んでシンク変換で ADLS Gen2 に Delta Lake 形式で出力します。 1251 | 1252 | ![](images/curate-daily-order-amounts/data-flow-complete-picture.jpg) 1253 | 1254 | #### **1-1. データ フローの作成** 1255 | 1) Synapse スタジオで **[Develop]** ハブにアクセスした後、**[+]** ボタンをクリックし **[データ フロー]** を選択します。 1256 | 1257 | 2) データ フローのプロパティで **[名前]** に `DataflowCurateDailyOrderAmounts` を入力します。 1258 | 1259 | #### **1-2. データ フロー > ソース変換 (Orders)** 1260 | 1) データ フローのキャンバス内の **[ソースの追加]** の下向き矢印をクリックし、**[ソースの追加]** を選択します。 1261 | 1262 | 2) ソース変換をクリックし、画面下部に表示された **[ソースの設定]** タブを開き、以下の項目を設定します。 1263 | 1264 | **項目** | **設定値** 1265 | --- | --- 1266 | 出力ストリーム名 | **`orders`** を入力します。 1267 | ソースの種類 | **`インライン`** を選択します。 1268 | インライン データセットの種類 | **`Delta`** を選択します。 1269 | リンク サービス | **`{Synapse ワークスペース名}-WorkspaceDefaultStorage`** を選択します。 1270 | 1271 | ![](images/curate-daily-order-amounts/create-data-flow-1.jpg) 1272 | 1273 | 3) 続いて **[ソースのオプション]** タブを開き、以下の項目を設定します。 1274 | 1275 | **項目** | **設定値** 1276 | --- | --- 1277 | フォルダーのパス | コンテナ名に **`olist-brazilian-ecommerce`**、フォルダー名に **`enriched/orders`** を入力します。 1278 | 1279 | ![](images/curate-daily-order-amounts/create-data-flow-2.jpg) 1280 | 1281 | 4) 続いて **[プロジェクション]** タブを開き、**[スキーマのインポート]** をクリックします。スキーマのインポート動作の画面では何も入力せずに **[インポート]** をクリックし、スキーマのインポートが完了するまで待機します。 1282 | 1283 | 5) 続いて **[データのプレビュー]** タブを開き、**[最新の情報に更新]** をクリックします。データが表示されることを確認します。 1284 | 1285 | ![](images/curate-daily-order-amounts/create-data-flow-3.jpg) 1286 | 1287 | #### **1-3. データ フロー > ソース変換 (Order Items)** 1288 | 1) データ フローのキャンバス内で Orders 用ソース変換の下に表示されている **[ソースの追加]** の下向き矢印をクリックし、**[ソースの追加]** を選択します。 1289 | 1290 | ![](images/curate-daily-order-amounts/create-data-flow-4.jpg) 1291 | 1292 | 2) ソース変換をクリックし、画面下部に表示された **[ソースの設定]** タブを開き、以下の項目を設定します。 1293 | 1294 | **項目** | **設定値** 1295 | --- | --- 1296 | 出力ストリーム名 | **`orderItems`** を入力します。 1297 | ソースの種類 | **`インライン`** を選択します。 1298 | インライン データセットの種類 | **`Delta`** を選択します。 1299 | リンク サービス | **`{Synapse ワークスペース名}-WorkspaceDefaultStorage`** を選択します。 1300 | 1301 | 3) 続いて **[ソースのオプション]** タブを開き、以下の項目を設定します。 1302 | 1303 | **項目** | **設定値** 1304 | --- | --- 1305 | フォルダーのパス | コンテナ名に **`olist-brazilian-ecommerce`**、フォルダー名に **`enriched/order_items`** を入力します。 1306 | 1307 | 4) 続いて **[プロジェクション]** タブを開き、**[スキーマのインポート]** をクリックします。スキーマのインポート動作の画面では何も入力せずに **[インポート]** をクリックし、スキーマのインポートが完了するまで待機します。 1308 | 1309 | 5) 続いて **[データのプレビュー]** タブを開き、**[最新の情報に更新]** をクリックします。データが表示されることを確認します。 1310 | 1311 | ![](images/curate-daily-order-amounts/create-data-flow-5.jpg) 1312 | 1313 | #### **1-4. データ フロー > 結合変換** 1314 | 1) Orders 用のソース変換の後ろに「結合」変換を追加します。 1315 | 1316 | ![](images/curate-daily-order-amounts/create-data-flow-6.jpg) 1317 | 1318 | 2) 結合変換をクリックし、画面下部に表示された **[結合の設定]** タブを開き、以下の項目を設定します。 1319 | 1320 | **項目** | **設定値** 1321 | --- | --- 1322 | 左ストリーム | **`orders`** を選択します。 1323 | 右ストリーム | **`orderItems`** を選択します。 1324 | 結合の種類 | **`内部`** を選択します。 1325 | 結合条件 > 左: orders の列 | **`order_id`** を選択します。 1326 | 結合条件 > 右: orderItems の列 | **`order_id`** を選択します。 1327 | 1328 | ![](images/curate-daily-order-amounts/create-data-flow-7.jpg) 1329 | 1330 | 3) 続いて **[データのプレビュー]** タブを開き、**[最新の情報に更新]** をクリックします。データが表示されることを確認します。 1331 | 1332 | ![](images/curate-daily-order-amounts/create-data-flow-8.jpg) 1333 | 1334 | #### **1-5. データ フロー > 集約変換** 1335 | 1) 結合変換の後ろに「集約」変換を追加します。 1336 | 1337 | ![](images/curate-daily-order-amounts/create-data-flow-9.jpg) 1338 | 1339 | 2) 集約変換をクリックし、画面下部に表示された **[集計の設定]** タブを開き、**[列の選択]** の下の **[式ビルダ―を開く]** をクリックします。 1340 | 1341 | ![](images/curate-daily-order-amounts/create-data-flow-10.jpg) 1342 | 1343 | 3) データフロー式ビルダー画面で以下の項目を設定し、**[保存して終了]** をクリックします。(この操作により `order_purchase_timestamp` 列から `order_purchase_date` という Date 型の列が生成されます) 1344 | 1345 | **項目** | **設定値** 1346 | --- | --- 1347 | 列名 | **`order_purchase_date`** を入力します。 1348 | 式 | **`toDate(order_purchase_timestamp)`** を入力します。 1349 | 1350 | ![](images/curate-daily-order-amounts/create-data-flow-11.jpg) 1351 | 1352 | 4) **[集計の設定]** 画面に戻るので、**[集約]** を選択し、以下の項目を設定します。(この操作により `price` (料金) と `freight_value` (送料) を足し合わせた `sales_amount` という Double 型の列が生成されます) 1353 | 1354 | **項目** | **設定値** 1355 | --- | --- 1356 | 列 | **`sales_amount`** を入力します。 1357 | 式 | **`sum(price + freight_value)`** を入力します。 1358 | 1359 | ![](images/curate-daily-order-amounts/create-data-flow-12.jpg) 1360 | 1361 | 5) 続いて **[データのプレビュー]** タブを開き、**[最新の情報に更新]** をクリックします。データが表示されることを確認します。 1362 | 1363 | ![](images/curate-daily-order-amounts/create-data-flow-13.jpg) 1364 | 1365 | #### **1-6. データ フロー > 行の変更変換** 1366 | 1) 集約変換の後ろに行の変更変換を追加します。 1367 | 1368 | 2) 行の変更変換をクリックし、画面下部に表示された **[行の変更の設定]** タブを開き、以下の項目を設定します。 1369 | 1370 | **項目** | **設定値** 1371 | --- | --- 1372 | 行の変更条件 | **`次の場合にアップサートする`** を選択し、値に **`true()`** を入力します。 1373 | 1374 | #### **1-7. データ フロー > シンク変換** 1375 | 1) 行の変更変換の後ろにシンク変換を追加します。 1376 | 1377 | 2) シンク変換をクリックし、画面下部に表示された **[シンク]** タブを開き、以下の項目を設定します。 1378 | 1379 | **項目** | **設定値** 1380 | --- | --- 1381 | シンクの種類 | **`インライン`** を選択します。 1382 | インライン データセットの種類 | **`Delta`** を選択します。 1383 | リンク サービス | **`{Synapse ワークスペース名}-WorkspaceDefaultStorage`** を選択します。 1384 | 1385 | 3) 続いて **[設定]** タブを開き、以下の項目を設定します。 1386 | 1387 | **項目** | **設定値** 1388 | --- | --- 1389 | フォルダーのパス | コンテナ名に **`olist-brazilian-ecommerce`**、フォルダー名に **`curated/daily_order_amounts/`** を入力します。 1390 | 更新方法 | **`アップサートを許可`** を選択します。 1391 | キー列 | **`order_purchase_date`** を選択します。 1392 | デルタ オプション > 自動圧縮 | チェックします。 1393 | デルタ オプション > 書き込みの最適化 | チェックします。 1394 | 1395 | ![](images/curate-daily-order-amounts/create-data-flow-14.jpg) 1396 | 1397 | データ フローの編集はこれで完了です。発行を行っておきましょう。 1398 | 1399 | #### **1-8. パイプラインの作成と実行** 1400 | 1) Synapse スタジオで **[Integrate]** ハブにアクセスした後、**[+]** ボタンをクリックし、**[パイプライン]** を選択します。 1401 | 1402 | 2) パイプラインのプロパティで **[名前]** に `PipelineCurateDailyOrderAmounts` を入力します。 1403 | 1404 | 3) パイプラインのアクティビティ一覧の **[移動と変換]** セクションを展開し **[データ フロー]** を右側のキャンバスにドラッグ & ドロップします。 1405 | 1406 | 4) キャンバス上のデータ フロー アクティビティを選択し、**[設定]** タブを開き、以下の項目を設定します。 1407 | 1408 | **項目** | **設定値** 1409 | --- | --- 1410 | データ フロー | 先ほど作成した **`DataflowCurateDailyOrderAmounts`** を選択します。 1411 | 1412 | ![](images/curate-daily-order-amounts/create-pipeline-1.jpg) 1413 | 1414 | 5) 以上でパイプラインの作成は完了です。画面上部の **[デバッグ]** をクリックします。パイプラインが実行されますので、リフレッシュ ボタンを定期的にクリックして表示を更新し、状態が `成功` になるまで待ちます。 1415 | 1416 | 6) 状態が `成功` になったらパイプラインの実行結果を確認します。書き込まれた行数が以下キャプチャの内容と一致することを確認します。 1417 | 1418 | ![](images/curate-daily-order-amounts/create-pipeline-2.jpg) 1419 | 1420 | 7) Synapse スタジオの **[Data]** ハブを開き、以下キャプチャの通り、ADLS Gen2 に `_delta_log` フォルダと Parquet ファイルが作成されていることを確認します。 1421 | 1422 | ![](images/curate-daily-order-amounts/create-pipeline-3.jpg) 1423 | 1424 | パイプラインの編集はこれで完了です。発行を行っておきましょう。 1425 | 1426 | ### **2. Databricks SQL による Delta Lake データの概観** 1427 | 1) Databricks SQL の左側メニューの **[SQL エディタ]** にアクセスします。以下のクエリをコピー & ペーストして LOCATION 句の `{storage-account-name}` を書き換え、**[すべてを実行]** をクリックします。これらのクエリにより、`olist_curated` データベースおよび `daily_order_amounts` テーブルが作成されます。 1428 | 1429 | ```sql 1430 | CREATE DATABASE IF NOT EXISTS olist_curated; 1431 | 1432 | CREATE TABLE IF NOT EXISTS olist_curated.daily_order_amounts 1433 | LOCATION 'abfss://olist-brazilian-ecommerce@{storage-account-name}.dfs.core.windows.net/curated/daily_order_amounts/'; 1434 | ``` 1435 | 1436 | 2) スキーマ ブラウザーに作成したデータベースとテーブルが表示されることを確認します。(データベース名が表示されない場合はリフレッシュ ボタンをクリックして表示を更新します) 1437 | 1438 | 3) `olist_curated.daily_order_amounts` テーブルに対して以下のクエリを 1 つずつ実行して、データ内容と件数が取得できることを確認します。 1439 | 1440 | ```sql 1441 | -- カウント結果として 616 件が表示されることを確認 1442 | SELECT COUNT(*) FROM olist_curated.daily_order_amounts; 1443 | 1444 | SELECT * FROM olist_curated.daily_order_amounts ORDER BY order_purchase_date; 1445 | ``` 1446 | 1447 | ![](images/curate-daily-order-amounts/check-data-lake-1.jpg) 1448 | 1449 | 4) クエリについて `Create daily_order_amounts table` などと名前を付けて **[保存]** を選択します。 1450 | 1451 | ### **🎉 まとめ** 1452 | この章では、Azure Synapse Analytics のマッピング データ フローを用いて Orders と Order Items の Delta Lake 形式のデータを元に日別の注文金額の集計を行い、Delta Lake 形式で出力しました。その後、Databricks SQL のクエリとデータ エクスプローラーで結果を概観しました。次の章に進みましょう。 1453 | 1454 | ## Databricks SQL のダッシュボードによる可視化 1455 | Duration: 00:40:00 1456 | 1457 | この章では、前章で作成した日別の注文金額の集計結果 (Daily Order Amounts) について、Databricks SQL のダッシュボードで可視化します。 1458 | 1459 | ### **ダッシュボードの完成形** 1460 | ダッシュボードの完成形は以下キャプチャの通りです。このダッシュボードは、日別の注文金額に関する 3 つのビジュアライゼーションと、日付範囲を絞り込むための 1 つのウィジェットを備えています。 1461 | 1462 | ![](images/visualize-with-dbsql/dashboard-complete-picture.jpg) 1463 | 1464 | 1479 | 1480 | ### **1. ダッシュボードの作成** 1481 | (1) Databricks SQL の左側メニューの **[ダッシュボード]** にアクセスし、**[ダッシュボードを作成]** をクリックします。 1482 | 1483 | ![](images/visualize-with-dbsql/create-dashboard-1.jpg) 1484 | 1485 | (2) 新規ダッシュボードのダイアログで `Daily Order Amounts Dashboard` と入力し **[保存]** をクリックします。 1486 | 1487 | ![](images/visualize-with-dbsql/create-dashboard-2.jpg) 1488 | 1489 | (3) 空のダッシュボードが作成されます。ダッシュボードの表示を更新する際に利用する SQL ウェアハウスとして `Starter Warehouse` を選択し **[編集完了]** をクリックします。 1490 | 1491 | ![](images/visualize-with-dbsql/create-dashboard-3.jpg) 1492 | 1493 | ### **2. クエリとビジュアライゼーションの作成 (カウンター)** 1494 | (1) Databricks SQL の左側メニューの **[SQL エディタ]** にアクセスし、**[新規クエリを作成する]** をクリックします。 1495 | 1496 | ![](images/visualize-with-dbsql/create-query-1-1.jpg) 1497 | 1498 | (2) クエリ名を `Daily Order Amounts - Total` に変更します。クエリ エディタに以下のスニペットを貼り付けます。画面下部に `Date Range` というクエリ パラメーターのウィジェットが表示されるのでキャプチャ赤枠で囲んだ歯車アイコンをクリックします。 1499 | 1500 | ```sql 1501 | SELECT 1502 | sum(sales_amount) AS total_sales_amount 1503 | FROM 1504 | olist_curated.daily_order_amounts 1505 | WHERE 1506 | order_purchase_date >= '{{ Date Range.start }}' 1507 | AND order_purchase_date < '{{ Date Range.end}}'; 1508 | ``` 1509 | 1510 | ![](images/visualize-with-dbsql/create-query-1-2.jpg) 1511 | 1512 | 1521 | 1522 | (3) クエリ パラメーターのウィジェットの編集画面で **[Type]** を `日付範囲` に変更し **[OK]** をクリックします。 1523 | 1524 | ![](images/visualize-with-dbsql/create-query-1-3.jpg) 1525 | 1526 | (4) これでクエリ パラメーターのウィジェットが日付範囲に変更されました。日付範囲の左側 (`start`) を `2016-01-01`、右側 (`end`) を `2019-01-01` にして **[変更を適用]** をクリックします。結果が更新されたことを確認します。 1527 | 1528 | ![](images/visualize-with-dbsql/create-query-1-4.jpg) 1529 | 1530 | (5) 画面下の `Results` の右横の **[+]** > **[可視化]** をクリックします。 1531 | 1532 | ![](images/visualize-with-dbsql/create-query-1-5.jpg) 1533 | 1534 | (6) ビジュアライゼーションの編集画面で以下の項目を設定し **[保存]** をクリックします。 1535 | 1536 | **項目** | **設定値** 1537 | --- | --- 1538 | (画面左上のビジュアライゼーション名) | **`Counter`** を入力します。 1539 | Visualization type | **`Counter`** を選択します。 1540 | Value column | **`total_sales_amount`** を選択します。 1541 | 1542 | ![](images/visualize-with-dbsql/create-query-1-6.jpg) 1543 | 1544 | (7) 画面下の `Counter` の右横の **[+]** > **[ダッシュボードに追加]** をクリックします。 1545 | 1546 | ![](images/visualize-with-dbsql/create-query-1-7.jpg) 1547 | 1548 | (8) 追加先のダッシュボードとして `Daily Order Amounts Dashboard` を選択し **[追加]** をクリックします。 1549 | 1550 | ![](images/visualize-with-dbsql/create-query-1-8.jpg) 1551 | 1552 | (9) Databricks SQL の左側メニューの **[ダッシュボード]** > `Daily Order Amounts Dashboard` にアクセスし、`Daily Order Amounts - Total` のビジュアライゼーションが追加されたことを確認します。 1553 | 1554 | ![](images/visualize-with-dbsql/create-query-1-9.jpg) 1555 | 1556 | ### **3. クエリとビジュアライゼーションの作成 (折れ線グラフとテーブル)** 1557 | 1558 | (1) Databricks SQL の **[SQL エディタ]** で新規クエリを作成します。前のセクションと同じ要領でクエリの編集を行います。 1559 | 1560 | - クエリ名を `Daily Order Amounts` に変更します 1561 | - クエリ エディタに以下のスニペットを貼り付けます 1562 | 1563 | ```sql 1564 | SELECT 1565 | * 1566 | FROM 1567 | olist_curated.daily_order_amounts 1568 | WHERE 1569 | order_purchase_date >= '{{ Date Range.start }}' 1570 | AND order_purchase_date < '{{ Date Range.end}}' 1571 | ORDER BY 1572 | order_purchase_date; 1573 | ``` 1574 | 1575 | - 画面下部に `Date Range` というクエリ パラメーターのウィジェットが表示されるので歯車アイコンをクリックします 1576 | - クエリ パラメーターのウィジェットの編集画面で **[Type]** を `日付範囲` に変更し **[OK]** をクリックします 1577 | - 日付範囲の左側 (`start`) を `2016-01-01`、右側 (`end`) を `2019-01-01` にして **[変更を適用]** をクリックし、結果が更新されたことを確認します 1578 | 1579 | ![](images/visualize-with-dbsql/create-query-2-1.jpg) 1580 | 1581 | (2) 画面下の `Results` の右横の **[+]** > **[可視化]** をクリックします。ビジュアライゼーションの編集画面で以下の項目を設定し **[保存]** をクリックします。 1582 | 1583 | **項目** | **設定値** 1584 | --- | --- 1585 | (画面左上のビジュアライゼーション名) | **`Line`** を入力します。 1586 | Visualization type | **`Line`** を選択します。 1587 | 1588 | ![](images/visualize-with-dbsql/create-query-2-2.jpg) 1589 | 1590 | (3) 画面下の `Line` の右横の **[+]** > **[ダッシュボードに追加]** をクリックし、追加先のダッシュボードとして `Daily Order Amounts Dashboard` を選択します。 1591 | 1592 | ![](images/visualize-with-dbsql/create-query-2-3.jpg) 1593 | 1594 | (4) ダッシュボード `Daily Order Amounts Dashboard` にアクセスし、折れ線グラフが追加されたことを確認します。 1595 | 1596 | ![](images/visualize-with-dbsql/create-query-2-4.jpg) 1597 | 1598 | (5) クエリ `Daily Order Amounts` の画面下の `Results` の右横の **[+]** > **[ダッシュボードに追加]** を選択し、追加先のダッシュボードとして `Daily Order Amounts Dashboard` を選択します。 1599 | 1600 | ![](images/visualize-with-dbsql/create-query-2-5.jpg) 1601 | 1602 | (6) ダッシュボード `Daily Order Amounts Dashboard` にアクセスし、表が追加されたことを確認します。画面右上の三点をクリックし **[編集]** をクリックします。 1603 | 1604 | ![](images/visualize-with-dbsql/create-query-2-6.jpg) 1605 | 1606 | (7) 表 (`Results`) のビジュアライゼーションの右上の三点をクリックし **[ウィジェット設定を変更]** を選択します。 1607 | 1608 | ![](images/visualize-with-dbsql/create-query-2-7.jpg) 1609 | 1610 | (8) ウィジェット設定画面で **[パネルの高さを動的に調整]** にチェックし **[Save]** をクリックします。 1611 | 1612 | ![](images/visualize-with-dbsql/create-query-2-8.jpg) 1613 | 1614 | (9) ビジュアライゼーションの配置と大きさを以下キャプチャのように変更します。左上の日付範囲のウィジェットの左側 (`start`) を `2018-01-01`、右側 (`end`) を `2019-01-01` にして **[変更を適用]** をクリックし、結果が更新されることを確認します。 1615 | 1616 | ![](images/visualize-with-dbsql/create-query-2-9.jpg) 1617 | 1618 | (10) **[編集完了]** をクリックします。 1619 | 1620 | ![](images/visualize-with-dbsql/create-query-2-10.jpg) 1621 | 1622 | ### **🎉 まとめ** 1623 | この章では、前章で作成した日別の注文金額の集計結果 (Daily Order Amounts) について、Databricks SQL のダッシュボードで可視化しました。次の章に進みましょう。 1624 | 1625 | ## Power BI Desktop による可視化 1626 | Duration: 00:30:00 1627 | 1628 | この章では、前章で作成した日別の注文金額の集計結果 (Daily Order Amounts) について、Power BI Desktop のレポートで可視化します。 1629 | 1630 | 1637 | 1638 | ### **レポートの完成形** 1639 | レポートの完成形は以下キャプチャの通りです。前章の Databrcisk SQL のダッシュボードとほとんど同じレイアウトのレポートを作成します。 1640 | 1641 | ![](images/visualize-with-pbi/report-complete-picture.jpg) 1642 | 1643 | ### **1. Power BI Desktop から Databricks SQL ウェアハウスへの接続** 1644 | Databricks SQL の画面から SQL ウェアハウスへの接続情報のみが定義された Power BI レポート用のファイル (拡張子 `pbids`) を数クリックでダウンロードできます。この PBIDS ファイルを使って SQL ウェアハウスに接続していきます。 1645 | 1646 | 1) Databricks SQL の **[SQL ウェアハウス]** のページにアクセスします。 1647 | 1648 | 2) `Starter Warehouse` をクリックし **[接続の詳細]** タブにアクセスします。 1649 | 1650 | 3) 画面下部にある **[Power BI]** のアイコンをクリックします。 1651 | 1652 | ![](images/visualize-with-pbi/access-pbi-1.jpg) 1653 | 1654 | 4) **[パートナーに接続]** が表示されるので **[接続ファイルをダウンロード]** をクリックします。 1655 | 1656 | ![](images/visualize-with-pbi/access-pbi-2.jpg) 1657 | 1658 | 5) PBIDS ファイルを開くための前提条件を確認するダイアログが表示されるので、前提条件を問題なく満たしている場合は **[閉じる]** をクリックします。 1659 | 1660 | ![](images/visualize-with-pbi/access-pbi-3.jpg) 1661 | 1662 | 6) ダウンロードされた PBIDS ファイルを開きます。Power BI Desktop が起動するはずです。 1663 | 1664 | 7) PBIDS ファイルの初回オープン時に以下キャプチャのような Azure Databricks 接続の認証情報を求めるダイアログが表示されます。個人用アクセス トークンなどが選べますが、ここでは Azure Active Directory を認証情報として用います。 1665 | 1666 | 8) Azure Active Directory のサインインが正常に完了したら **[接続]** をクリックします。 1667 | 1668 | ![](images/visualize-with-pbi/access-pbi-4.jpg) 1669 | 1670 | ### **2. Power BI Desktop でのレポート作成** 1671 | 日別の注文金額の集計結果 (Daily Order Amounts) を使って Power BI Desktop のレポートを作成します。 1672 | 1673 | 1) ナビゲーター画面で `daily_order_amounts` テーブルを選択して「読み込み」をクリックします。読み込みが完了するまで待ちます。(通常数十秒~ 1 分で完了します) 1674 | 1675 | ![](images/visualize-with-pbi/create-report-1.jpg) 1676 | 1677 | 2) **[視覚化]** > **[カード]** をクリックします。キャンバスにカードの視覚化 (ビジュアライゼーション) が追加されます。 1678 | 1679 | ![](images/visualize-with-pbi/create-report-2.jpg) 1680 | 1681 | 3) キャンバス上のカードの視覚化を選択した上で **[フィールド]** > `daily_order_amounts` > `sales_amount` にチェックを入れます。カードの視覚化に `sales_amount` の合計が表示されます。 1682 | 1683 | ![](images/visualize-with-pbi/create-report-3.jpg) 1684 | 1685 | 4) キャンバスの何もないところをクリックしてカードの視覚化が選択されていない状態にした上で **[視覚化]** > **[テーブル]** をクリックします。キャンバスにテーブルの視覚化が追加されます。 1686 | 1687 | ![](images/visualize-with-pbi/create-report-4.jpg) 1688 | 1689 | 5) キャンバス上のテーブルの視覚化を選択した上で **[フィールド]** > `daily_order_amounts` > `order_purchase_date` と `sales_amount` にチェックを入れます。テーブルの視覚化に値が表示されます。 1690 | 1691 | ![](images/visualize-with-pbi/create-report-5.jpg) 1692 | 1693 | 6) キャンバス上の視覚化の並びを整理します。キャンバスの何もないところをクリックして視覚化が選択されていない状態にした上で **[視覚化]** > **[折れ線グラフ]** をクリックします。キャンバスに折れ線グラフの視覚化が追加されます。 1694 | 1695 | ![](images/visualize-with-pbi/create-report-6.jpg) 1696 | 1697 | 7) キャンバス上の折れ線グラフの視覚化を選択した上で **[フィールド]** > `daily_order_amounts` > `order_purchase_date` と `sales_amount` にチェックを入れます。折れ線グラフの視覚化が更新されます。 1698 | 1699 | ![](images/visualize-with-pbi/create-report-7.jpg) 1700 | 1701 | 8) キャンバスの何もないところをクリックして視覚化が選択されていない状態にした上で **[視覚化]** > **[スライサー]** をクリックします。キャンバスにスライサーの視覚化が追加されます。 1702 | 1703 | ![](images/visualize-with-pbi/create-report-8.jpg) 1704 | 1705 | 9) キャンバス上のスライサーの視覚化を選択した上で **[フィールド]** > `daily_order_amounts` > `order_purchase_date` にチェックを入れます。スライサーの視覚化が更新されます。 1706 | 1707 | ![](images/visualize-with-pbi/create-report-9.jpg) 1708 | 1709 | 10) キャンバス上の視覚化の並びを整理します。スライサーを動かしてレポートの表示が更新されることを確認します。 1710 | 1711 | ![](images/visualize-with-pbi/create-report-10.jpg) 1712 | 1713 | ### **🎉 まとめ** 1714 | この章では、前章で作成した日別の注文金額の集計結果 (Daily Order Amounts) について、Power BI Desktop のレポートで可視化しました。 1715 | 1716 | ワークショップの本編はこの章で終了です。以降の章は Appendix ですので、必要に応じて取り組んでみてください。長時間お疲れ様でした。 1717 | 1718 | ## [Appendix] Databricks SQL のクエリ履歴の確認 1719 | Duration: 00:10:00 1720 | 1721 | この章では、Databricks SQL のクエリ履歴の確認方法を学びます。 1722 | 1723 | 1) Databricks SQL の左側メニューの **[クエリ履歴]** にアクセスします。これまでに実行したクエリ履歴の一覧が表示されます。 1724 | 1725 | ![](images/dbsql-query-history/query-history-1.jpg) 1726 | 1727 | 2) 適当なクエリを選択します。画面右側にクエリの概要や期間、集計タスク時間などが表示されます。**[クエリ プロファイルを表示]** をクリックします。 1728 | 1729 | ![](images/dbsql-query-history/query-history-2.jpg) 1730 | 1731 | 3) すると画面左側にクエリ プロファイルのグラフ ビューが表示されます。より詳細な情報が見たい場合は画面右上の三点をクリックし **[Spark UI で開く]** をクリックします。 1732 | 1733 | ![](images/dbsql-query-history/query-history-3.jpg) 1734 | 1735 | 4) Spark UI が表示されますので、Spark 上でクエリがどのように実行されたかの詳細を見ることができます。 1736 | 1737 | ![](images/dbsql-query-history/query-history-4.jpg) 1738 | 1739 | 5) なお、キャッシュから結果が返されたクエリについては以下キャプチャのように、クエリ プロファイルは確認できない点に留意ください。 1740 | 1741 | ![](images/dbsql-query-history/query-history-5.jpg) 1742 | 1743 | 本章は以上です。 1744 | 1745 | ## [Appendix] Databricks ノートブックを用いた Delta Lake 形式への変換 1746 | Duration: 00:20:00 1747 | 1748 | この章では、分析対象のデータセットのうち Orders と Order Items **以外** のデータセットについて、Databricks ノートブックを使って CSV から Delta Lake 形式に変換します。 1749 | 1750 | ### **1. クラスターの作成** 1751 | 1) Databricks の Data Science & Engineering のペルソナの左側メニューの **[コンピューティング]** にアクセスし **[Personal Compute で作成]** をクリックします。 1752 | 1753 | ![](images/enrich-with-adb-notebook/create-cluster-1.jpg) 1754 | 1755 | 2) 新しいクラスターの作成画面で以下の項目を設定し **[クラスターを作成]** をクリックします。通常 5 分程度でクラスターの作成が完了します。完了を待たずに次のステップに進みましょう。 1756 | 1757 | **項目** | **設定値** 1758 | --- | --- 1759 | Databricks Runtime のバージョン | **`Runtime: 11.3 LTS (Scala 2.12, Spark 3.3.0)`** を選択します。 1760 | ノードタイプ | **`Standard_DS3_v2`** を選択します。 1761 | 非アクティブ状態が … 分継続した後に終了 | **`60`** 分に変更します。 1762 | 1763 | ![](images/enrich-with-adb-notebook/create-cluster-2.jpg) 1764 | 1765 | ### **2. リポジトリの追加** 1766 | 1) Databricks の Data Science & Engineering の左側メニューの **[リポジトリ]** にアクセスし **[リポジトリを追加]** をクリックします。 1767 | 1768 | ![](images/enrich-with-adb-notebook/add-repo-1.jpg) 1769 | 1770 | 2) リポジトリの追加画面で以下の項目を設定し **[リポジトリを作成]** をクリックします。 1771 | 1772 | **項目** | **設定値** 1773 | --- | --- 1774 | Git リポジトリの URL | **`https://github.com/microsoft/azure-databricks-sql-workshop-ja`** を入力します。 1775 | 1776 | ![](images/enrich-with-adb-notebook/add-repo-2.jpg) 1777 | 1778 | ### **3. ノートブックの実行** 1779 | 1) クローンした Git リポジトリ `azure-databricks-sql-workshop-ja` の `notebooks` > `Enrich Olist Datasets with ADB Notebook` を表示します。 1780 | 1781 | ![](images/enrich-with-adb-notebook/run-notebook-1.jpg) 1782 | 1783 | 2) 定数設定のセルの値について必要に応じて自身の環境に合わせて書き換えます。 1784 | 1785 | ![](images/enrich-with-adb-notebook/run-notebook-2.jpg) 1786 | 1787 | 3) **[接続]** をクリックし先ほど作成したクラスターを選択します。 1788 | 1789 | ![](images/enrich-with-adb-notebook/run-notebook-3.jpg) 1790 | 1791 | 4) **[すべてを実行]** をクリックします。 1792 | 1793 | ![](images/enrich-with-adb-notebook/run-notebook-4.jpg) 1794 | 1795 | 5) すべてのセルの実行が正常に完了することを確認します。 1796 | 1797 | ![](images/enrich-with-adb-notebook/run-notebook-5.jpg) 1798 | 1799 | 6) Databricks SQL のデータ エクスプローラーにアクセスし `olist_enriched.customers` などの Delta テーブルが作成されたことを確認します。 1800 | 1801 | ![](images/enrich-with-adb-notebook/run-notebook-6.jpg) 1802 | 1803 | 本章は以上です。 1804 | --------------------------------------------------------------------------------