diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e69fae97b..360481afe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,23 +23,4 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} preview-branch: gh-pages source-dir: build/site - umbrella-dir: pr-preview - - run: mkdir /tmp/artifacts - - name: Run Lighthouse Report - uses: foo-software/lighthouse-check-action@master - with: - outputDirectory: /tmp/artifacts - urls: 'https://quickstarts.teradata.com/pr-preview/pr-${{ github.event.pull_request.number }}/' - device: 'all' - - name: Upload Lighthouse artifacts - uses: actions/upload-artifact@master - with: - name: Lighthouse reports - path: /tmp/artifacts - - name: Leave Comment - uses: foo-software/lighthouse-check-action@master - with: - accessToken: ${{ secrets.GITHUB_TOKEN }} - outputDirectory: /tmp/artifacts - urls: 'https://quickstarts.teradata.com/pr-preview/pr-${{ github.event.pull_request.number }}/' - device: 'desktop' \ No newline at end of file + umbrella-dir: pr-preview \ No newline at end of file diff --git a/modules/ROOT/images/BYOM.png b/modules/ROOT/images/BYOM.png new file mode 100644 index 000000000..9b1bf00f9 Binary files /dev/null and b/modules/ROOT/images/BYOM.png differ diff --git a/modules/ROOT/images/ModelOps_Healthcheck.png b/modules/ROOT/images/ModelOps_Healthcheck.png new file mode 100644 index 000000000..22d9a4736 Binary files /dev/null and b/modules/ROOT/images/ModelOps_Healthcheck.png differ diff --git a/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.auth.list.png b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.auth.list.png new file mode 100644 index 000000000..7063e7cdb Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.auth.list.png differ diff --git a/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.engine.deploy.png b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.engine.deploy.png new file mode 100644 index 000000000..eed18586e Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.engine.deploy.png differ diff --git a/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.engine.list.png b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.engine.list.png new file mode 100644 index 000000000..82e13313f Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.engine.list.png differ diff --git a/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.project.list.png b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.project.list.png new file mode 100644 index 000000000..4363497de Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.project.list.png differ diff --git a/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.user.list.png b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.user.list.png new file mode 100644 index 000000000..f69193476 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/ai-unlimited-magic-reference/ai.unlimited.user.list.png differ diff --git a/modules/ROOT/images/ai-unlimited/install-ai-unlimited-workspaces-docker/ai.unlimited.workspaces.setting.png b/modules/ROOT/images/ai-unlimited/install-ai-unlimited-workspaces-docker/ai.unlimited.workspaces.setting.png new file mode 100644 index 000000000..9e39e5ca4 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/install-ai-unlimited-workspaces-docker/ai.unlimited.workspaces.setting.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.auth.create.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.auth.create.png new file mode 100644 index 000000000..4040d257e Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.auth.create.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.auth.delete.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.auth.delete.png new file mode 100644 index 000000000..3455c035f Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.auth.delete.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.auth.list.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.auth.list.png new file mode 100644 index 000000000..fbc39ff00 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.auth.list.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.engine.list.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.engine.list.png new file mode 100644 index 000000000..d929f16c2 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.engine.list.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.engine.suspend.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.engine.suspend.png new file mode 100644 index 000000000..8170e7db5 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.engine.suspend.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.backup.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.backup.png new file mode 100644 index 000000000..9742a3649 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.backup.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.create.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.create.png new file mode 100644 index 000000000..a79e28237 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.create.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.delete.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.delete.png new file mode 100644 index 000000000..39d2f1da6 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.delete.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.list.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.list.png new file mode 100644 index 000000000..c64a53417 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.list.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.restore.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.restore.png new file mode 100644 index 000000000..09b4809d0 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.restore.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.user.list.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.user.list.png new file mode 100644 index 000000000..0946abf75 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.project.user.list.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.user.list.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.user.list.png new file mode 100644 index 000000000..2c446e373 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.user.list.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.workspaces.config.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.workspaces.config.png new file mode 100644 index 000000000..7f8547028 Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.workspaces.config.png differ diff --git a/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.workspaces.png b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.workspaces.png new file mode 100644 index 000000000..e0aff207c Binary files /dev/null and b/modules/ROOT/images/ai-unlimited/using-ai-unlimited-workspace-cli/ai.unlimited.cli.workspaces.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.database.picker.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.database.picker.png new file mode 100644 index 000000000..c4e958b60 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.database.picker.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.elements.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.elements.png new file mode 100644 index 000000000..dabf473c1 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.elements.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.get.data.menu.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.get.data.menu.png new file mode 100644 index 000000000..011eb9633 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.get.data.menu.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.icon.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.icon.png new file mode 100644 index 000000000..347f21a34 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.icon.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.ldap.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.ldap.png new file mode 100644 index 000000000..ea8556860 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.ldap.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.navigator.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.navigator.png new file mode 100644 index 000000000..acde67caf Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.navigator.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.overview.blocks.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.overview.blocks.png new file mode 100644 index 000000000..f611891f5 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.overview.blocks.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.publish.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.publish.png new file mode 100644 index 000000000..cbc98b112 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.publish.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.report.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.report.png new file mode 100644 index 000000000..462568701 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.report.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.server.connect.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.server.connect.png new file mode 100644 index 000000000..17f82fae5 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.server.connect.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.splash.screen.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.splash.screen.png new file mode 100644 index 000000000..964d8ce7d Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.splash.screen.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.success.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.success.png new file mode 100644 index 000000000..8247465c1 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.success.png differ diff --git a/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.workspace.png b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.workspace.png new file mode 100644 index 000000000..067d768e5 Binary files /dev/null and b/modules/ROOT/images/business-intelligence/connect-power-bi/power.bi.workspace.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image1.wmf b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image1.wmf new file mode 100644 index 000000000..0fafe3580 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image1.wmf differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image10.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image10.png new file mode 100644 index 000000000..00918066a Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image10.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image11.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image11.png new file mode 100644 index 000000000..9b700fd8e Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image11.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image12.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image12.png new file mode 100644 index 000000000..733f9cb2b Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image12.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image13.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image13.png new file mode 100644 index 000000000..acf01ae29 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image13.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image14.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image14.png new file mode 100644 index 000000000..c51700387 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image14.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image15.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image15.png new file mode 100644 index 000000000..3eb1b859d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image15.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image16.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image16.png new file mode 100644 index 000000000..67d7b50ba Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image16.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image17.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image17.png new file mode 100644 index 000000000..832845c07 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image17.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image18.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image18.png new file mode 100644 index 000000000..86f6dbf4f Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image18.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image19.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image19.png new file mode 100644 index 000000000..c6d63cf64 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image19.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image2.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image2.png new file mode 100644 index 000000000..b8dfb1371 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image2.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image20.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image20.png new file mode 100644 index 000000000..183de648a Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image20.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image21.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image21.png new file mode 100644 index 000000000..b359c44a2 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image21.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image22.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image22.png new file mode 100644 index 000000000..7cfd35474 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image22.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image23.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image23.png new file mode 100644 index 000000000..d645ec260 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image23.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image24.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image24.png new file mode 100644 index 000000000..d0531eba3 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image24.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image25.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image25.png new file mode 100644 index 000000000..c2c3b85ec Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image25.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image26.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image26.png new file mode 100644 index 000000000..ef54a7aa7 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image26.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image27.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image27.png new file mode 100644 index 000000000..4d8396b4d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image27.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image28.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image28.png new file mode 100644 index 000000000..4c185dbc0 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image28.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image3.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image3.png new file mode 100644 index 000000000..26a1c5374 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image3.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image4.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image4.png new file mode 100644 index 000000000..3a841281a Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image4.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image5.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image5.png new file mode 100644 index 000000000..c5f16aa44 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image5.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image6.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image6.png new file mode 100644 index 000000000..ac3374293 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image6.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image7.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image7.png new file mode 100644 index 000000000..7346beb27 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image7.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image8.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image8.png new file mode 100644 index 000000000..62fa1c159 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image8.png differ diff --git a/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image9.png b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image9.png new file mode 100644 index 000000000..30e7317a5 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/connect-azure-data-share-to-teradata-vantage/image9.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai/vertex.create.notebook.startupscript.png b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai/vertex.create.notebook.startupscript.png new file mode 100644 index 000000000..2f8b74d14 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai/vertex.create.notebook.startupscript.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai/vertex.custom.container.png b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai/vertex.custom.container.png new file mode 100644 index 000000000..e683e374d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai/vertex.custom.container.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai/vertex.open.notebook.png b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai/vertex.open.notebook.png new file mode 100644 index 000000000..9d3f58e8c Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai/vertex.open.notebook.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.create.lifecycle.config.png b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.create.lifecycle.config.png new file mode 100644 index 000000000..dcf67cee3 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.create.lifecycle.config.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.create.notebook.instance.png b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.create.notebook.instance.png new file mode 100644 index 000000000..3fa775e8e Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.create.notebook.instance.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.notebook.inservice.png b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.notebook.inservice.png new file mode 100644 index 000000000..67cddb7d1 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.notebook.inservice.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.start.png b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.start.png new file mode 100644 index 000000000..f8d20945d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker/sagemaker.notebook.start.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image1.wmf b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image1.wmf new file mode 100644 index 000000000..0fafe3580 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image1.wmf differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image10.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image10.png new file mode 100644 index 000000000..9e146b8c0 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image10.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image11.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image11.png new file mode 100644 index 000000000..c8e2bdb1b Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image11.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image12.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image12.png new file mode 100644 index 000000000..e10fc25eb Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image12.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image13.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image13.png new file mode 100644 index 000000000..6e50d0f5e Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image13.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image14.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image14.png new file mode 100644 index 000000000..a7a0ddd64 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image14.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image15.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image15.png new file mode 100644 index 000000000..3d24a0fa0 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image15.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image16.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image16.png new file mode 100644 index 000000000..33c18a726 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image16.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image17.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image17.png new file mode 100644 index 000000000..f69ead40f Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image17.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image18.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image18.png new file mode 100644 index 000000000..2cd35c180 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image18.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image19.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image19.png new file mode 100644 index 000000000..a4f29b8ed Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image19.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image2.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image2.png new file mode 100644 index 000000000..2f16ec1f8 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image2.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image20.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image20.png new file mode 100644 index 000000000..bdb1c7eda Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image20.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image21.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image21.png new file mode 100644 index 000000000..f279c7f2d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image21.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image22.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image22.png new file mode 100644 index 000000000..d321e7aa5 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image22.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image23.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image23.png new file mode 100644 index 000000000..f9e68e15e Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image23.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image24.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image24.png new file mode 100644 index 000000000..e4896b6f1 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image24.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image25.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image25.png new file mode 100644 index 000000000..c643b2fa7 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image25.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image26.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image26.png new file mode 100644 index 000000000..c970b7594 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image26.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image27.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image27.png new file mode 100644 index 000000000..d24b12218 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image27.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image28.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image28.png new file mode 100644 index 000000000..ea0ec6c1e Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image28.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image29.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image29.png new file mode 100644 index 000000000..55df058a9 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image29.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image3.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image3.png new file mode 100644 index 000000000..e9e1522ef Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image3.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image30.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image30.png new file mode 100644 index 000000000..5bffd82b6 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image30.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image4.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image4.png new file mode 100644 index 000000000..7c2a07601 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image4.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image41.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image41.png new file mode 100644 index 000000000..3efd7ba2c Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image41.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image42.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image42.png new file mode 100644 index 000000000..331ab3a3c Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image42.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image43.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image43.png new file mode 100644 index 000000000..1e354d0a1 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image43.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image44.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image44.png new file mode 100644 index 000000000..924567752 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image44.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image45.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image45.png new file mode 100644 index 000000000..6e85e73fb Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image45.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image46.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image46.png new file mode 100644 index 000000000..a7da8023f Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image46.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image5.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image5.png new file mode 100644 index 000000000..e25c3fd5d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image5.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image6.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image6.png new file mode 100644 index 000000000..adc0e7e4c Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image6.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image7.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image7.png new file mode 100644 index 000000000..e8d7d24d0 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image7.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image8.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image8.png new file mode 100644 index 000000000..0071e67b2 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image8.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image9.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image9.png new file mode 100644 index 000000000..c4913ea3b Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow/image9.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image1.wmf b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image1.wmf new file mode 100644 index 000000000..0fafe3580 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image1.wmf differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image2.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image2.png new file mode 100644 index 000000000..41ea223fc Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image2.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image3.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image3.png new file mode 100644 index 000000000..e14b447e9 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image3.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image4.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image4.png new file mode 100644 index 000000000..ddc007b46 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image4.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image5.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image5.png new file mode 100644 index 000000000..a71549fc5 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image5.png differ diff --git a/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image6.png b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image6.png new file mode 100644 index 000000000..651e420a7 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog/image6.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/attach.endpoint.configuration.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/attach.endpoint.configuration.png new file mode 100644 index 000000000..f58fb5a01 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/attach.endpoint.configuration.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/choose.an.algorithm.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/choose.an.algorithm.png new file mode 100644 index 000000000..6879f3a38 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/choose.an.algorithm.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/container.definition.1.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/container.definition.1.png new file mode 100644 index 000000000..ad95830a7 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/container.definition.1.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.endpoint.configuration.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.endpoint.configuration.png new file mode 100644 index 000000000..216dba588 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.endpoint.configuration.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.endpoint.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.endpoint.png new file mode 100644 index 000000000..29554f15a Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.endpoint.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.iam.role.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.iam.role.png new file mode 100644 index 000000000..4b491c898 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.iam.role.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.notebook.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.notebook.png new file mode 100644 index 000000000..342bfab49 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.notebook.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.training.job.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.training.job.png new file mode 100644 index 000000000..6bf7c467d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/create.training.job.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/input.data.configuration.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/input.data.configuration.png new file mode 100644 index 000000000..0b00b53fc Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/input.data.configuration.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/open.notebook.instance.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/open.notebook.instance.png new file mode 100644 index 000000000..1290dd2ff Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/open.notebook.instance.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/output.data.configuration.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/output.data.configuration.png new file mode 100644 index 000000000..b81f35193 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/output.data.configuration.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/resource.configuration.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/resource.configuration.png new file mode 100644 index 000000000..37c7b1c9a Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/resource.configuration.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/select.endpoint.configuration.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/select.endpoint.configuration.png new file mode 100644 index 000000000..efcf6d65b Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/select.endpoint.configuration.png differ diff --git a/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/start.new.file.png b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/start.new.file.png new file mode 100644 index 000000000..09b9e8364 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/sagemaker-with-teradata-vantage/start.new.file.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image1.wmf b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image1.wmf new file mode 100644 index 000000000..0fafe3580 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image1.wmf differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image10.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image10.png new file mode 100644 index 000000000..32d98c19d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image10.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image11.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image11.png new file mode 100644 index 000000000..a546f9d23 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image11.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image12.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image12.png new file mode 100644 index 000000000..1972489bd Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image12.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image13.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image13.png new file mode 100644 index 000000000..139f569b4 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image13.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image14.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image14.png new file mode 100644 index 000000000..b6f86f44b Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image14.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image15.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image15.png new file mode 100644 index 000000000..167170001 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image15.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image16.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image16.png new file mode 100644 index 000000000..6846ca85c Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image16.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image17.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image17.png new file mode 100644 index 000000000..3488786a4 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image17.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image18.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image18.png new file mode 100644 index 000000000..40ab58077 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image18.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image19.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image19.png new file mode 100644 index 000000000..2a8900c07 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image19.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image2.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image2.png new file mode 100644 index 000000000..ac948cdac Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image2.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image20.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image20.png new file mode 100644 index 000000000..e584a5f27 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image20.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image21.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image21.png new file mode 100644 index 000000000..e30f97529 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image21.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image22.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image22.png new file mode 100644 index 000000000..218ed0977 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image22.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image23.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image23.png new file mode 100644 index 000000000..a6c560757 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image23.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image24.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image24.png new file mode 100644 index 000000000..1ed1a8e52 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image24.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image25.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image25.png new file mode 100644 index 000000000..829e6a76f Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image25.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image26.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image26.png new file mode 100644 index 000000000..d75e9e67f Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image26.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image27.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image27.png new file mode 100644 index 000000000..cc6af35b9 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image27.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image28.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image28.png new file mode 100644 index 000000000..6813315bb Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image28.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image3.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image3.png new file mode 100644 index 000000000..26e835ecc Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image3.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image4.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image4.png new file mode 100644 index 000000000..ac3cc6c8d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image4.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image5.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image5.png new file mode 100644 index 000000000..038549ecb Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image5.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image6.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image6.png new file mode 100644 index 000000000..99c3c2b7a Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image6.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image7.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image7.png new file mode 100644 index 000000000..7deb2e121 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image7.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image8.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image8.png new file mode 100644 index 000000000..c8386281d Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image8.png differ diff --git a/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image9.png b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image9.png new file mode 100644 index 000000000..a16c7ec23 Binary files /dev/null and b/modules/ROOT/images/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio/image9.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_debug.png b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_debug.png new file mode 100644 index 000000000..c6371d6f4 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_debug.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_docs_generate.png b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_docs_generate.png new file mode 100644 index 000000000..a7f964655 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_docs_generate.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_docs_serve.png b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_docs_serve.png new file mode 100644 index 000000000..332a1d391 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_docs_serve.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_init_database_name.png b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_init_database_name.png new file mode 100644 index 000000000..26daeff83 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_init_database_name.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_init_project_name.png b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_init_project_name.png new file mode 100644 index 000000000..140e8841e Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_init_project_name.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_run.png b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_run.png new file mode 100644 index 000000000..544201bd4 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_run.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_test.png b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_test.png new file mode 100644 index 000000000..5c8f87118 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/dbt_test.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/raw_data_vantage_dbeaver.png b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/raw_data_vantage_dbeaver.png new file mode 100644 index 000000000..79f2f94ef Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte-dbt/raw_data_vantage_dbeaver.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/close_airbyte_connection.png b/modules/ROOT/images/elt/getting-started-with-airbyte/close_airbyte_connection.png new file mode 100644 index 000000000..26c8d4ac7 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/close_airbyte_connection.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/configuring_destination_teradata_airbyte.png b/modules/ROOT/images/elt/getting-started-with-airbyte/configuring_destination_teradata_airbyte.png new file mode 100644 index 000000000..5150ff9bc Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/configuring_destination_teradata_airbyte.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/configuring_source_gsheet_airbyte.png b/modules/ROOT/images/elt/getting-started-with-airbyte/configuring_source_gsheet_airbyte.png new file mode 100644 index 000000000..35c45ebf2 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/configuring_source_gsheet_airbyte.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/create_first_connection.png b/modules/ROOT/images/elt/getting-started-with-airbyte/create_first_connection.png new file mode 100644 index 000000000..62630a71e Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/create_first_connection.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/data_sync_summary.png b/modules/ROOT/images/elt/getting-started-with-airbyte/data_sync_summary.png new file mode 100644 index 000000000..5af214d37 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/data_sync_summary.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/data_sync_validation_in_teradata.png b/modules/ROOT/images/elt/getting-started-with-airbyte/data_sync_validation_in_teradata.png new file mode 100644 index 000000000..969301351 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/data_sync_validation_in_teradata.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/delete_airbyte_connection.png b/modules/ROOT/images/elt/getting-started-with-airbyte/delete_airbyte_connection.png new file mode 100644 index 000000000..bc5822180 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/delete_airbyte_connection.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/namespaces_in_destination.png b/modules/ROOT/images/elt/getting-started-with-airbyte/namespaces_in_destination.png new file mode 100644 index 000000000..2a8cdb403 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/namespaces_in_destination.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/replication_frequency_24hr.png b/modules/ROOT/images/elt/getting-started-with-airbyte/replication_frequency_24hr.png new file mode 100644 index 000000000..9984ee586 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/replication_frequency_24hr.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/replication_frequency_cron_expression.png b/modules/ROOT/images/elt/getting-started-with-airbyte/replication_frequency_cron_expression.png new file mode 100644 index 000000000..af94e8734 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/replication_frequency_cron_expression.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/sample_employees_payrate_google_sheets.png b/modules/ROOT/images/elt/getting-started-with-airbyte/sample_employees_payrate_google_sheets.png new file mode 100644 index 000000000..70fab27a2 Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/sample_employees_payrate_google_sheets.png differ diff --git a/modules/ROOT/images/elt/getting-started-with-airbyte/specify_preferences.png b/modules/ROOT/images/elt/getting-started-with-airbyte/specify_preferences.png new file mode 100644 index 000000000..c1db5f29a Binary files /dev/null and b/modules/ROOT/images/elt/getting-started-with-airbyte/specify_preferences.png differ diff --git a/modules/ROOT/images/jupyter-demos/gcp-vertex-ai-pipelines-vantage-byom-housing-example/pipeline1.png b/modules/ROOT/images/jupyter-demos/gcp-vertex-ai-pipelines-vantage-byom-housing-example/pipeline1.png new file mode 100644 index 000000000..f91c39a79 Binary files /dev/null and b/modules/ROOT/images/jupyter-demos/gcp-vertex-ai-pipelines-vantage-byom-housing-example/pipeline1.png differ diff --git a/modules/ROOT/images/jupyter-demos/gcp-vertex-ai-pipelines-vantage-byom-housing-example/pipeline2.png b/modules/ROOT/images/jupyter-demos/gcp-vertex-ai-pipelines-vantage-byom-housing-example/pipeline2.png new file mode 100644 index 000000000..1898446ac Binary files /dev/null and b/modules/ROOT/images/jupyter-demos/gcp-vertex-ai-pipelines-vantage-byom-housing-example/pipeline2.png differ diff --git a/modules/ROOT/images/modelops-git.png b/modules/ROOT/images/modelops-git.png new file mode 100644 index 000000000..e4d7ab343 Binary files /dev/null and b/modules/ROOT/images/modelops-git.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/create-new-source.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/create-new-source.png new file mode 100644 index 000000000..3c4743544 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/create-new-source.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/datasets.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/datasets.png new file mode 100644 index 000000000..f2665ef5a Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/datasets.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/entities-list.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/entities-list.png new file mode 100644 index 000000000..9fc0de927 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/entities-list.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/execute.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/execute.png new file mode 100644 index 000000000..1dc2d37bf Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/execute.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/finish-up.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/finish-up.png new file mode 100644 index 000000000..b9d0aa83c Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/finish-up.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/ingestion-icon.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/ingestion-icon.png new file mode 100644 index 000000000..ad99432a4 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/ingestion-icon.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/ingestion-result.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/ingestion-result.png new file mode 100644 index 000000000..eee487a25 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/ingestion-result.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/lineage-weather.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/lineage-weather.png new file mode 100644 index 000000000..5b09a2837 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/lineage-weather.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/lineage.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/lineage.png new file mode 100644 index 000000000..edf5732fc Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/lineage.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/new-ingestion-source.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/new-ingestion-source.png new file mode 100644 index 000000000..24cfd9bfa Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/new-ingestion-source.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/schema.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/schema.png new file mode 100644 index 000000000..3e1b374a6 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/schema.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/select-other-source.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/select-other-source.png new file mode 100644 index 000000000..9663a5247 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/select-other-source.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/set-schedule.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/set-schedule.png new file mode 100644 index 000000000..dbea9babf Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-datahub/set-schedule.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/plug-icon.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/plug-icon.png new file mode 100644 index 000000000..fa3901a78 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/plug-icon.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/select-your-database.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/select-your-database.png new file mode 100644 index 000000000..db45329fe Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/select-your-database.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/teradata-connection-settings-ssh.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/teradata-connection-settings-ssh.png new file mode 100644 index 000000000..61d75adc0 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/teradata-connection-settings-ssh.png differ diff --git a/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/teradata-connection-settings.png b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/teradata-connection-settings.png new file mode 100644 index 000000000..1b09bf647 Binary files /dev/null and b/modules/ROOT/images/other-integrations/configure-a-teradata-connection-in-dbeaver/teradata-connection-settings.png differ diff --git a/modules/ROOT/images/other-integrations/execute-airflow-workflows-that-use-dbt-with-teradata-vantage/admin-dropdown.png b/modules/ROOT/images/other-integrations/execute-airflow-workflows-that-use-dbt-with-teradata-vantage/admin-dropdown.png new file mode 100644 index 000000000..09dd180dc Binary files /dev/null and b/modules/ROOT/images/other-integrations/execute-airflow-workflows-that-use-dbt-with-teradata-vantage/admin-dropdown.png differ diff --git a/modules/ROOT/images/other-integrations/execute-airflow-workflows-that-use-dbt-with-teradata-vantage/import-variables.png b/modules/ROOT/images/other-integrations/execute-airflow-workflows-that-use-dbt-with-teradata-vantage/import-variables.png new file mode 100644 index 000000000..7cc50d83a Binary files /dev/null and b/modules/ROOT/images/other-integrations/execute-airflow-workflows-that-use-dbt-with-teradata-vantage/import-variables.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/add-jar.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/add-jar.png new file mode 100644 index 000000000..6de7092bc Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/add-jar.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/apply-and-close.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/apply-and-close.png new file mode 100644 index 000000000..41ddfff79 Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/apply-and-close.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/enter-configuration.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/enter-configuration.png new file mode 100644 index 000000000..4028ae692 Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/enter-configuration.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/execute-node.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/execute-node.png new file mode 100644 index 000000000..e1c0725ce Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/execute-node.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/register-driver.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/register-driver.png new file mode 100644 index 000000000..d57bb6f83 Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/register-driver.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/start-configuration.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/start-configuration.png new file mode 100644 index 000000000..e409f70d2 Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/start-configuration.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/test-connection-1.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/test-connection-1.png new file mode 100644 index 000000000..a87fc4635 Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/test-connection-1.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/test-connection-2.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/test-connection-2.png new file mode 100644 index 000000000..51973412b Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/test-connection-2.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/test-connection-apply.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/test-connection-apply.png new file mode 100644 index 000000000..7d11dcfec Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/test-connection-apply.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/view-results-final.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/view-results-final.png new file mode 100644 index 000000000..add30b8e5 Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/view-results-final.png differ diff --git a/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/view-results.png b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/view-results.png new file mode 100644 index 000000000..9456d5d2d Binary files /dev/null and b/modules/ROOT/images/other-integrations/integrate-teradata-vantage-with-knime/view-results.png differ diff --git a/modules/ROOT/images/teradata-global-configuration.png b/modules/ROOT/images/teradata-global-configuration.png new file mode 100644 index 000000000..e71bc6e56 Binary files /dev/null and b/modules/ROOT/images/teradata-global-configuration.png differ diff --git a/modules/ROOT/images/teradata-operations.png b/modules/ROOT/images/teradata-operations.png new file mode 100644 index 000000000..7b4d9f89a Binary files /dev/null and b/modules/ROOT/images/teradata-operations.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/activenotebook.png b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/activenotebook.png new file mode 100644 index 000000000..e327051b0 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/activenotebook.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/bucket.png b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/bucket.png new file mode 100644 index 000000000..089aa1247 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/bucket.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/detailsenv.png b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/detailsenv.png new file mode 100644 index 000000000..bb11a0739 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/detailsenv.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/notebooklauncher.png b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/notebooklauncher.png new file mode 100644 index 000000000..d41fc0ea3 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/notebooklauncher.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/openvars.png b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/openvars.png new file mode 100644 index 000000000..65429c2e8 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/openvars.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/python3.png b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/python3.png new file mode 100644 index 000000000..a31bea464 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/python3.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/sagemaker-lake.PNG b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/sagemaker-lake.PNG new file mode 100644 index 000000000..39f2bb6eb Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/sagemaker-lake.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/startupscript.png b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/startupscript.png new file mode 100644 index 000000000..be698c82c Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/startupscript.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/upload.png b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/upload.png new file mode 100644 index 000000000..e8b2be682 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantage-lake-demo-jupyter-google-cloud-vertex-ai/upload.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-1.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-1.PNG new file mode 100644 index 000000000..4df3440c8 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-1.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-2.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-2.PNG new file mode 100644 index 000000000..5a1156180 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-2.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-3.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-3.PNG new file mode 100644 index 000000000..d36bfd2b2 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-3.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-4.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-4.PNG new file mode 100644 index 000000000..8bef170cf Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-4.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-complete-resource-8.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-complete-resource-8.PNG new file mode 100644 index 000000000..ba1dff1d0 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-complete-resource-8.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-deployment-complete-5.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-deployment-complete-5.PNG new file mode 100644 index 000000000..003497dd5 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-deployment-complete-5.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-ips-14.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-ips-14.PNG new file mode 100644 index 000000000..4e2397292 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-ips-14.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-resource-6.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-resource-6.PNG new file mode 100644 index 000000000..4d8caf0a9 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-resource-6.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-resource-8.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-resource-8.PNG new file mode 100644 index 000000000..359e2442e Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-resource-8.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-resource-config-7.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-resource-config-7.PNG new file mode 100644 index 000000000..6fa03a15a Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-app-service-resource-config-7.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-console-0.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-console-0.PNG new file mode 100644 index 000000000..39c8954a0 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-console-0.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-10.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-10.PNG new file mode 100644 index 000000000..1aa7e747d Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-10.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-auth-9.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-auth-9.PNG new file mode 100644 index 000000000..26847838b Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-auth-9.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-click-lake-demos-12.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-click-lake-demos-12.PNG new file mode 100644 index 000000000..44acac38e Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-click-lake-demos-12.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-clone-11.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-clone-11.PNG new file mode 100644 index 000000000..6f0be953f Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-clone-11.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-lakedemos-13.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-lakedemos-13.PNG new file mode 100644 index 000000000..299e337df Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/azure-jupyter-console-lakedemos-13.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/sagemaker-lake.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/sagemaker-lake.PNG new file mode 100644 index 000000000..39f2bb6eb Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-azure/sagemaker-lake.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_0_setup.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_0_setup.png new file mode 100644 index 000000000..ca61e10cc Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_0_setup.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_docker_url.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_docker_url.png new file mode 100644 index 000000000..1ba028504 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_docker_url.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_ip_addresses.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_ip_addresses.png new file mode 100644 index 000000000..a018bc0f9 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_ip_addresses.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_jupyter_notebook.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_jupyter_notebook.png new file mode 100644 index 000000000..1d038a538 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_jupyter_notebook.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_overview_page.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_overview_page.png new file mode 100644 index 000000000..1c4488797 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_overview_page.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_public_internet_cv.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_public_internet_cv.png new file mode 100644 index 000000000..03078aaa3 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-docker/lake_public_internet_cv.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-bucket-upload.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-bucket-upload.png new file mode 100644 index 000000000..58f260390 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-bucket-upload.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-config-1.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-config-1.PNG new file mode 100644 index 000000000..d9b2da702 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-config-1.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-config-2.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-config-2.PNG new file mode 100644 index 000000000..b3d8f7d00 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-config-2.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-loaded-env.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-loaded-env.PNG new file mode 100644 index 000000000..91f806e40 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-loaded-env.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-1.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-1.PNG new file mode 100644 index 000000000..c1356ef3e Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-1.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-2.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-2.PNG new file mode 100644 index 000000000..c5ad1bd65 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-2.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-3.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-3.PNG new file mode 100644 index 000000000..4bc009f9b Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-3.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-4.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-4.PNG new file mode 100644 index 000000000..cb90b8d06 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-create-notebook-4.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-0.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-0.PNG new file mode 100644 index 000000000..bf2b220e4 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-0.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-1.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-1.PNG new file mode 100644 index 000000000..034b1d606 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-1.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-2.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-2.PNG new file mode 100644 index 000000000..19c50e729 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-2.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-3.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-3.PNG new file mode 100644 index 000000000..48cc073a5 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-iam-role-3.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-lake.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-lake.PNG new file mode 100644 index 000000000..39f2bb6eb Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-lake.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-list-ip.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-list-ip.PNG new file mode 100644 index 000000000..ca6c36848 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-list-ip.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-vars.PNG b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-vars.PNG new file mode 100644 index 000000000..76dc6c710 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demo-jupyter-sagemaker/sagemaker-vars.PNG differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/demoenvsetup.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/demoenvsetup.png new file mode 100644 index 000000000..5b9f5389e Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/demoenvsetup.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/existing.kernel.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/existing.kernel.png new file mode 100644 index 000000000..87e2e88d5 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/existing.kernel.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/python.kernel.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/python.kernel.png new file mode 100644 index 000000000..0ba0fbbce Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/python.kernel.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/replace.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/replace.png new file mode 100644 index 000000000..ae1363439 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/replace.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/search.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/search.png new file mode 100644 index 000000000..3a946c241 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/search.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/select.kernel.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/select.kernel.png new file mode 100644 index 000000000..fc8088b10 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/select.kernel.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/select.results.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/select.results.png new file mode 100644 index 000000000..5ff0f624e Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/select.results.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/server.display.name.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/server.display.name.png new file mode 100644 index 000000000..c279a4e09 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/server.display.name.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/server.password.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/server.password.png new file mode 100644 index 000000000..b0f550888 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/server.password.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/server.url.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/server.url.png new file mode 100644 index 000000000..19a1b52f8 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/server.url.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/terminal.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/terminal.png new file mode 100644 index 000000000..52b01ca02 Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/terminal.png differ diff --git a/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/vscode.png b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/vscode.png new file mode 100644 index 000000000..56dff8d9b Binary files /dev/null and b/modules/ROOT/images/vantagecloud-lake/vantagecloud-lake-demos-visual-studio-code/vscode.png differ diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 3d09aaa3b..9d00a9525 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -39,8 +39,7 @@ ** xref::segment.adoc[] ** xref:cloud-guides:connect-azure-data-share-to-teradata-vantage.adoc[] ** xref:cloud-guides:integrate-teradata-vantage-with-google-cloud-data-catalog.adoc[] -** xref:cloud-guides:ingest-catalog-data-teradata-s3-with-glue.adoc[] -** xref:other-integrations:configure-a-teradata-vantage-connection-in-datahub.adoc[] +** xref:other-integrations:configure-a-teradata-vantage-connection-in-datahub.adoc[Configure a Teradata Vantage connection in DataHub] * Create applications ** xref::jdbc.adoc[] diff --git a/modules/ROOT/pages/explain-plan.adoc b/modules/ROOT/pages/explain-plan.adoc deleted file mode 100644 index 47837a1e2..000000000 --- a/modules/ROOT/pages/explain-plan.adoc +++ /dev/null @@ -1,142 +0,0 @@ -= Teradata Explain Plan -:experimental: -:page-author: Obed Vega -:page-email: obed.vega@teradata.com -:page-revdate: May 1st, 2023 -:description: Teradata Explain Plan. -:keywords: data warehouses, compute storage separation, Teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, explain plan - -== Overview -The explain plan is a feature of the sql engine it can help you understand how the Teradata Optimizer plans to execute a specific SQL query. -It provides a detailed explanation of how a query is going to be executed. It shows the steps that the optimizer will take to retrieve the requested data -from the database. -It also shows the indexes that will be used, if any, as well as any sorting or aggregation that will take place. - -== Prerequisites - -You need access to a Teradata Vantage instance. The explain plan feature is enabled in all Vantage editions from Vantage Express through Developer, DYI to Vantage as a Service starting from version 17.10. - -include::ROOT:partial$vantage.express.options.adoc[] - -== Create a Parquet file with WRITE_NOS function - -`WRITE_NOS` allows you to extract selected or all columns from a database table or from derived results and write to external object storage, such as Amazon S3, Azure Blob storage, Azure Data Lake Storage Gen2, and Google Cloud Storage. This functionality stores data in Parquet format. - -You can find more documentation about `Explain Plam` functionality in the https://docs.teradata.com/r/7JJPNb_K3ELUuQwvd0V6Kg/4hqKbmIikiuHKhmU8ipn1A[Teradata documentation]. - -You will need access to a database where you can execute `WRITE_NOS` function. If you don't have such a database, run the following commands: -[source, teradata-sql] ----- -CREATE USER db AS PERM=10e7, PASSWORD=db; - --- Don't forget to give the proper access rights -GRANT EXECUTE FUNCTION on TD_SYSFNLIB.READ_NOS to db; -GRANT EXECUTE FUNCTION on TD_SYSFNLIB.WRITE_NOS to db; ----- - -NOTE: If you would like to learn more about setting up users and their privileges, checkout the https://docs.teradata.com/r/Teradata-VantageTM-Native-Object-Store-Getting-Started-Guide/June-2022/Setting-Up-Access/Setting-Access-Privileges[NOS documentation]. - - -1. Let's first create a table on your Teradata Vantage instance: -+ -[source, teradata-sql] ----- -CREATE SET TABLE db.parquet_table ,FALLBACK , - NO BEFORE JOURNAL, - NO AFTER JOURNAL, - CHECKSUM = DEFAULT, - DEFAULT MERGEBLOCKRATIO, - MAP = TD_MAP1 - ( - column1 SMALLINT NOT NULL, - column2 DATE FORMAT 'YY/MM/DD' NOT NULL, - column3 DECIMAL(10,2)) -PRIMARY INDEX ( column1 ); ----- - -2. Populate your table with example data: -+ -[source, teradata-sql] ----- -INSERT INTO db.parquet_table (1,'2022/01/01',1.1); -INSERT INTO db.parquet_table (2,'2022/01/02',2.2); -INSERT INTO db.parquet_table (3,'2022/01/03',3.3); ----- -+ -Your table should now look like this: -+ ----- -column1 column2 column3 -------- -------- ------------ - 1 22/01/01 1.10 - 2 22/01/02 2.20 - 3 22/01/03 3.30 ----- - -3. Create the parquet file with `WRITE_NOS`. Don't forget to replace `` with the name of your s3 bucket. Also,replace `` and `` with your access key and secret. -+ -NOTE: Check your cloud provider docs how to create credentials to access object storage. For example, for AWS check out https://aws.amazon.com/premiumsupport/knowledge-center/create-access-key/[How do I create an AWS access key?] -+ -[source, teradata-sql] ----- -SELECT * FROM WRITE_NOS ( -ON ( SELECT * FROM db.parquet_table) -USING -LOCATION('/s3/.s3.amazonaws.com/parquet_file_on_NOS.parquet') -AUTHORIZATION('{"ACCESS_ID":"", -"ACCESS_KEY":""}') -STOREDAS('PARQUET') -MAXOBJECTSIZE('16MB') -COMPRESSION('SNAPPY') -INCLUDE_ORDERING('TRUE') -INCLUDE_HASHBY('TRUE') -) as d; ----- -+ -Now you have created a parquet file in your object storage bucket. Now to easily query your file you need to follow step number 4. - -4. Create a NOS-backed foreign table. Don't forget to replace `` with the name of your s3 bucket. Also,replace `` and `` with your access key and secret: -+ -[source, teradata-sql] ----- -CREATE MULTISET FOREIGN TABLE db.parquet_table_to_read_file_on_NOS -, EXTERNAL SECURITY DEFINER TRUSTED CEPH_AUTH, -MAP = TD_MAP1 -( - Location VARCHAR(2048) CHARACTER SET UNICODE CASESPECIFIC - , col1 SMALLINT - , col2 DATE - , col3 DECIMAL(10,2) - -) -USING ( - LOCATION ('/s3/.s3.amazonaws.com/parquet_file_on_NOS.parquet') - AUTHORIZATION('{"ACCESS_ID":"", - "ACCESS_KEY":""}') - STOREDAS ('PARQUET') -)NO PRIMARY INDEX; ----- - -5. Now you are ready to Query your parquet file on NOS, let's try the following query: -+ -[source, teradata-sql] ----- -SELECT col1, col2, col3 FROM db.parquet_table_to_read_file_on_NOS; ----- -+ -The data returned from the query should look something like this: -+ ----- - col1 col2 col3 ------- -------- ------------ - 1 22/01/01 1.10 - 2 22/01/02 2.20 - 3 22/01/03 3.30 ----- - -== Summary - -In this tutorial we have learned how to export data from Vantage to a parquet file on object storage using Native Object Storage (NOS). NOS supports reading and importing data stored in CSV, JSON and Parquet formats. NOS can also export data from Vantage to object storage. - -== Further reading -* link:https://docs.teradata.com/r/Teradata-VantageTM-Native-Object-Store-Getting-Started-Guide/June-2022/Writing-Data-to-External-Object-Store[Teradata Vantage™ - Writing Data to External Object Store] diff --git a/modules/ROOT/pages/ja/ai-unlimited/ai-unlimited-aws-permissions-policies.adoc b/modules/ROOT/pages/ja/ai-unlimited/ai-unlimited-aws-permissions-policies.adoc new file mode 100644 index 000000000..19f243b23 --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/ai-unlimited-aws-permissions-policies.adoc @@ -0,0 +1,287 @@ += カスタム権限とポリシーを使用してAWSのアクセスと権限を制御する +:page-lang: ja +:experimental: +:page-author: Thripti Aravind +:page-email: thripti.aravind@teradata.com +:page-revdate: 2023年11月7日 +:description: AWS IAMの役割とポリシーが、Teradata AI Unlimited WorkspacesとJupyterLabのデプロイにどのように影響するかを学ぶ。 +:keywords: Teradata AI Unlimited, Teradata AI Unlimited Workspace service, Teradata AI Unlimited Compute Engine +:page-image-directory: ai-unlimited-aws-permissions-policies + +IMPORTANT: この製品はプレビュー版であり、変更される可能性があります。このサービスの詳細については、Teradataサポートに連絡してください。 + +== 概要 + +AWSリソースへのアクセスを提供するために必要な権限を持つポリシーを設定します。ワークスペース サービスをデプロイしているアカウントに、IAM ロールまたは IAM ポリシーを作成するための十分な IAM 権限がない場合、組織管理者はロールとポリシーを定義して、それらをワークスペース サービス テンプレートに付与することができます。 + +この記事には、新しいIAMロールに必要なサンプルIAMポリシーが含まれています。 + +これらのポリシーは、 **Security & Identity** > **Identity & Access Management** > **Create Policy**で設定します。詳細な手順については、 link:https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html[「ロールの作成とポリシーのアタッチ (コンソール) - AWS Identity and Access Management」] を参照してください。 + +=== workspaces-with-iam-role-permissions.json + +以下の JSON サンプルには、AI Unlimited インスタンスを作成するために必要な権限が含まれており、エンジン用のクラスタ固有の IAM ロールとポリシーを作成する権限をワークスペース サービスに付与します。 + +[source, bash, id="workspaces-with-iam-role-permission", role="content-editable emits-gtm-events"] +---- +{ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "iam:PassRole", + "iam:AddRoleToInstanceProfile", + "iam:CreateInstanceProfile", + "iam:CreateRole", + "iam:DeleteInstanceProfile", + "iam:DeleteRole", + "iam:DeleteRolePolicy", + "iam:GetInstanceProfile", + "iam:GetRole", + "iam:GetRolePolicy", + "iam:ListAttachedRolePolicies", + "iam:ListInstanceProfilesForRole", + "iam:ListRolePolicies", + "iam:PutRolePolicy", + "iam:RemoveRoleFromInstanceProfile", + "iam:TagRole", + "iam:TagInstanceProfile", + "ec2:TerminateInstances", + "ec2:RunInstances", + "ec2:RevokeSecurityGroupEgress", + "ec2:ModifyInstanceAttribute", + "ec2:ImportKeyPair", + "ec2:DescribeVpcs", + "ec2:DescribeVolumes", + "ec2:DescribeTags", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "ec2:DescribePlacementGroups", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeKeyPairs", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstanceTypeOfferings", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeImages", + "ec2:DescribeAccountAttributes", + "ec2:DeleteSecurityGroup", + "ec2:DeletePlacementGroup", + "ec2:DeleteLaunchTemplate", + "ec2:DeleteKeyPair", + "ec2:CreateTags", + "ec2:CreateSecurityGroup", + "ec2:CreatePlacementGroup", + "ec2:CreateLaunchTemplateVersion", + "ec2:CreateLaunchTemplate", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:AuthorizeSecurityGroupEgress", + "secretsmanager:CreateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:DescribeSecret", + "secretsmanager:GetResourcePolicy", + "secretsmanager:GetSecretValue", + "secretsmanager:PutSecretValue", + "secretsmanager:TagResource" + ], + "Resource": "*", + "Effect": "Allow" + } + ] +} + +---- + +=== workspaces-without-iam-role-permissions.json + +以下の JSON サンプルには、AI Unlimited インスタンスの作成に必要な権限が含まれています。アカウントの制限により、ワークスペース サービスが IAM ロールとポリシーを作成できない場合は、エンジンに渡すポリシーを IAM ロールに付与する必要があります。この場合、以下の変更されたワークスペース サービス ポリシーを使用できます。これには、IAM ロールまたは IAM ポリシーを作成する権限が含まれていません。 + +[source, bash, id="workspaces_without_iam_role_permissions", role="content-editable emits-gtm-events"] +---- +{ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "iam:PassRole", + "iam:AddRoleToInstanceProfile", + "iam:CreateInstanceProfile", + "iam:DeleteInstanceProfile", + "iam:GetInstanceProfile", + "iam:GetRole", + "iam:GetRolePolicy", + "iam:ListAttachedRolePolicies", + "iam:ListInstanceProfilesForRole", + "iam:ListRolePolicies", + "iam:PutRolePolicy", + "iam:RemoveRoleFromInstanceProfile", + "iam:TagRole", + "iam:TagInstanceProfile", + "ec2:TerminateInstances", + "ec2:RunInstances", + "ec2:RevokeSecurityGroupEgress", + "ec2:ModifyInstanceAttribute", + "ec2:ImportKeyPair", + "ec2:DescribeVpcs", + "ec2:DescribeVolumes", + "ec2:DescribeTags", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "ec2:DescribePlacementGroups", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeKeyPairs", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstanceTypeOfferings", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeImages", + "ec2:DescribeAccountAttributes", + "ec2:DeleteSecurityGroup", + "ec2:DeletePlacementGroup", + "ec2:DeleteLaunchTemplate", + "ec2:DeleteKeyPair", + "ec2:CreateTags", + "ec2:CreateSecurityGroup", + "ec2:CreatePlacementGroup", + "ec2:CreateLaunchTemplateVersion", + "ec2:CreateLaunchTemplate", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:AuthorizeSecurityGroupEgress", + "secretsmanager:CreateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:DescribeSecret", + "secretsmanager:GetResourcePolicy", + "secretsmanager:GetSecretValue", + "secretsmanager:PutSecretValue", + "secretsmanager:TagResource" + ], + "Resource": "*", + "Effect": "Allow" + } + ] +} + +---- + +=== session-manager.json + +以下の JSON サンプルには、AWS Session Manager と対話するために必要な権限が含まれています。AWS Session Manager を使用してインスタンスに接続する場合は、このポリシーを IAM ロールに付与する必要があります。 + +[source, bash, id="session_manager", role="content-editable emits-gtm-events"] +---- +{ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "ssm:DescribeAssociation", + "ssm:GetDeployablePatchSnapshotForInstance", + "ssm:GetDocument", + "ssm:DescribeDocument", + "ssm:GetManifest", + "ssm:ListAssociations", + "ssm:ListInstanceAssociations", + "ssm:PutInventory", + "ssm:PutComplianceItems", + "ssm:PutConfigurePackageResult", + "ssm:UpdateAssociationStatus", + "ssm:UpdateInstanceAssociationStatus", + "ssm:UpdateInstanceInformation" + ], + "Resource": "*", + "Effect": "Allow" + }, + { + "Action": [ + "ssmmessages:CreateControlChannel", + "ssmmessages:CreateDataChannel", + "ssmmessages:OpenControlChannel", + "ssmmessages:OpenDataChannel" + ], + "Resource": "*", + "Effect": "Allow" + }, + { + "Action": [ + "ec2messages:AcknowledgeMessage", + "ec2messages:DeleteMessage", + "ec2messages:FailMessage", + "ec2messages:GetEndpoint", + "ec2messages:GetMessages", + "ec2messages:SendReply" + ], + "Resource": "*", + "Effect": "Allow" + } + ] +} + +---- + +=== unlimited-engine.json +ワークスペース サービスにクラスタ固有のロールの作成を認証する代わりに、Teradata AI Unlimited IAM ロールを新しいエンジンに渡す場合は、以下の JSON サンプルを出発点としてポリシーを作成できます。 + +[source, bash, id="ai_unlimited", role="content-editable emits-gtm-events"] +---- +{ + "Version": "2012-10-17", + "Statement": [ + { + "Action": "secretsmanager:GetSecretValue", + "Effect": "Allow", + "Resource": [ + "arn:aws:secretsmanager:::secret:compute-engine/*" + ] + } + ] +} + +---- + +ワークスペース サービスがエンジンのポリシーを作成する場合、ポリシーは以下のように制限されます。 + +[source, bash, id="restricted_policy", role="content-editable emits-gtm-events"] +---- +"Resource": ["arn:aws:secretsmanager:::secret:compute-engine//"] +---- + +IAM ロールとポリシーを指定する場合、クラスタ名を予測することはできません。この状況を回避するには、以下のような置換ポリシーでワイルドカードを使用できます。 + +[source, bash, id="restricted_policy_wildcard", role="content-editable emits-gtm-events"] +---- +"arn:aws:secretsmanager:::secret:compute-engine/*" +or +"arn:aws:secretsmanager::111111111111:secret:compute-engine/*" +or +"arn:aws:secretsmanager:us-west-2:111111111111:secret:compute-engine/*" +---- + +== AWSで永続的なボリュームを使用する + +Teradata AI Unlimitedを使用すると、コンテナ、ポッド、またはノードのクラッシュや終了に関係なく、状態を持続させる必要があるエンジンを再デプロイできます。この機能には、永続的なストレージ、つまり、コンテナ、ポッド、またはノードの存続期間を超えて存続するストレージが必要です。Teradata AI Unlimited は、インスタンスのインスタンス ルート ボリュームを使用して、JupyterLab **/userdata** フォルダ、ワークスペース サービス データベース、および構成ファイルにデータを保存します。インスタンスをシャットダウン、再起動、またはスナップショットを作成して再起動しても、データは保持されます。ただし、インスタンスが終了すると、JupyterLabのデータとワークスペースサービスのデータベースが失われるため、その場でインスタンスを実行した場合に問題が発生する可能性があり、警告なしに削除される可能性があります。高度に永続的なインスタンスが必要な場合は、 `UsePersistentVolume` パラメータを有効にして、JupyterLab データとワークスペース サービス データベースを別のボリュームに移動します。 + +以下の推奨される永続ボリューム フローでは、ボリュームが再マウントされ、データが保持されます。 + +1. `UsePersistentVolume` を **New** として、`PersistentVolumeDeletionPolicy` を **Retain**として設定して、新しいデプロイメントを作成する。 +2. スタック出力では、将来使用するためにvolume-idをメモする。 +3. インスタンスが終了するまで、インスタンスを構成して使用する。 +4. 次回のデプロイでは、以下の設定を使用します。 ++ +* `UsePersistentVolume` を以下として設定 **New** +* `PersistentVolumeDeletionPolicy` を以下として設定 **Retain** +* `ExistingPersistentVolumeId` が以前のデプロイメントの volume-id に設定される + +以前のデータでインスタンスを再作成する必要がある場合は、いつでも同じ設定でテンプレートを再起動できる。 + + +== 次のステップ + +* 簡単なワークフローを実行して、Teradata AI Unlimited を開始します。link:running-sample-ai-unlimited-workload.html[Teradata AI Unlimitedを使用してJupyterLabでサンプルワークロードを実行する] を参照してください。 + +* Teradata AI Unlimited が実際のユースケースでどのように役立つかを知りたいですか? 近日公開! GitHub リンクについては、このスペースを引き続き監視してください。 + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/ai-unlimited/ai-unlimited-magic-reference.adoc b/modules/ROOT/pages/ja/ai-unlimited/ai-unlimited-magic-reference.adoc new file mode 100644 index 000000000..3bafe3c70 --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/ai-unlimited-magic-reference.adoc @@ -0,0 +1,346 @@ += Teradata AI Unlimited JupyterLab マジック コマンド リファレンス +:page-lang: ja +:experimental: +:page-author: Thripti Aravind +:page-email: thripti.aravind@teradata.com +:page-revdate: 2023年10月19日 +:description: Teradata AI Unlimited JupyterLab マジック コマンドについて学びましょう。 +:keywords: Teradata AI Unlimited, Teradata AI Unlimited Workspace service, Teradata AI Unlimited Compute Engine +:page-image-directory: ai-unlimited-magic-reference + +IMPORTANT: この製品はプレビュー版であり、変更される可能性があります。このサービスの詳細については、Teradataサポートに連絡してください。 + +== 概要 + +AI Unlimited JupyterLab は、既存の Teradata SQL Kernel マジック コマンドに加えて、以下のマジック コマンドをサポートします。 link:https://github.com/Teradata/jupyterextensions/blob/master/notebooks/sql/GettingStarted.ipynb[「 Teradata JupyterLab Getting Started Guide 」]を参照してください。 + +== %workspaces_config + +**説明**:ワークスペースサービスとバインドするための1回限りの設定。 + +**使用方法**: + +[source, bash, id="magic_workspaces_config", role="content-editable emits-gtm-events"] +---- +%workspaces_config host=, apikey=, withtls= +---- +構文規則: + +* host: エンジン サービスの名前または IP アドレス。 + +* apikey: ワークスペース サービスの **Profile** ページからの API キー値。 + +* [オプション] withTLS: False (F) の場合、デフォルトのクライアント サーバー通信では TLS が使用されません。 + +出力: + +---- +Workspace configured for host= +---- + +== %project_create + +**説明**:新しいプロジェクトを作成する。このコマンドは、GitHubアカウントにプロジェクト名を持つ新しいリポジトリも作成されます。設定は **engine.yml** ファイルに保存されます。 + +**使用方法**: + +[source, bash, id="magic_project_create", role="content-editable emits-gtm-events"] +---- +%project_create project=, env=, team= +---- +構文規則: + +* project: 作成されるプロジェクトの名前。 + +* env: プロジェクトがホストされるクラウド環境。値はaws、azure、gcp、またはvsphereを指定できます。現在のリリースでは、AWSとAzureがサポートされています。 + +* [オプション] team: プロジェクトで共同作業しているチームの名前。 + +**出力**: +---- +Project created +---- + +== %project_delete + +**説明**:プロジェクトを削除する。 + +WARNING: このコマンドを実行すると、Teradata AI Unlimitedを使用して作成されたオブジェクトを含むGitHubリポジトリが削除されます。 + +**使用方法**: +[source, bash, id="magic_project_delete", role="content-editable emits-gtm-events"] +---- +%project_delete project=, team= +---- +構文規則: + +* project: 削除されるプロジェクトの名前。 + +* [オプション] team: プロジェクトで共同作業しているチームの名前。 + +**出力**: +---- +Project deleted +---- + + +== %project_list + +**説明**: プロジェクトの詳細をリストする。 + +特定のプロジェクトの詳細を取得するには、project パラメータを使用します。パラメータを指定せずにコマンドを実行すると、すべてのプロジェクトがリストされます。 + +**使用方法**: +[source, bash, id="magic_project_list", role="content-editable emits-gtm-events"] +---- +%project_list project= +---- +構文規則: + +* project: リストされるプロジェクトの名前。 + +**出力**: + +image::ai-unlimited/{page-image-directory}/ai.unlimited.project.list.png[プロジェクトをリスト, width=500] + + +== %project_auth_create + +**説明**: オブジェクト ストア認証情報を保存するための認証オブジェクトを作成する。 + +エンジンをデプロイする前に、認証オブジェクトを作成する必要があります。認証の詳細は保持され、プロジェクトの再デプロイ時に組み込まれます。オプションで、エンジンのデプロイ後に `CREATE AUTHORIZATION` の SQL コマンドを使用して認証を手動で作成できます。この場合、認証の詳細は保持されません。 + +**使用方法**: +[source, bash, id="magic_auth_create", role="content-editable emits-gtm-events"] +---- +%project_auth_create project=, name=, key=, secret=, region=, token= , role=, ExternalID= +---- +構文規則: + +* project: プロジェクトの名前。 + +* name: オブジェクトストアの認証名。 + +* key: オブジェクト ストアの認証キー。 + +* secret: オブジェクト ストアの認証シークレット アクセス ID。 + +* region: オブジェクトストアのリージョン。 local はローカル オブジェクト ストアの場合です。 + +* [オプション] token: オブジェクト ストア アクセス用のセッション トークン。 + +* [オプション] role: ロールとその資格を引き受けることで、AWS アカウントから AWS リソースにアクセスするための IAM ユーザーまたはサービス アカウント。AWSリソースの所有者がロールを定義します。例: arn:aws:iam::00000:role/STSAssumeRole。 + +* ExternalID: オブジェクト ストアへのアクセスに使用される外部 ID。 + + +**出力**: + +---- +Authorization 'name' created +---- + +== %project_auth_update + +**説明**: オブジェクト ストアの認証を更新する。 + +**使用方法**: +[source, bash, id="magic_auth_update", role="content-editable emits-gtm-events"] +---- +%project_auth_update project=, name=, key=, secret=, region=, token= , role=, ExternalID= +---- +構文規則: + +* project: プロジェクトの名前。 +* name: オブジェクトストアの認証名。 +* key: オブジェクト ストアの認証キー。 +* [オプション] secret: オブジェクト ストアの認証シークレット アクセス ID。 +* [オプション] region: オブジェクト ストアのリージョン。 local はローカル オブジェクト ストアの場合です。 +* [オプション] token: オブジェクト ストア アクセス用のセッション トークン。 +* [オプション] role: ロールとその資格を引き受けることで、AWS アカウントから AWS リソースにアクセスするための IAM ユーザーまたはサービス アカウント。AWSリソースの所有者がロールを定義します。例: arn:aws:iam::00000:role/STSAssumeRole。 +* ExternalID: オブジェクト ストアへのアクセスに使用される外部 ID。 + +**出力**: + +---- +Authorization 'name' updated +---- + +== %project_auth_delete + +**説明**: オブジェクト ストアの認証を削除する。 + +**使用方法**: +[source, bash, id="magic_auth_delete", role="content-editable emits-gtm-events"] +---- +%project_auth_delete project=, name= +---- +構文規則: + +* project: プロジェクトの名前。 +* name: オブジェクトストアの認証名。 + +**出力**: +---- +Authorization 'name' deleted +---- + +== %project_auth_list + +**説明**: プロジェクトに対して作成されたオブジェクト ストア認証をリストする。 + +**使用方法**: +[source, bash, id="magic_auth_list", role="content-editable emits-gtm-events"] +---- +%project_auth_list project= +---- +構文規則: + +* project: プロジェクトの名前。 + +**出力**: + +image::ai-unlimited/{page-image-directory}/ai.unlimited.auth.list.png[認証をリスト, width=500] + +== %project_engine_deploy + +**説明**: プロジェクトのエンジンをデプロイする。デプロイのプロセスが完了するまでに数分かかります。デプロイメントが成功すると、パスワードが生成されます。 + +**使用方法**: +[source, bash, id="magic_engine_deploy", role="content-editable emits-gtm-events"] +---- +%project_engine_deploy project=, size=, node=, subnet=, region=, secgroups=, cidrs= +---- +構文規則: + +* project: プロジェクトの名前。 +* size: エンジンのサイズ。値は以下のとおりです。 +** small +** medium +** large +** extralarge +* [オプション] node: デプロイするエンジン ノードの数。デフォルト値は 1 です。 +* [オプション] subnet: サービスからのデフォルト値がない場合にエンジンに使用されるサブネット。 +* [オプション] region: サービスからのデフォルト値がない場合にエンジンに使用されるリージョン。 +* [オプション]secgroups:各リージョンのVPCのセキュリティグループのリスト。セキュリティ グループを指定しない場合、エンジンは VPC のデフォルトのセキュリティ グループに自動的に関連付けられます。 +* [オプション] cidr: エンジンに使用される CIDR アドレスのリスト。 + + +**出力**: +---- +Started deploying. +Success: Compute Engine setup, look at the connection manager +---- + +image::ai-unlimited/{page-image-directory}/ai.unlimited.engine.deploy.png[エンジンのデプロイ, width=500] + +== %project_engine_suspend + +**説明**:作業が終わったらエンジンを停止する。 + +**使用方法**: +[source, bash, id="magic_engine_suspend", role="content-editable emits-gtm-events"] +---- +%project_engine_suspend +---- +構文規則: + +* project: プロジェクトの名前。 + +**出力**: + +---- +Started suspend. Success: connection removed +Success: Suspending Compute Engine +---- + +== %project_engine_list + +**説明**: プロジェクトにデプロイされているエンジンの一覧表示します。 + +**使用方法**: +[source, bash, id="magic_engine_list", role="content-editable emits-gtm-events"] +---- +%project_engine_list project= +---- +構文規則: + +* project: プロジェクトの名前。 + +**出力**: + +image::ai-unlimited/{page-image-directory}/ai.unlimited.engine.list.png[エンジンのリスト, width=500] + +== %project_user_list + +**説明**: プロジェクトに割り当てられた共同作業者の一覧表示します。 + +**使用方法**: +[source, bash, id="magic_project_user_list", role="content-editable emits-gtm-events"] +---- +%project_user_list project= +---- + +構文規則: + +* [オプション] project: プロジェクトの名前。 + +**出力**: + +image::ai-unlimited/{page-image-directory}/ai.unlimited.user.list.png[ユーザーリスト, width=500] + +== %project_backup + +**説明**: エンジン内のプロジェクトのメタデータとオブジェクト定義をバックアップする。 + +**使用方法**: +[source, bash, id="magic_project_backup", role="content-editable emits-gtm-events"] +---- +%project_backup project= +---- +構文規則: + +* project: プロジェクトの名前。 + +**出力**: +---- +Backup of the object definitions created +---- + +== %project_restore + +**説明**:GitHubリポジトリからプロジェクトのメタデータとオブジェクト定義を復元する。 + +**使用方法**: +[source, bash, id="magic_project_restore", role="content-editable emits-gtm-events"] +---- +%project_restore project=, gitref= +---- +構文規則: + +* project: プロジェクトの名前。 +* [オプション] gitref:Gitリファレンス。 + +**出力**: +---- +Restore of the object definitions done +---- + +== %help + +**説明**: AI-Unlimited-Teradata SQL CE Kernel で提供されるマジックを一覧表示する。 + +**使用方法**: +[source, bash, id="magic_help", role="content-editable emits-gtm-events"] +---- +%help +---- +さらに、コマンドごとに詳細なヘルプメッセージを表示することもできます。 + +**使用方法**: +[source, bash, id="magic_command_help", role="content-editable emits-gtm-events"] +---- +%help +---- + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/ai-unlimited/deploy-ai-unlimited-aws-cloudformation.adoc b/modules/ROOT/pages/ja/ai-unlimited/deploy-ai-unlimited-aws-cloudformation.adoc new file mode 100644 index 000000000..c2f0f2afe --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/deploy-ai-unlimited-aws-cloudformation.adoc @@ -0,0 +1,312 @@ += AWS CloudFormation テンプレートを使用して Teradata AI Unlimited Workspace サービスとインターフェースをデプロイする +:page-lang: ja +:experimental: +:page-author: Thripti Aravind +:page-email: thripti.aravind@teradata.com +:page-revdate: 2023 年 11 月 14 日 +:description: AWS CloudFormation テンプレートを使用して Teradata AI Unlimited ワークスペースサービスと JupyterLab をデプロイする方法を学びます。 +:keywords: Teradata AI Unlimited, Teradata AI Unlimited Workspace service, Teradata AI Unlimited Compute Engine +:page-image-directory: deploy-ai-unlimited-aws-cloudformation + +IMPORTANT: この製品はプレビュー版であり、変更される可能性があります。このサービスの詳細については、Teradataサポートに連絡してください。 + +== 概要 + +AWS CloudFormation テンプレートは、AWS コンピューティング、ネットワーク、ストレージ、およびワークスペース サービスと JupyterLab を AWS にデプロイするために必要なその他のサービスを起動、設定、実行します。 +以下のいずれかの方法を使用して CloudFormation テンプレートをデプロイできます。 + +* <<_deploy_cloudformation_template_from_aws_console, AWSコンソール>> +* link:deploy-ai-unlimited-awscli-cloudformation.html[AWS CLI から CloudFormation テンプレートをデプロイする] + +== AWS Console から CloudFormation テンプレートをデプロイする + +=== コストと請求 + +ワークスペース サービスのダウンロードに追加料金はかかりません。 ただし、ワークスペース サービスとエンジンのデプロイ中に使用される AWS のサービスまたはリソースのコストはお客様の負担となります。 +AWS CloudFormation テンプレートには、カスタマイズできる設定パラメータが含まれています。インスタンス型などの設定の一部は、デプロイメントのコストに影響します。コストの見積もりについては、マーケットプレイスの契約ページを確認してください。 + +=== 始める前に + +ターミナル ウィンドウを開き、 link:https://github.com/Teradata/ai-unlimited/tree/develop/deployments/aws[Teradata AI Unlimited GitHub リポジトリ] のクローンを作成します。このリポジトリには、ワークスペース サービスと JupyterLab をデプロイするためのサンプル CloudFormation テンプレートが含まれています。 + +[source, bash, id="clone_ai_unlimited_repo", role="content-editable emits-gtm-events"] +---- +git clone https://github.com/Teradata/ai-unlimited +---- + +=== ステップ1: AWSアカウントを準備する + +1. AWS アカウントをまだお持ちでない場合は、画面上の指示に従って、link:https://aws.amazon.com[https://aws.amazon.com]でアカウントを作成します。 +2. ワークスペース サービスをデプロイするアカウントに、IAM ロールまたは IAM ポリシーを作成するための十分な IAM アクセス権があることを確認してます。アカウントに必要なアクセス権がない場合は、組織の管理者に問い合わせてください。 link:ai-unlimited-aws-permissions-policies.html[カスタム権限とポリシーを使用してAWSのアクセスと権限を制御する] を参照してください。 +3. ナビゲーション バーのリージョン セレクターを使用して、Teradata AI Unlimited ワークスペース サービスをデプロイする AWS リージョンを選択します。 +4. ワークスペース サービス インスタンスの起動後に SSH を使用して安全に接続するためのキー ペアを生成します。 link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html[Amazon EC2キーペアとLinuxインスタンス] を参照してください。 ++ +NOTE: あるいは、AWS Session Manager を使用してワークスペース サービス インスタンスに接続することもできます。その場合、session-manager.json ポリシーを IAM ロールに付与する必要があります。 link:ai-unlimited-aws-permissions-policies.html[カスタム権限とポリシーを使用してAWSのアクセスと権限を制御する] を参照してください。ホスト OS へのアクセスが必要ない場合は、これらの接続方法のいずれも使用しないことを選択できます。 + + +=== ステップ2:Teradata AI Unlimited AMIに登録する + +今回は、AWS で実行される Teradata AI Unlimited の Amazon Machine Image (AMI) サブスクリプションが必要です。Teradata AI Unlimitedのライセンスを取得するには、Teradataサポートに連絡してください。 + +サブスクライブするには: + +1. AWSアカウントにログオンする。 +2. Teradata AI UnlimitedのAWSマーケットプレイスページを開き、**Continue** を選択する。 +3. エンジンイメージの利用規約を確認し、同意する。 + ++ + +* Leader: link:https://aws.amazon.com/marketplace/pp/prodview-6vip7ar4pi6ey?ref_=aws-mp-console-subscription-detail[https://aws.amazon.com/marketplace/pp/prodview-6vip7ar4pi6ey?ref_=aws-mp-console-subscription-detail] + +* Follower: link:https://aws.amazon.com/marketplace/pp/prodview-xcwypvttluuiw?ref_=aws-mp-console-subscription-detail[https://aws.amazon.com/marketplace/pp/prodview-xcwypvttluuiw?ref_=aws-mp-console-subscription-detail] + + +=== ステップ3: AWSコンソールからワークスペースサービスとJupyterLabをデプロイする + +1. AWSコンソールでAWSアカウントにサインオンする。 +2. ナビゲーションバーの右上隅に表示される **AWSリージョン** を確認し、必要に応じて変更します。Teradataでは、プライマリ作業場所に最も近いリージョンを選択することをお薦めする。 +3. **CloudFormation** > **Create Stack** に移動します。 **Create Stack** を選択し、 **With new resources (standard)** を選択します。 +4. **テンプレートの準備ができました** を選択し、Teradata AI Unlimited GitHub リポジトリからダウンロードしたテンプレート ファイルの 1 つをアップロードします。 ++ + +* link:https://github.com/Teradata/ai-unlimited/tree/develop/deployments/aws#workspaces-template[Workspaces テンプレート]: systemd によって制御されるコンテナー内で実行されるワークスペースを含む単一のインスタンスをデプロイします。 +** link:https://github.com/Teradata/ai-unlimited/blob/develop/deployments/aws/workspaces.yaml[workspaces.yaml] CloudFormation テンプレート +** link:https://github.com/Teradata/ai-unlimited/blob/develop/deployments/aws/parameters/workspaces.json[parameters/workspaces.json] パラメータ ファイル +* link:https://github.com/Teradata/ai-unlimited/tree/develop/deployments/aws#jupyter-template[Jupyter テンプレート]: systemd によって制御されるコンテナ内で実行される JupyterLab を含む単一のインスタンスをデプロイします。 +** link:https://github.com/Teradata/ai-unlimited/blob/develop/deployments/aws/jupyter.yaml[jupyter.yaml] CloudFormation テンプレート +** link:https://github.com/Teradata/ai-unlimited/blob/develop/deployments/aws/parameters/jupyter.json[parameters/jupyter.json] パラメータ ファイル +* link:https://github.com/Teradata/ai-unlimited/tree/develop/deployments/aws#all-in-one-template[All-In-One ワンテンプレート]: Workspaces と JupyterLab が同じインスタンス上で実行される単一のインスタンスをデプロイします。 +** link:https://github.com/Teradata/ai-unlimited/blob/develop/deployments/aws/all-in-one.yaml[all-in-one.yaml] CloudFormation テンプレート +** link:https://github.com/Teradata/ai-unlimited/blob/develop/deployments/aws/parameters/all-in-one.json[parameters/all-in-one.json] パラメータ ファイル ++ +このテンプレートを使用している場合は、埋め込み JupyterLab サービスを使用することも、外部 JupyterLab インスタンスに接続することもできます。埋め込み JupyterLab サービスに接続するときは、JupyterLab Notebookで適切な接続アドレス (例えば、127.0.0.1) を設定する必要があります。また、外部クライアントの場合は、適切なパブリック/プライベート IP または DNS 名を設定する必要があります。 +5. テンプレートのパラメータを確認します。入力が必要なパラメータの値を指定します。その他のすべてのパラメータについては、デフォルト設定を確認し、必要に応じてカスタマイズします。パラメータの確認とカスタマイズが終了したら、**Next** を選択します。 + ++ +以下のテーブルでは、パラメータがカテゴリ別にリストされています。 ++ +**AWSインスタンスとネットワーク設定** ++ +[cols="1,1,1,1,1"] +|=== +|パラメータ |説明 |必須? |デフォルト |注記 + +|InstanceType +|サービスに使用する EC2 インスタンスの型。 +|デフォルトでは必須 +|t3.small +|Teradata では、コストを節約するためにデフォルトのインスタンス型を使用することをお勧めします。 + +|RootVolumeSize +|インスタンスに接続するroot ディスクのサイズ (GB 単位)。 +|デフォルトでは必須 +|8 +|8~1000の値をサポートします。 + +|TerminationProtection +|インスタンス終了保護を有効にします。 +|デフォルトでは必須 +|false +| + +|IamRole +|インスタンスに割り当てるIAMロールの名前。既存のIAMロールまたは 新しく作成されたIAMロールのいずれか。 +|デフォルトでは必須 +|New +|サポートされているオプションは以下のとおりです: NewまたはExisting + +link:ai-unlimited-aws-permissions-policies.html[] を参照してください。 + +|IamRoleName +|インスタンスに割り当てるIAMロールの名前。既存のIAMロールまたは で新しく作成されたIAMロールのいずれか。 +|デフォルトではオプション +|workspaces-iam-role +|新しい IAM ロールに名前を付ける場合、CloudFormation には CAPABILITY_NAMED_IAM 機能が必要です。 + +自動生成された名前を使用する場合は、このフィールドを空白のままにします。 + +|IamPermissionsBoundary +|インスタンスに割り当てられた IAM ロールに関連付ける IAM アクセス権境界の ARN。 +|オプション +| +| + +|AvailabilityZone +|インスタンスをデプロイするアベイラビリティゾーン。 +|必須 +| +|値はサブネット、既存のボリュームのゾーンと一致する必要があり、インスタンス型は選択したゾーンで使用できる必要があります。 + +|LoadBalancing +|インスタンスがNLBを介してアクセスされるかどうかを指定します。 +|デフォルトでは必須 +|NetworkLoadBalancer +|サポートされているオプションは以下のとおりです: NetworkLoadBalancer または なし + +|LoadBalancerScheme +|ロードバランサが使用されている場合、このフィールドは、インスタンスがインターネットからアクセスできるか、VPC 内からのみアクセスできるかを指定します。 +|デフォルトではオプション +|Internet-facing +|インターネットに接続されたロード バランサーの DNS 名は、ノードのパブリック IP アドレスにパブリックに解決できます。したがって、インターネットに接続されたロード バランサーは、クライアントからのリクエストをインターネット経由でルーティングできます。内部ロード バランサのノードにはプライベート IP アドレスのみがあります。インターネットに接続された内部ロード バランサーの DNS 名は、ノードのパブリック個人 IP アドレスにパブリックに解決できます。したがって、内部ロードバランサーは、ロードバランサーの VPC にアクセスできるクライアントからのリクエストをルーティングできます。 + +|Private +|サービスをパブリック IP のないプライベート ネットワークにデプロイするかどうかを指定します。 +|必須 +|false +| + +|Session +|AWSセッションマネージャを使用してインスタンスにアクセスできるかどうかを指定する。 +|必須 +|false +| + +|Vpc +|インスタンスをデプロイするネットワーク。 +|必須 +| +| + +|Subnet +|インスタンスをデプロイするサブネットワーク。 +|必須 +| +|サブネットは、選択した可用性ゾーン内に存在する必要があります。 + +|KeyName +|インスタンスの起動後に安全に接続できるようにする公開鍵と秘密鍵のペア。AWS アカウントを作成するとき、これは優先リージョンで作成するキー ペアです。 +|オプション +| +|SSHキーを含めない場合は、このフィールドを空白のままにします。 + +|AccessCIDR +|インスタンスへのアクセスが認証される CIDR IP アドレス範囲。 +|オプション +| +|Teradata では、この値を信頼できる IP 範囲に設定することをお勧めします。 +カスタム セキュリティ グループ受信ルールを作成しない限り、受信通信量を認証するには、AccessCIDR、PrefixList、または SecurityGroup の少なくとも 1 つを定義します。 + +|PrefixList +|インスタンスとの通信に使用できる接頭辞リスト。 +|オプション +| +|カスタム セキュリティ グループ受信ルールを作成しない限り、受信通信量を認証するには、AccessCIDR、PrefixList、または SecurityGroup の少なくとも 1 つを定義します。 + +|SecurityGroup +|インスタンスへのインバウンドおよびアウトバウンドの通信量を制御する仮想ファイアウォール。 +|オプション +| +|SecurityGroup は、インスタンスへのアクセスを認証するプロトコル、ポート、IP アドレスまたは CIDR ブロックを指定する一連のルールとして実装されます。 +カスタム セキュリティ グループ受信ルールを作成しない限り、受信通信量を認証するには、AccessCIDR、PrefixList、または SecurityGroup の少なくとも 1 つを定義します。 + +|UsePersistentVolume +|データの保存に永続ボリュームを使用するかどうかを指定します。 +|デフォルトではオプション +|なし +|サポートされるオプションは、ユースケースに応じて、新しい永続ボリューム、既存の永続ボリューム、またはなしです。 + +|PersistentVolumeSize +|インスタンスに付与できる永続ボリュームのサイズ (GB 単位)。 +|デフォルトでは必須 +|8 +|8 ~ 1000 の値をサポート + +|ExistingPersistentVolumeId +|インスタンスに付与できる既存の永続ボリュームの ID。 +|UsePersistentVolume が Existing に設定されている場合は必須 +| +|永続ボリュームは、ワークスペース サービス インスタンスと同じ可用性ゾーンに存在する必要があります。 + +|PersistentVolumeDeletionPolicy +|CloudOmatics の配置を削除したときの永続的なボリュームの動作。 +|デフォルトでは必須 +|Delete +|サポートされているオプションは、 Delete、Retain、RetainExceptOnCreate、およびSnapshotです。 + +|LatestAmiId +|AMI の最新バージョンを指すイメージの ID。この値は SSM ルックアップに使用されます。 +|デフォルトでは必須 +| +|このデプロイメントでは、利用可能な最新の ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 イメージを使用します。 +IMPORTANT: この値を変更すると、スタックが破損する可能性があります。 +|=== + ++ +**Workspace サービスのパラメータ** ++ +[cols="1,1,1,1,1"] +|=== +|パラメータ |説明 |必須? |デフォルト |注記 + +|WorkspacesHttpPort +|Workspace サービス UI にアクセスするためのポート。 +|デフォルトでは必須 +|3000 +| + +|WorkspacesGrpcPort +|Workspace サービス API にアクセスするためのポート。 +|デフォルトでは必須 +|3282 +| + +|WorkspacesVersion +|デプロイするワークスペース サービスのバージョン。 +|デフォルトでは必須 +|latest +|値はコンテナのバージョンタグ (latest など) です。 +|=== + ++ +**JupyterLabのパラメータ** ++ +[cols="1,1,1,1,1"] +|=== +|パラメータ |説明 |必須? |デフォルト |注記 + +|JupyterHttpPort +|JupyterLab サービス UI にアクセスするためのポート +|デフォルトでは必須 +|8888 +| + +|JupyterToken +|UI から JupyterLab にアクセスするために使用されるトークンまたはパスワード +|必須 +| +|トークンは文字で始まり、英数字のみを含む必要があります。認証されるパターンは ^[a-zA-Z][a-zA-Z0-9-]* です。 + +|JupyterVersion +|デプロイしたいJupyterLabのバージョン。 +|デフォルトでは必須 +|latest +|値はコンテナのバージョンタグ (latest など) です。 +|=== + + ++ +NOTE: Workspace サービスをデプロイしているアカウントに、IAM ロールまたは IAM ポリシーを作成するための十分な IAM アクセス権がない場合は、クラウド管理者に問い合わせてください。 + +6. **オプション** ページでは、スタック内のリソースのタグ (キーと値のペア) の指定、アクセス権の設定、スタック障害オプションの設定、および詳細オプションの設定を行うことができます。終了したら、**Next** を選択します。 +7. **Review**ページで、テンプレート設定を確認します。[Capabilities]で、テンプレートがIAMリソースを作成することを確認するチェックボックスをオンにします。 +8. **Create**を選択してstackをデプロイします。 +9. スタックのステータスを監視します。ステータスが`CREATE_COMPLETE`の場合、Teradata AI Unlimitedワークスペースサービスの準備が整っています。 +10. スタックの **Outputs** タブに表示されるURLを使用して、作成されたリソースを表示します。 + +=== ステップ4:ワークスペースサービスの設定とセットアップ + +link:https://quickstarts.teradata.com/ai-unlimited/install-ai-unlimited-workspaces-docker.html#_configure_and_set_up_workspace_service[ワークスペースサービスの設定とセットアップ] を参照してください。 + +NOTE: ワークスペース サービスのみをデプロイした場合は、ワークロードを実行する前にインターフェースをデプロイする必要があります。インターフェースをDocker上にローカルにデプロイするには、 link:install-ai-unlimited-interface-docker.html[Dockerを使用した Teradata AI Unlimited インターフェースのデプロイ] を参照してください。 link:https://github.com/Teradata/ai-unlimited/tree/develop/deployments/aws#jupyter-template[Jupyter テンプレート] を使用して、systemd によって制御されるコンテナ内で実行される JupyterLab を持つ単一のインスタンスをデプロイすることもできます。 + +Teradata AI Unlimited の準備が整いました。 + +== 次のステップ + +* 簡単なワークフローを実行して、Teradata AI Unlimited を開始します。 link:running-sample-ai-unlimited-workload.html[Teradata AI Unlimitedを使用してJupyterLabでサンプルワークロードを実行する] を参照してください。 + +* Teradata AI Unlimited-AWS IAMのロールとポリシーについて詳しく知りたいですか? link:ai-unlimited-aws-permissions-policies.html[カスタム権限とポリシーを使用してAWSのアクセスと権限を制御する] を参照してください。 + +* Teradata AI Unlimited が実際のユースケースでどのように役立つかを知りたいですか? 近日公開! GitHub リンクについては、このスペースを引き続き監視してください。 + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/ai-unlimited/deploy-ai-unlimited-awscli-cloudformation.adoc b/modules/ROOT/pages/ja/ai-unlimited/deploy-ai-unlimited-awscli-cloudformation.adoc new file mode 100644 index 000000000..ab5ae22f8 --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/deploy-ai-unlimited-awscli-cloudformation.adoc @@ -0,0 +1,82 @@ += AWS CLI から CloudFormation テンプレートをデプロイする +:page-lang: ja +:experimental: +:page-author: Thripti Aravind +:page-email: thripti.aravind@teradata.com +:page-revdate: 2023 年 11 月 14 日 +:description: AWS CLI から Teradata AI Unlimited CloudFormation テンプレートをデプロイする方法を学びます。 +:keywords: 4Teradata AI Unlimited, Teradata AI Unlimited Workspace service, Teradata AI Unlimited Compute Engine +:page-image-directory: deploy-ai-unlimited-awscli-cloudformation + +IMPORTANT: この製品はプレビュー版であり、変更される可能性があります。このサービスの詳細については、Teradataサポートに連絡してください。 + +== 概要 + +AWS CLIから`aws cloudformation create-stack`または`aws cloudformation deploy`コマンドを使用してスタックをデプロイできる。このセクションの例では、create-stackコマンドを使用している。 `create-stack` コマンドと `deploy` コマンドの構文の違いについては 、 link:https://docs.aws.amazon.com/cli/latest/reference/cloudformation/#cli-aws-cloudformation[AWS CLI コマンド リファレンス]ドキュメントを参照してください。 + +== 始める前に + +* AWS CLIをインストールして設定する。 link:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html[「AWS CLI の開始方法」]を参照してください。 +* 以下を確認します。 +** 必須の AWS 認証情報。 +** リソースを作成および管理するために必要な IAM アクセス権。必要なアクセス権がない場合は、組織管理者に問い合わせて、指定されたすべてのロールを作成してください。 +** 必要なパラメータファイルとCloudFormationテンプレート。ファイルは link:https://github.com/Teradata/ai-unlimited/tree/develop/deployments/aws[AI Unlimited GitHubリポジトリ] からダウンロードできます。 + +== スタックを作成する +AWS CLI で以下のコマンドを実行します。 + +[source, bash, id="aws_cli_create_stack", role="content-editable emits-gtm-events"] +---- +aws cloudformation create-stack --stack-name all-in-one \ + --template-body file://all-in-one.yaml \ + --parameters file://test_parameters/all-in-one.json \ + --tags Key=ThisIsAKey,Value=AndThisIsAValue \ + --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM +---- + +NOTE: + +* IamRoleが新規に設定されている場合は、CAPABILITY_IAMが必要です。 +* IamRoleがNewに設定され、IamRoleNameに値が指定されている場合は、CAPABILITY_NAMED_IAM が必要です。 + +既存のロールを使用するには、「アクセス権とポリシーを使用した AWS アクセスとアクセス権の制御」を参照してください。 + +== スタックを削除する + +AWS CLI で以下のコマンドを実行します。 + +[source, bash, id="aws_cli_delete_stack", role="content-editable emits-gtm-events"] +---- +aws cloudformation delete-stack --stack-name +---- + +== スタック情報を取得する + +AWS CLI で以下のコマンドを実行します。 + +[source, bash, id="aws_cli_get_stack_info", role="content-editable emits-gtm-events"] +---- +aws cloudformation delete-stack --stack-name +aws cloudformation describe-stacks --stack-name +aws cloudformation describe-stack-events --stack-name +aws cloudformation describe-stack-instance --stack-name +aws cloudformation describe-stack-resource --stack-name +aws cloudformation describe-stack-resources --stack-name +---- + +== スタック出力を取得する + +AWS CLI で以下のコマンドを実行します。 + +[source, bash, id="aws_cli_get_stack_output", role="content-editable emits-gtm-events"] +---- +aws cloudformation describe-stacks --stack-name --query 'Stacks[0].Outputs' --output table +---- + +== 次のステップ + +* 簡単なワークフローを実行して、Teradata AI Unlimited を開始します。link:running-sample-ai-unlimited-workload.html[Teradata AI Unlimitedを使用してJupyterLabでサンプルワークロードを実行する] を参照してください。 + +* Teradata AI Unlimited が実際のユースケースでどのように役立つかを知りたいですか? 近日公開! GitHub リンクについては、このスペースを引き続き監視してください。 + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/ai-unlimited/getting-started-with-ai-unlimited.adoc b/modules/ROOT/pages/ja/ai-unlimited/getting-started-with-ai-unlimited.adoc new file mode 100644 index 000000000..3844656d8 --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/getting-started-with-ai-unlimited.adoc @@ -0,0 +1,43 @@ += Teradata AI Unlimited のスタートガイド +:page-lang: ja +:page-author: Thripti Aravind +:page-email: thripti.aravind@teradata.com +:page-revdate: 2023 年 11 月 14 日 +:description: Teradata AI Unlimited の構成要素と利用可能なデプロイオプションについて学びます。 +:keywords: Teradata AI Unlimited, Teradata AI Unlimited Workspace service, Teradata AI Unlimited Compute Engine +:page-image-directory: getting-started-with-ai-unlimited + +IMPORTANT: この製品はプレビュー版であり、変更される可能性があります。このサービスの詳細について興味がある場合は、Teradata サポートにお問い合わせください。 + +== 概要 + +Teradata AI Unlimited は、SQL エンジンをデプロイしてデータ レイクに接続できるようにするセルフサービスのオンデマンド プラットフォームです。その後、任意のクラウド サービス プロバイダ (CSP) にデプロイされたスケーラブルな AI Unlimited コンピューティング エンジンでワークロードを実行できます。エンジンを使用すると、データ管理の必要性を排除しながら、高度な並列データベースの機能を活用できます。 + +Teradata AI Unlimited は、以下の構成要素で構成されています。 + +* **ワークスペースサービス**: Teradata AI Unlimited の自動化とデプロイを制御および管理するオーケストレーション サービス。また、データ関連プロジェクトの実行時にシームレスなユーザー エクスペリエンスを提供する統合構成要素も制御します。ワークスペースサービスには、ユーザーを承認し、CSP 統合の選択を定義するために使用できる Web ベースの UI が含まれています。 + +* **インターフェース**: データ プロジェクトを作成して実行し、Teradata システムに接続し、データを視覚化するための環境。JupyterLabまたはワークスペースクライアント(workspacectl)のいずれかを使用できます。 + +* **エンジン**: データ サイエンスおよび分析ワークロードの実行に使用できる、フルマネージドの計算リソース。 + +== デプロイメントオプション + +以下のオプションのいずれかを使用して、Teradata AI Unlimited 構成要素をデプロイできます。 + +* Docker上でローカルに実行されるワークスペースサービスと JupyterLab +* Virtual Private Cloud (VPC) 上のワークスペース サービスと、Docker上でローカルに実行されている JupyterLab +* VPC 上の同じインスタンス上のワークスペース サービスと JupyterLab +* Network Load Balancer の背後にあるワークスペースサービスと JupyterLab + +開発環境またはテスト環境の場合、Dockerを使用してワークスペース サービスと JupyterLab をデプロイできます。link:install-ai-unlimited-workspaces-docker.html[Dockerを使用した Teradata AI Unlimited Workspaceサービスのデプロイとセットアップ] を参照してください。クラウド インフラストラクチャにアクセスできるエンタープライズ ユーザーの場合は、ワークスペース サービスと JupyterLab を VPC にデプロイできます。link:deploy-ai-unlimited-aws-cloudformation.html[AWS CloudFormation テンプレートを使用して Teradata AI Unlimited Workspace サービスとインターフェースをデプロイする] と「Azure を使用してTeradata AI Unlimited をデプロイする方法」(近日公開)を参照してください。 + +== 次のステップ + +* Dockerを使用して Teradata AI Unlimited をローカルにデプロイしたいですか?link:install-ai-unlimited-workspaces-docker.html[Dockerを使用した Teradata AI Unlimited Workspaceサービスのデプロイとセットアップ] を参照してください。 + +* CloudFormation テンプレートを使用して AWS に Teradata AI Unlimited をデプロイしたいですか?link:deploy-ai-unlimited-aws-cloudformation.html[AWS CloudFormation テンプレートを使用して Teradata AI Unlimited Workspace サービスとインターフェースをデプロイする] を参照してください。 + +* Teradata AI Unlimited が実際のユースケースでどのように役立つかを知りたいですか? 近日公開! GitHub リンクについては、このスペースを引き続き監視してください。 + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/ai-unlimited/install-ai-unlimited-interface-docker.adoc b/modules/ROOT/pages/ja/ai-unlimited/install-ai-unlimited-interface-docker.adoc new file mode 100644 index 000000000..086d3863e --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/install-ai-unlimited-interface-docker.adoc @@ -0,0 +1,96 @@ += Dockerを使用した Teradata AI Unlimited インターフェースのデプロイ +:page-lang: ja +:experimental: +:page-author: Thripti Aravind +:page-email: thripti.aravind@teradata.com +:page-revdate: 2023 年 11 月 14 日 +:description: Docker Engine と Docker Compose を使用して Teradata AI Unlimited インターフェースをインストールする方法を学びます。 +:keywords: Teradata AI Unlimited、Teradata AI Unlimited Workspaceサービス、Teradata AI Unlimited Compute Engine +:page-image-directory: install-ai-unlimited-interface-docker + +IMPORTANT: この製品はプレビュー版であり、変更される可能性があります。このサービスの詳細について興味がある場合は、Teradata サポートにお問い合わせください。 + +このドキュメントでは、Dockerを使用して Teradata AI Unlimited インターフェースをデプロイおよび設定する手順の概要を説明します。Teradata AI Unlimited インターフェースとして JupyterLab またはワークスペース クライアントを使用できます。 + +JupyterLabは、次の手法でデプロイできます。 + +** <<_deploy_jupyterLab_using_docker_engine, Docker Engine>> + +** <<_deploy_jupyterLab_using_docker_compose, Docker Compose >> + +ワークスペース クライアントの詳細については、 link:using-ai-unlimited-workspace-cli.html[Workspace Client で Teradata AI Unlimited を使用する]を参照してください。 + +== Docker Engineを使用した JupyterLab のデプロイ + +1. link:https://hub.docker.com/r/teradata/ai-unlimited-jupyter[https://hub.docker.com/r/teradata/ai-unlimited-jupyter] にある DockerHub からDockerイメージをプルします。 + +2. `JUPYTER_HOME` 変数を設定したら、Dockerイメージを実行します。 ++ +NOTE: 要件に基づいてディレクトリを変更します。 ++ + +[source, bash, id="docker_engine_jupyter", role="content-editable emits-gtm-events"] +---- +docker run -detach \ + --env “accept_license=Y” \ + --publish 8888:8888 \ + --volume ${JUPYTER_HOME}:/home/jovyan/JupyterLabRoot \ + teradata/ai-unlimited-jupyter:latest +---- + +このコマンドは、JupyterLab コンテナをダウンロードして起動し、それにアクセスするために必要なポートを公開します。 +URL: http://localhost:8888 を使用して JupyterLab に接続し、プロンプトが表示されたらトークンを入力します。詳細な手順については、 link:https://docs.teradata.com/r/Teradata-VantageTM-Modules-for-Jupyter-Installation-Guide/Teradata-Vantage-Modules-for-Jupyter/Teradata-Vantage-Modules-for-Jupyter[「Teradata Vantage™ Modules for Jupyter インストール ガイド」] または link:https://quickstarts.teradata.com/jupyter.html[「Jupyter Notebook から Vantage を使用する」] を参照してください。 + +== Docker Composeを使用した JupyterLab のデプロイ + +Docker Compose を使用すると、Dockerベースの JupyterLab インストールを簡単に構成、インストール、アップグレードできます。 + + +1. Docker Composeをインストールします。link:https://docs.docker.com/compose/install/[https://docs.docker.com/compose/install/] を参照してください。 + +2. **jupyter.yml** ファイル を作成します。 ++ +[source, bash, id="docker_compose_jupyter", role="content-editable emits-gtm-events"] +---- + +version: "3.9" + +services: + jupyter: + deploy: + replicas: 1 + platform: linux/amd64 + container_name: jupyter + image: ${JUPYTER_IMAGE_NAME:-teradata/ai-unlimited-jupyter}:${JUPYTER_IMAGE_TAG:-latest} + environment: + accept_license: "Y" + ports: + - 8888:8888 + volumes: + - ${JUPYTER_HOME:-./volumes/jupyter}:/home/jovyan/JupyterLabRoot/userdata + networks: + - td-ai-unlimited + +networks: + td-ai-unlimited: + +---- + +3. **jupyter.yml** ファイルがあるディレクトリに移動し、JupyterLabを起動します。 ++ +[source, bash, id="docker_compose_jupyter_up", role="content-editable emits-gtm-events"] +---- +docker compose -f jupyter.yml up +---- ++ +JupyterLabサーバーが初期化されて起動されると、URL: http://localhost:8888を使用してJupyterLabに接続し、プロンプトが表示されたらトークンを入力します。詳細な手順については、 link:https://docs.teradata.com/r/Teradata-VantageTM-Modules-for-Jupyter-Installation-Guide/Teradata-Vantage-Modules-for-Jupyter/Teradata-Vantage-Modules-for-Jupyter[「Teradata Vantage™ Modules for Jupyter インストール ガイド」] または link:https://quickstarts.teradata.com/jupyter.html[「Jupyter Notebook から Vantage を使用する」] を参照してください。 + +おめでとうございます!これで、Teradata AI Unlimitedを使用するための設定は完了しました。 + +== 次のステップ + +* 簡単なワークフローを実行して、Teradata AI Unlimited を開始します。link:running-sample-ai-unlimited-workload.html[Teradata AI Unlimitedを使用してJupyterLabでサンプルワークロードを実行する] を参照してください。 + +* Teradata AI Unlimited が実際のユースケースでどのように役立つかを知りたいですか? 近日公開! GitHub リンクについては、このスペースを引き続き監視してください。 + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/ai-unlimited/install-ai-unlimited-workspaces-docker.adoc b/modules/ROOT/pages/ja/ai-unlimited/install-ai-unlimited-workspaces-docker.adoc new file mode 100644 index 000000000..1603fd806 --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/install-ai-unlimited-workspaces-docker.adoc @@ -0,0 +1,336 @@ += Dockerを使用した Teradata AI Unlimited Workspaceサービスのデプロイとセットアップ +:page-lang: ja +:experimental: +:page-author: Thripti Aravind +:page-email: thripti.aravind@teradata.com +:page-revdate: 2023 年 11 月 14 日 +:description: Docker Engine と Docker Compose を使用して Teradata AI Unlimited Workspace サービスをインストールおよび構成する方法を学びます。 +:keywords: Teradata AI Unlimited、Teradata AI Unlimited Workspaceサービス、Teradata AI Unlimited Compute Engine +:page-image-directory: install-ai-unlimited-workspaces-docker + +IMPORTANT: この製品はプレビュー版であり、変更される可能性があります。このサービスの詳細について興味がある場合は、Teradata サポートにお問い合わせください。 + +== 概要 + +このドキュメントでは、Dockerを使用して Teradata AI Unlimited ワークスペース サービスをデプロイおよび設定する手順の概要を説明します。 + +ワークスペースサービスは、次の方法でインストールできます。 + +* <<_deploy_workspace_service_using_docker_engine,Docker Engine>> +* <<_deploy_workspace_service_using_docker_compose, Docker Compose>> + +Teradata AI Unlimitedをワークスペース クライアントで使用するには、link:using-ai-unlimited-workspace-cli.html[Workspace Client で Teradata AI Unlimited を使用する] を参照してください。 + +== 始める前に + +次のものが揃っていることを確認してください。 + +* GitHubアカウント: GitHubのアカウントをまだ持っていない場合は、link:https://github.com/[https://github.com/]で作成してください。 +* CSPアカウント: AWSまたはAzure上のエンジンをホストできるもの。 ++ + +[tabs] +==== +AWS:: ++ +-- +link:https://aws.amazon.com/free/[https://aws.amazon.com/free/] で AWS 無料利用枠アカウントにサインアップします。AWS CLI を設定するには、「 link:https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html[https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html]」を参照してください。 + +-- +Azure:: ++ +-- +link:https://azure.microsoft.com/en-us/free[https://azure.microsoft.com/en-us/free]で Azure の無料アカウントにサインアップします。Azure CLI をインストールし、ワークスペース サービスを実行しているマシンに信頼証明を構成します。link:https://learn.microsoft.com/en-us/cli/azure/get-started-with-azure-cli[https://learn.microsoft.com/en-us/cli/azure/get-started-with-azure-cli] を参照してください。 +-- +==== +* Docker: Dockerをダウンロードしてインストールするには、 link:https://docs.docker.com/docker-for-windows/install/[https://docs.docker.com/docker-for-windows/install/]を参照してください。 + +== Dockerイメージをロードして環境を準備する + +Dockerイメージは、単一のコンテナ内で必要なサービスを実行するワークスペース サービスのモノリシック イメージです。 + + link:https://hub.docker.com/r/teradata/ai-unlimited-workspaces[Docker Hub] から Dockerイメージをプルします。 + +[source, bash, id="docker_pull", role="content-editable emits-gtm-events"] +---- +docker pull teradata/ai-unlimited-workspaces +---- + +続行する前に、必ず以下のことを行ってください。 + +* AWSコンソールからCSP環境変数をコピーして保持します。 + +** AWS: `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY`、および `AWS_SESSION_TOKEN` ++ +link:https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html[環境変数] を参照してください。 + +** Azure: `ARM_SUBSCRIPTION_ID`、`ARM_CLIENT_ID`、および `ARM_CLIENT_SECRET` ++ +Azure CLIを使用した環境変数の取得については、link:https://github.com/paulbouwer/terraform-azure-quickstarts-samples/blob/master/README.md#azure-authentication[Azure認証] を参照してください。 +* 環境変数 `WORKSPACES_HOME` を、構成ファイルとデータファイルがあるディレクトリに設定します。ディレクトリが存在し、適切なアクセス権が付与されていることを確認してください。`WORKSPACES_HOME` を設定しない場合、デフォルトの場所は **./volumes/workspaces** です。 ++ +[cols="1,1,1"] +|=== +|ローカルの場所 |コンテナの場所 |使用方法 + +|$WORKSPACES_HOME +|/etc/td +|データと構成の保存 + +|$WORKSPACES_HOME/tls +|/etc/td/tls +|証明書ファイルの保存する +|=== + + +== Docker Engineを使用してワークスペース サービスをデプロイする + + `WORKSPACES_HOME` 変数を設定したら、Dockerイメージを実行する。 + +NOTE: 要件に基づいてディレクトリを変更します。 + +[source, bash, id="docker_engine_run", role="content-editable emits-gtm-events"] +---- +docker run -detach \ + --env accept_license="Y" \ + --env AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" \ + --env AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" \ + --env AWS_SESSION_TOKEN="${AWS_SESSION_TOKEN}" \ + --publish 3000:3000 \ + --publish 3282:3282 \ + --volume ${WORKSPACES_HOME}:/etc/td \ + teradata/ai-unlimited-workspaces:latest +---- + +NOTE: Azure の場合、Teradata では Docker Compose を使用してワークスペース サービスをデプロイすることをお勧めします。 + +このコマンドは、ワークスペース サービス コンテナをダウンロードして開始し、アクセスするために必要なポートを公開します。ワークスペース サービス サーバーが初期化され、開始されると、URL: http://:3000/を使用してアクセスできます。 + +== Docker Composeを使用してワークスペース サービスをデプロイする + +Docker Compose を使用すると、Docker ベースのワークスペース サービス インストールを簡単に構成、インストール、アップグレードできます。 + +1. Docker Composeをインストールします。link:https://docs.docker.com/compose/install/[https://docs.docker.com/compose/install/] を参照してください。 + +2. **workspaces.yml** ファイルを作成します。 ++ +NOTE: 以下の例では、ローカル ボリュームを使用して CSP 信頼証明を保存します。CSP 環境変数を含む別の YAML ファイルを作成し、Docker Compose ファイルを実行できます。他のオプションについては、 link:https://github.com/Teradata/ai-unlimited/blob/develop/deployments/docker/README.md[「AI Unlimited GitHub: Docker Compose を使用して AI Unlimited をインストールする」] を参照してください。 ++ + +[tabs] +==== +AWS:: ++ +-- +[source, bash, id="aws_docker_compose", role="content-editable emits-gtm-events"] +---- +version: "3.9" + +services: + workspaces: + deploy: + replicas: 1 + platform: linux/amd64 + container_name: workspaces + image: ${WORKSPACES_IMAGE_NAME:-teradata/ai-unlimited-workspaces}:${WORKSPACES_IMAGE_TAG:-latest} + command: workspaces serve -v + restart: unless-stopped + ports: + - "443:443/tcp" + - "3000:3000/tcp" + - "3282:3282/tcp" + environment: + accept_license: "Y" + TZ: ${WS_TZ:-UTC} + volumes: + - ${WORKSPACES_HOME:-./volumes/workspaces}:/etc/td + - ${WORKSPACES_AWS_CONFIG:-~/.aws}:/root/.aws + + networks: + - td-ai-unlimited +---- +-- +Azure:: ++ +-- +[source, bash, id="azure_docker_compose", role="content-editable emits-gtm-events"] +---- +version: "3.9" + +services: + workspaces: + deploy: + replicas: 1 + platform: linux/amd64 + container_name: workspaces + image: ${WORKSPACES_IMAGE_NAME:-teradata/ai-unlimited-workspaces}:${WORKSPACES_IMAGE_TAG:-latest} + command: workspaces serve -v + restart: unless-stopped + ports: + - "443:443/tcp" + - "3000:3000/tcp" + - "3282:3282/tcp" + environment: + accept_license: "Y" + TZ: ${WS_TZ:-UTC} + volumes: + - ${WORKSPACES_HOME:-./volumes/workspaces}:/etc/td + - ${WS_HOME:-~/.azure}:/root/.azure + + networks: + - td-ai-unlimited + +---- +-- +==== + +3. **workspaces.yml** ファイルが配置されているディレクトリに移動し、ワークスペース サービスを開始します。 ++ +[source, bash, id="docker_compose_run", role="content-editable emits-gtm-events"] +---- +docker compose -f workspaces.yaml +---- ++ +ワークスペース サービス サーバーが初期化され、開始されると、URL: http://:3000/を使用してアクセスできます。 + +== ワークスペースサービスの設定とセットアップ + +ワークスペース サービスは、GitHub OAuth アプリを使用してユーザーを承認し、プロジェクトの状態を管理します。ワークスペース サービスにプロジェクト インスタンス構成を保存する権限を与えるには、GitHub OAuth アプリの登録時に生成されたクライアント ID とクライアント シークレット キーを使用します。プロジェクト インスタンスの構成値は GitHub リポジトリに保持されており、ワークスペース サービスの **Profile** ページで表示できます。 + +初めてのユーザーは、続行する前に以下の手順を完了する必要があります。VPC の構成やアクセス権について不明な点がある場合は、組織の管理者に問い合わせてください。 + +1. GitHub アカウントにログオンし、OAuth アプリを作成します。 link:https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app[GitHub ドキュメント] を参照してください。 ++ +OAuth アプリを登録するときに、URL フィールドに以下のワークスペース サービス URL を入力します。 ++ +* **ホームページのURL**: http://:3000/ +* **認証コールバック URL**: http://:3000/auth/github/callback + +2. **クライアントID** と **クライアントの秘密鍵** をコピーして保持します。 + +ワークスペース サービスを設定するには、以下の手順を実行します。 + +1. URL: http:// :3000/ を使用してワークスペース サービスにアクセスします。 ++ +image::ai-unlimited/{page-image-directory}/ai.unlimited.workspaces.setting.png[] + +2. **セットアップ** の下に以下の一般的なサービス構成を適用します。 ++ +[cols="1,1,1"] +|=== +|設定 |説明 |必須? + +|Service Base URL +|[編集不可] サービスのroot URL。 +|はい + +|Git Provider +|Git 統合のプロバイダ。現在、Teradata AI Unlimited は GitHub と GitLab をサポートしています。 +|はい + +|Service Log Lev +|ロギングのレベル。 +|はい + +|Engine IP Network Type +|エンジン インスタンスに割り当てられるネットワークの型。パブリックまたはプライベートのいずれかになります。ワークスペースサービスと同じVPCにエンジンをデプロイする場合は、**Private** オプションを選択します。 +|はい + +|Use TLS +|TLSサポートが有効かどうかを示します。インスタンスにプライベート ネットワーク内からのみアクセスでき、信頼済みユーザーのみがアクセスできる場合は、デフォルト値を無視できます。Teradataでは、機密データ、パブリックネットワーク、およびコンプライアンス要件に対してTLSオプションを有効にすることを推奨している。 +|はい + +|Service TLS Certification +|サーバIDを認証するためのサーバ証明書。 +|いいえ + +|Service TLS Certificate Key +|サーバ証明書キー。 +|いいえ +|=== + +3. **Service Base URL** に自己署名証明書を使用するには、**GENERATE TLS** を選択します。証明書と秘密鍵が生成され、それぞれのフィールドに表示されます。 + +4. **Save Changes** を選択します。 + +5. 選択した **Cloud Integrations: CSP** の下に以下の設定を適用します。 ++ +[cols="1,1,1"] +|=== +|設定 |説明 |必須? + +|Default Region +|エンジンを配置するリージョン。Teradataでは、プライマリ作業ロケーションに最も近いリージョンを選択することをお薦めします。3. +|はい + +|Default Subnet +|エンジンインスタンスにインターネットゲートウェイへのルートを提供するサブネット。サブネットを指定しない場合、エンジンは自動的にデフォルトのサブネットに関連付けられます。 +|はい + +|Default IAM Role +|AWS でユーザーができることとできないことを決定するデフォルトの IAM ID。デフォルトの IAM ロールがユーザーまたはリソースに割り当てられると、ユーザーまたはリソースは自動的にそのロールが付与されたと想定し、そのロールに付与されたアクセス権を取得します。 +|いいえ + +|Resource Tag +|リソースに関するメタデータを保持するためにリソースに適用されるキーと値のペア。リソースタグを使用すると、環境で使用するリソースを迅速に識別、整理、管理できる。 +|いいえ + +|Default CIDRs +|エンジンに使用されるクラスレス ドメイン間ルーティング (CIDR) アドレスのリスト。CIDRを使用すると、ネットワーク内で柔軟かつ効率的にIPアドレスを割り当てることができる。CIDR を指定しない場合、エンジンはデフォルトの CIDR に自動的に関連付けられます。 +|いいえ + +|Default Security Groups +|各リージョンの VPC のセキュリティ グループのリスト。セキュリティ グループを指定しない場合、エンジンは VPC のデフォルトのセキュリティ グループに自動的に関連付けられます。 +|いいえ + +|Role Prefix +|ロールの名前の先頭に追加される文字列。ロール接頭辞を使用すると、ロールを編成および管理し、命名規則を適用できます。 +|いいえ + +|Permission Boundary +|アイデンティティベースのポリシーで定義されたアクセス権に関係なく、IAM エンティティが持つことができる最大アクセス認証。ユーザーのアクセス権と役割を定義および管理し、コンプライアンス要件を強制できます。 +|いいえ +|=== + +6. **Save Changes** を選択します。 +7. **Git Integrations** の下に以下の設定を適用します。 ++ +[cols="1,1,1"] +|=== +|設定 |説明 |必須? + +|GitHub Client ID +|OAuthアプリを作成する際にGitHubから受け取ったクライアントID。 +|はい + +|GitHub Client Secret +|OAuth アプリの作成時に GitHub から受け取ったクライアント シークレット ID。 +|はい + +|Auth Organization +|チームと共同作業するために使用する GitHub 組織アカウントの名前。 +|いいえ + +|GitHub Base URL +|GitHubアカウントのベースURL。URL はアカウントの型によって異なる場合があります。例えば、GitHub Enterprise アカウントの場合は https://github.company.com/ です。 +|いいえ +|=== + +8. **Authenticate** を選択します 。GitHub にリダイレクトされます。 + +9. GitHub 信頼証明を使用してログオンし、ワークスペース サービスを承認します。 ++ +認証後、Workspace サービス **Profile** ページにリダイレクトされ、API キーが生成されます。API キーを使用して、ワークスペース サービスにリクエストを行うことができます。 ++ +NOTE: ワークスペースサービスに接続するたびに、新しいAPIキーが生成されます。 + +Teradata AI Unlimited の準備が整いました。 + + +== 次のステップ + +* ワークスペース サービスを Teradata AI Unlimited Interface に接続し、エンジンをデプロイします。link:install-ai-unlimited-interface-docker.html[Dockerを使用した Teradata AI Unlimited インターフェースのデプロイ] を参照してください。 + +* Teradata AI Unlimited が実際のユースケースでどのように役立つかを知りたいですか? 近日公開! GitHub リンクについては、このスペースを引き続き監視してください。 + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/ai-unlimited/partials/understanding.ai.unlimited.adoc b/modules/ROOT/pages/ja/ai-unlimited/partials/understanding.ai.unlimited.adoc new file mode 100644 index 000000000..f976030ce --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/partials/understanding.ai.unlimited.adoc @@ -0,0 +1,9 @@ +Regulus は、SQL クエリー エンジンをデプロイしてデータ レイクに接続できるようにするセルフサービス プラットフォームです。その後、優先クラウド サービス プロバイダ (CSP) にデプロイされたオンデマンドのスケーラブルなクエリー エンジンでワークロードを実行できます。クエリー エンジンを使用すると、データ管理の必要性を排除しながら、高度な並列データベースの機能を活用できます。 + +Regulus には以下の構成要素が含まれています。 + +* **ワークスペース**: Regulus の自動化とデプロイを制御および管理するオーケストレーション サービス。また、データ関連プロジェクトの実行時にシームレスなユーザー エクスペリエンスを提供する統合構成要素も制御します。ワークスペースには、ユーザーを承認し、CSP 統合の選択を定義するために使用できる Web ベースの UI が含まれています。 + +* **インターフェース**: データプロジェクトの作成と実行、Teradataシステムへの接続、およびデータの視覚化を行うための環境。JupyterLab または Workspaces CLI のいずれかを使用できます。 + +* **クエリーエンジン**: データサイエンスおよび分析ワークロードの実行に使用できる、完全に管理された計算リソース。 \ No newline at end of file diff --git a/modules/ROOT/pages/ja/ai-unlimited/running-sample-ai-unlimited-workload.adoc b/modules/ROOT/pages/ja/ai-unlimited/running-sample-ai-unlimited-workload.adoc new file mode 100644 index 000000000..2367d44e5 --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/running-sample-ai-unlimited-workload.adoc @@ -0,0 +1,207 @@ += Teradata AI Unlimitedを使用してJupyterLabでサンプルワークロードを実行する +:page-lang: ja +:experimental: +:page-author: Thripti Aravind +:page-email: thripti.aravind@teradata.com +:page-revdate: 2023 年 11 月 14 日 +:description: 簡単なワークフローを実行し、Teradata AI Unlimited の使用方法を学びます。 +:keywords: Teradata AI Unlimited, Teradata AI Unlimited Workspace service, Teradata AI Unlimited Compute Engine +:page-image-directory: running-sample-ai-unlimited-workload + +IMPORTANT: この製品はプレビュー版であり、変更される可能性があります。このサービスの詳細について興味がある場合は、Teradata サポートにお問い合わせください。 + +== 概要 + +このドキュメントでは、JupyterLab を使用して以下のことを行うための簡単なワークフローについて説明します。 + +* オンデマンドでスケーラブルなコンピューティングをデプロイメントする +* 外部データソースに接続する +* ワークロードの実行する +* 計算を中断する + +== 始める前に + + +* Teradata AI Unlimited Workspaces と JupyterLab をデプロイして構成します。link:install-ai-unlimited-workspaces-docker.html[Dockerを使用した Teradata AI Unlimited Workspaceサービスのデプロイとセットアップ] と link:install-ai-unlimited-interface-docker.html[Dockerを使用した Teradata AI Unlimited インターフェースのデプロイ] を参照してください。 + +* 以下をコピーして保持します。 + +** コンソールからの CSP 環境変数。link:https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html[環境変数] を参照してください。 +** ワークスペースサービスからのAPIキー。 + +== 最初のワークロードを実行する + +マジックコマンドの詳細については、`%help` または `%help ` を実行してください。詳細については、link:ai-unlimited-magic-reference.html[Teradata AI Unlimited JupyterLab マジック コマンド リファレンス] を参照してください。 + +1. URL: http://localhost:8888 を使用して JupyterLab に接続し、プロンプトが表示されたらトークンを入力します。 +2. APIキーを使用してワークスペースサービスに接続します。 ++ +[source, bash, id="connect_workspaces", role="content-editable emits-gtm-events"] +---- +%workspaces_config host=, apikey=, withtls=F +---- +3. 新しいプロジェクトを作成します。 ++ +NOTE: 現在、Teradata AI Unlimited は AWS と Azure をサポートしています。 ++ + +[source, bash, id="create_project", role="content-editable emits-gtm-events"] +---- +%project_create project=, env=, team= +---- + +4. (オプション) CSP 信頼証明を保存するための認証オブジェクトを作成します。 ++ +`ACCESS_KEY_ID`、`SECRET_ACCESS_KEY`、および `REGION` を実際の値に置き換えます。 ++ + +[source, bash, id="create_auth", role="content-editable emits-gtm-events"] +---- +%project_auth_create name=, project=, key=, secret=, region= +---- + +5. プロジェクトのエンジンをデプロイします。 ++ + を任意の名前に置き換えます。サイズパラメータ値には、small、medium、large、またはextralargeを指定できます。デフォルトのサイズはsmallです。 ++ + +[source, bash, id="deploy_query_engine", role="content-editable emits-gtm-events"] +---- +%project_engine_deploy name=, size= +---- + ++ +デプロイのプロセスが完了するまでに数分かかります。デプロイメントが成功すると、パスワードが生成されます。 + +6. プロジェクトとの接続を確立します。 ++ + +[source, bash, id="connect_project", role="content-editable emits-gtm-events"] +---- +%connect +---- ++ +接続が確立されると、インターフェースによってパスワードの入力が求められます。前のステップで生成されたパスワードを入力します。 + +7. サンプルワークロードを実行します。 ++ +NOTE: 選択したデータベースに SalesCenter または SalesDemo という名前のテーブルがないことを確認してください。 ++ +a. 販売センターのデータを格納するテーブルを作成します。 ++ +まず、テーブルがすでに存在する場合は削除します。テーブルが存在しない場合、コマンドは失敗します。 ++ + +[source, teradata-sql, id="create_table", role="content-editable emits-gtm-events"] +---- +DROP TABLE SalesCenter; +CREATE MULTISET TABLE SalesCenter ,NO FALLBACK , + NO BEFORE JOURNAL, + NO AFTER JOURNAL, + CHECKSUM = DEFAULT, + DEFAULT MERGEBLOCKRATIO + ( + Sales_Center_id INTEGER NOT NULL, + Sales_Center_Name VARCHAR(255) CHARACTER SET LATIN NOT CASESPECIFIC) +NO PRIMARY INDEX ; +---- + +b. `%dataload` マジックコマンドを使用して、データをSalesCenterテーブルにロードします。 ++ + +[source, bash, id="data_load", role="content-editable emits-gtm-events"] +---- +%dataload DATABASE=, TABLE=SalesCenter, FILEPATH=notebooks/sql/data/salescenter.csv +---- ++ +NOTE: salescenter.csv ファイルが見つかりませんか? link:https://github.com/Teradata/jupyter-demos/tree/main/Getting_Started/Charting_and_Visualization/data[GitHub Demo:Charting and Visualization Data] からファイルをダウンロードします。 ++ +データが挿入されたことを確認します。 ++ + +[source, teradata-sql, id="verify_data_load", role="content-editable emits-gtm-events"] +---- +SELECT * FROM SalesCenter ORDER BY 1 +---- + +c. 販売デモ データを含むテーブルを作成します。 ++ + +[source, teradata-sql, id="create_table_data", role="content-editable emits-gtm-events"] +---- +DROP TABLE SalesDemo; +CREATE MULTISET TABLE SalesDemo ,NO FALLBACK , + NO BEFORE JOURNAL, + NO AFTER JOURNAL, + CHECKSUM = DEFAULT, + DEFAULT MERGEBLOCKRATIO + ( + Sales_Center_ID INTEGER NOT NULL, + UNITS DECIMAL(15,4), + SALES DECIMAL(15,2), + COST DECIMAL(15,2)) +NO PRIMARY INDEX ; +---- + +d. `%dataload`マジック コマンドを使用して、SalesDemo テーブルにデータをロードします。 ++ + +[source, bash, id="load_data_table", role="content-editable emits-gtm-events"] +---- +%dataload DATABASE=, TABLE=SalesDemo, FILEPATH=notebooks/sql/data/salesdemo.csv +---- ++ +NOTE: salesdemo.csv ファイルが見つかりませんか? link:https://github.com/Teradata/jupyter-demos/tree/main/Getting_Started/Charting_and_Visualization/data[GitHub Demo:Charting and Visualization Data] からファイルをダウンロードします。 ++ +販売デモ データが正常に挿入されたことを確認します。 ++ +[source, teradata-sql, id="verify_sales_data", role="content-editable emits-gtm-events"] +---- +SELECT * FROM SalesDemo ORDER BY sales +---- ++ +接続のナビゲータを開き、テーブルが作成されたことを確認します。テーブルで行カウントを実行して、データがロードされたことを確認します。 + +e. チャートマジックを使用して、結果を視覚化します。 ++ +チャートにX軸とY軸を提供しま。 ++ + +[source, bash, id="plot_chart", role="content-editable emits-gtm-events"] +---- +%chart sales_center_name, sales, title=Sales Data +---- + +f. テーブルをドロップします。 ++ + +[source, teradata-sql, id="drop_tables", role="content-editable emits-gtm-events"] +---- +DROP TABLE SalesCenter; +DROP TABLE SalesDemo; +---- + +8. プロジェクトのメタデータとオブジェクト定義を GitHub リポジトリにバックアップします。 ++ + +[source, bash, id="backup_project", role="content-editable emits-gtm-events"] +---- +%project_backup project= +---- +9. エンジンを停止します。 ++ + +[source, bash, id="suspend_query_engine", role="content-editable emits-gtm-events"] +---- +%project_engine_suspend project= +---- + +おめでとうございます!JupyterLab で最初のユースケースが正常に実行されました。 + +== 次のステップ + +* 高度なユースケースを探索することに興味がありますか? 近日公開! GitHub リンクについては、このスペースを引き続き監視してください。 + +* JupyterLab で利用できるマジック コマンドについて学びます。 link:ai-unlimited-magic-reference.html[Teradata AI Unlimited JupyterLab マジック コマンド リファレンス] を参照してください。 + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/ai-unlimited/using-ai-unlimited-workspace-cli.adoc b/modules/ROOT/pages/ja/ai-unlimited/using-ai-unlimited-workspace-cli.adoc new file mode 100644 index 000000000..b945a81bc --- /dev/null +++ b/modules/ROOT/pages/ja/ai-unlimited/using-ai-unlimited-workspace-cli.adoc @@ -0,0 +1,512 @@ += Workspace Client で Teradata AI Unlimited を使用する +:page-lang: ja +:experimental: +:page-author: Thripti Aravind +:page-email: thripti.aravind@teradata.com +:page-revdate: 2023 年 11 月 14 日 +:description: workspacectl を使用して Teradata AI Unlimited を管理する方法を学びます。 +:keywords: Teradata AI Unlimited, Teradata AI Unlimited Workspace service, Teradata AI Unlimited Compute Engine +:page-image-directory: using-ai-unlimited-workspace-cli + +IMPORTANT: この製品はプレビュー版であり、変更される可能性があります。このサービスの詳細について興味がある場合は、Teradata サポートにお問い合わせください。 + +== 概要 + +Workspace Client (workspacectl) は、Teradata AI Unlimited のコマンド ライン インターフェース (CLI) です。このドキュメントでは、workspacectlをインストールするための手順を説明します。このドキュメントには、CLI コマンドに関する必要な情報とガイダンスがすべて記載されており、コマンド ラインを迅速かつ効率的に操作できるようになります。現在のリリースでは、workspacectl を使用してワークスペース サービスに接続し、エンジンを管理することのみが可能です。Teradata では、データ探索用の Teradata AI Unlimited インターフェースとして JupyterLab を使用することを推奨しています。 + +link:install-ai-unlimited-interface-docker.html[Dockerを使用した Teradata AI Unlimited インターフェースのデプロイ] を参照してください。 + +== 始める前に + +以下を確認します。 + +* link:install-ai-unlimited-workspaces-docker.html[Dockerを使用した Teradata AI Unlimited Workspaceサービスのデプロイとセットアップ]で説明されている手順を使用して、ワークスペースサービスをインストール、設定、およびセットアップしている。 +* AWS環境変数とAPIキーをコピーして保持している。 + + +== workspacectlのインストール + +link:https://downloads.teradata.com/download/tools/ai-unlimited-ctl[https://downloads.teradata.com/download/tools/ai-unlimited-ctl]からworkspacectlの実行可能ファイルをダウンロードします。 + +NOTE: Workspacectlはすべての主要なオペレーティングシステムをサポートしています。 + +== workspacectlを使用する + +1. ターミナルウィンドウを開き、workspacectlファイルを実行します。 ++ +[tabs] +==== +Windows:: ++ +-- +[source, powershell, role="content-editable emits-gtm-events", id="run_workspaces_win"] +---- +worksapcesctl.exe +---- +-- +MacOS:: ++ +-- +[source, bash, role="content-editable emits-gtm-events", id="run_workspaces_macos"] +---- +workspacesctl +---- +-- +==== ++ +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.workspaces.png[AI Unlimited CLI] + +2. API キーを使用してワークスペース サービスを構成します。 ++ +[source, bash, id="workspaces_use_config", role="content-editable emits-gtm-events"] +---- +workspacesctl workspaces config +---- + +3. 新しいプロジェクトを作成します。 ++ +[source, bash, id="workspaces_use_project_create", role="content-editable emits-gtm-events"] +---- +workspacesctl project create -e --no-tls +---- + +4. プロジェクトのエンジンをデプロイします。 ++ +[source, bash, id="workspaces_use_project_engine_deploy", role="content-editable emits-gtm-events"] +---- +workspacesctl project engine deploy -t --no-tls +---- + +5. サンプルワークロードを実行します。 + +6. プロジェクトとエンジンを管理します。 + +7. プロジェクトをバックアップする。 ++ +[source, bash, id="workspaces_use_project_backup", role="content-editable emits-gtm-events"] +---- +workspacesctl project backup --no-tls +---- + +8. エンジンを停止します。 ++ +[source, bash, id="workspaces_use_project_engine_suspend", role="content-editable emits-gtm-events"] +---- +workspacesctl project engine suspend --no-tls +---- + +サポートされているコマンドのリストについては、 <<_workspaces_cli_reference, ワークスペースクライアントのリファレンス>> を参照してください。 + + +== ワークスペースクライアントのリファレンス + +=== workspaces config + +**説明**: CLI をワークスペース サービスにバインドするための 1 回限りの構成。ワークスペースサービスのプロファイルページに移動し、APIキーをコピーします。 + +**使用方法**: + +[source, bash, id="workspaces_config", role="content-editable emits-gtm-events"] +---- +workspacesctl workspaces config +---- + +**フラグ**: + +`-h`、`--help`: コマンドの詳細をリストします。 + +**出力**: + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.workspaces.config.png[AI Unlimited の CLI 構成] + +プロンプトに従って、ワークスペースサービスのエンドポイントとAPIキーを選択します。 + +=== workspaces user list + +**説明**: GitHub で Teradata AI Unlimited 用に設定されたユーザーのリストを表示します。 + +**使用方法**: +[source, bash, id="workspaces_user_list", role="content-editable emits-gtm-events"] +---- +workspacesctl workspaces user list --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls`パラメータを追加する必要はありません。 + +**フラグ**: + +`-h`、`--help`: コマンドの詳細をリストします。 + +**出力**: + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.user.list.png[AI Unlimited CLIユーザーリスト] + +=== project create + +**説明**: Teradata AI Unlimitedでプロジェクトを作成します。このコマンドは、プロジェクトに対応する GitHub リポジトリも作成します。 + +**使用方法**: +[source, bash, id="workspaces_project_create", role="content-editable emits-gtm-events"] +---- +workspacesctl project create -e --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls` パラメータを追加する必要はありません。 + +**フラグ**: +[cols="1,1,1,1"] +|=== +|フラグ |型| 説明 |必須? + +|`-e`, `--environment` +|文字列 +|プロジェクト エンジンがホストされる環境。値:aws、azure、またはgcloud。現在、Teradata AI Unlimited は aws と azure をサポートしています。 +|はい + +|`-f`, `--manifest` +|文字列 +|入力に使用されるyamlファイルをマニフェストするためのパス。 +|いいえ + +|`-t`, `--team` +|文字列 +|プロジェクトに割り当てられたチーム。 +|いいえ + +|`-h`, `--help` +| +|コマンドの詳細をリストします。 +|いいえ + +|=== + +**出力**: + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.project.create.png[AI Unlimited CLI プロジェクトの作成] + +=== project list + +**説明**: Teradata AI Unlimited で設定されているすべてのプロジェクトの一覧表示します。 + +**使用方法**: +[source, bash, id="workspaces_project_list", role="content-editable emits-gtm-events"] +---- +workspacesctl project list --no-tls +---- +または +[source, bash, id="workspaces_project_list_name", role="content-editable emits-gtm-events"] +---- +workspacesctl project list --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls` パラメータを追加する必要はありません。 + +**フラグ**: + +`-h`、`--help`: コマンドの詳細をリストします。 + +**出力**: + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.project.list.png[AI Unlimited CLI プロジェクトのリスト] + +=== project delete + +**説明**: Teradata AI Unlimited でプロジェクトを削除します。 + +**使用方法**: +[source, bash, id="workspaces_project_delete", role="content-editable emits-gtm-events"] +---- + workspacesctl project delete --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls`パラメータを追加する必要はありません。 + +**フラグ**: + +`-h`、`--help`: コマンドの詳細をリストします。 + +**出力**: + +NOTE: 出力は YAML 形式です。 + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.project.delete.png[AI Unlimited CLI プロジェクトの削除] + + +=== project user list + +**説明**: GitHub でプロジェクトに割り当てられた共同作業者をリストします。 + +**使用方法**: +[source, bash, id="workspaces_project_user_list", role="content-editable emits-gtm-events"] +---- +workspacesctl project user list --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls` パラメータを追加する必要はありません。 + +**フラグ**: + +`-h`、`--help`: コマンドの詳細をリストします。 + +**出力**: + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.project.user.list.png[AI Unlimited CLI プロジェクトユーザーのリスト] + +=== project backup + +**説明**: エンジン オブジェクト定義を、プロジェクトに割り当てられた GitHub リポジトリにバックアップします。 + +**使用方法**: +[source, bash, id="workspaces_project_backup", role="content-editable emits-gtm-events"] +---- +workspacesctl project backup --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls` パラメータを追加する必要はありません。 + +**フラグ**: + +`-h`、`--help`: コマンドの詳細をリストします。 + +**出力**: + +NOTE: 出力はYAML形式です。 + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.project.backup.png[AI Unlimited の CLI プロジェクトのバックアップ] + +=== project restore + +**説明**: プロジェクトの GitHub リポジトリからすべてのエンジン オブジェクト定義を復元します。 + +**使用方法**: +[source, bash, id="workspaces_project_restore", role="content-editable emits-gtm-events"] +---- +workspacesctl project restore --no-tls +---- +または + +[source, bash, id="workspaces_project_restore_name", role="content-editable emits-gtm-events"] +---- +workspacesctl project restore --gitref --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls` パラメータを追加する必要はありません。 + +**フラグ**: +[cols="1,1,1,1"] +|=== +|フラグ |型| 説明 |必須? + +|`-g`, `--gitref` +|文字列 +|タグ、SHA、またはブランチ名。 +|いいえ + +|`-h`, `--help` +| +|コマンドの詳細をリストします。 +|いいえ + +|=== + +**出力**: + +NOTE: 出力はYAML形式です。 + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.project.restore.png[AI Unlimited CLI プロジェクトの復元] + +=== project engine deploy + +**説明**: プロジェクトのエンジンをデプロイします。 + +**使用方法**: +[source, bash, id="workspaces_project_engine_deploy", role="content-editable emits-gtm-events"] +---- +workspacesctl project engine deploy -t small --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls` パラメータを追加する必要はありません。 + +**フラグ**: +[cols="1,1,1,1"] +|=== +|フラグ |型| 説明 |必須? + +|`-c`, `--instance-count` +|Int +|エンジン ノードの数。デフォルト値は1です。 +|いいえ + +|`-t`, `--instance-size` +|文字列 +|エンジンのインスタンス サイズ。 +|いいえ + +|`-f`, `--manifest` +|文字列 +|入力に使用する yaml ファイルをマニフェストするパス。 +|いいえ + +|`-r`, `--region` +|文字列 +|デプロイメントのリージョン。 +|いいえ + +|`-s`, `--subnet-id` +|文字列 +|デプロイメントのサブネット ID。 +|いいえ + +|`-h`, `--help` +| +|コマンドの詳細をリストします。 +|いいえ + +|=== + + +=== project engine suspend + +**説明**: デプロイされたエンジンを破棄し、セッション中に作成されたオブジェクト定義をバックアップします。 + +**使用方法**: +[source, bash, id="workspaces_project_engine_suspend", role="content-editable emits-gtm-events"] +---- +workspacesctl project engine suspend --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls`パラメータを追加する必要はありません。 + +**フラグ**: + +`-h`、`--help`: コマンドの詳細をリストします。 + +**出力**: + +NOTE: 出力はYAML形式です。 + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.engine.suspend.png[AI Unlimited CLIエンジンの停止] + +=== project engine list + +**説明**: プロジェクトのエンジンに関する詳細情報を表示します。このコマンドは、エンジンの最後の状態を表示します。 + +**使用方法**: +[source, bash, id="workspaces_project_engine_list", role="content-editable emits-gtm-events"] +---- +workspacesctl project engine list --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls`パラメータを追加する必要はありません。 + +**フラグ**: + +`-h`、`--help`: コマンドの詳細をリストします。 + +**出力**: + +NOTE: 出力はYAML形式です。 + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.engine.list.png[AI Unlimited CLIエンジンのリスト] + +=== project auth create + +**説明**: オブジェクト ストアの認証を作成します。 + +**使用方法**: +[source, bash, id="workspaces_project_auth_create", role="content-editable emits-gtm-events"] +---- +workspacesctl project auth create -n -a -s -r --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls` パラメータを追加する必要はありません。 + +**フラグ**: +[cols="1,1,1,1"] +|=== +|フラグ |型| 説明 |必須? + +|`-a`, `--accesskey` +|文字列 +|認証アクセスキーまたはID。 +|はい ( `-f` フラグを使用していない場合)。 + +|`-n`, `--name string` +|文字列 +|オブジェクトストアの認証名。 +|はい ( `-f` フラグを使用していない場合)。 + +|`-f`, `--manifest` +|文字列 +|入力に使用する yaml ファイルをマニフェストするパス。 +|いいえ + +|`-r`, `--region` +|文字列 +|オブジェクトストアのリージョン。 +|はい + +|-s, --secret string +|文字列 +|オブジェクト ストアの認証シークレット アクセス キー。 +|はい ( `-f` フラグを使用していない場合)。 + +|`-h`, `--help` +| +|コマンドの詳細をリストします。 +|いいえ + +|=== + +**出力**: + +NOTE: 出力はYAML形式です。 + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.auth.create.png[AI Unlimited CLI 認証の作成] + +=== project auth list + +**説明**: プロジェクトに対して作成されたオブジェクト ストアの認証をリストします。 + +**使用方法**: +[source, bash, id="workspaces_project_auth_list", role="content-editable emits-gtm-events"] +---- +workspacesctl project auth list --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、 `-no-tls`パラメータを追加する必要はありません。 + + +**フラグ**: + +`-h`、`--help`: コマンドの詳細をリストします。 + +**出力**: + +NOTE: 出力はYAML形式です。 + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.auth.list.png[AI Unlimited CLI 認証のリスト] + +=== project auth delete + +**説明**: プロジェクトに対して作成されたオブジェクト ストアの認証を削除します。 + +**使用方法**: +[source, bash, id="workspaces_project_auth_delete", role="content-editable emits-gtm-events"] +---- +workspacesctl project auth delete -n --no-tls +---- +NOTE: 設定にTLS設定が含まれている場合は、`-no-tls` パラメータを追加する必要はありません。 + +**フラグ**: +[cols="1,1,1,1"] +|=== +|フラグ |型| 説明 |必須? + +|`-n`, `--name` +|文字列 +|削除するオブジェクト ストアの認証の名前。 +|はい + +|`-h`, `--help` +| +|コマンドの詳細をリストします。 +|いいえ + +|=== + +**出力**: + +NOTE: 出力はYAML形式です。 + +image::ai-unlimited/{page-image-directory}/ai.unlimited.cli.auth.delete.png[AI Unlimited CLI 認証の削除] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/business-intelligence/create-stunning-visualizations-in-power-bi-using-data-from-teradata-vantage.adoc b/modules/ROOT/pages/ja/business-intelligence/create-stunning-visualizations-in-power-bi-using-data-from-teradata-vantage.adoc new file mode 100644 index 000000000..c3e1c2031 --- /dev/null +++ b/modules/ROOT/pages/ja/business-intelligence/create-stunning-visualizations-in-power-bi-using-data-from-teradata-vantage.adoc @@ -0,0 +1,137 @@ += Vantage を使用して Power BI で視覚化を作成する +:page-lang: ja +:experimental: +:page-author: Kevin Bogusch, Paul Ibberson +:page-email: paul.ibberson2@teradata.com +:page-revdate: 2022年1月14日 +:description: Teradata Vantage を Power BI Desktop に接続します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, microsoft power bi, power bi +:tabs: +:page-image-directory: connect-power-bi + + +== 概要 + +NOTE: このガイドには、Microsoft と Teradata の両方の製品ドキュメントの内容が含まれています。 + +今回は、Power BI Desktop を Teradata Vantage に接続して、レポートやデータの劇的な視覚化を作成するプロセスについて説明します。 Power BI は Teradata Vantage をデータ ソースとしてサポートしており、Power BI Desktop の他のデータ ソースと同様に基になるデータを使用できます。 + +https://docs.microsoft.com/en-us/power-bi/power-bi-overview[Power BI] は、ソフトウェア サービス、アプリケーション、コネクタで構成され、これらが連携して、関連性のないデータ ソースを、一貫性があり、視覚的に没入型の対話型の分析情報に変換します。 + +.Power BI は以下で構成されます。 +* https://docs.microsoft.com/en-us/power-bi/fundamentals/desktop-what-is-desktop[Power BI Desktop] + と呼ばれる Windows デスクトップ アプリケーション* https://docs.microsoft.com/en-us/power-bi/fundamentals/power-bi-service-overview[Power BI サービス] + と呼ばれるオンライン SaaS サービス* Windows、iOS、Android デバイス用の https://docs.microsoft.com/en-us/power-bi/consumer/mobile/mobile-apps-for-mobile-devices[Power BI モバイル] アプリ + +image::business-intelligence/{page-image-directory}/power.bi.elements.png[Power BI 要素, width=100%] + +これら 3 つの要素 (Power BI Desktop、Power BI サービス、モバイル アプリ) は、人々が自分や自分の役割に最も効果的に応える方法でビジネスの分析情報を作成、共有、利用できるように設計されています。 + +image::business-intelligence/{page-image-directory}/power.bi.overview.blocks.png[Power BIの概要ブロック, width=100%] + +4 番目の要素である https://docs.microsoft.com/en-us/power-bi/report-server/get-started[Power BI Report Server ] を使用すると、Power BI Desktop で Power BI レポートを作成した後、オンプレミスのレポート サーバーに発行できます。 + +Power BI Desktop は、Vantage を「ネイティブ」データ ソースとしてではなく、サード パーティ データ ソースとしてサポートします。 代わりに、Power BI サービスで公開されたレポートは、 構成要素の https://docs.microsoft.com/en-us/power-bi/connect-data/service-gateway-onprem[オンプレミス データ ゲートウェイ] を使用して Vantage にアクセスする必要があります。 + +この入門ガイドでは、Teradata Vantageへの接続方法について説明します。Power BI Desktop Teradata コネクタは https://downloads.teradata.com/download/connectivity/net-data-provider-for-teradata[.NET Data Provider for Teradata]を使用します。Power BI Desktopを使用するコンピューターにドライバをインストールする必要があります。.NET Data Provider for Teradata の単一インストールでは、32 ビットまたは 64 ビットの両方の Power BI Desktop アプリケーションがサポートされます。 + +== 前提条件 +Azure サービス、Teradata Vantage、Power BI Desktop に精通していることが求められます。 + +以下のアカウントとシステムが必要です。 + +* Power BI Desktop は、Windows 用の無料アプリケーションです。(Power BI Desktop は Mac では利用できません。 https://www.parallels.com/[Parallels] や https://www.vmware.com/products/fusion.html[VMware Fusion] などの仮想マシン、または Apple の https://support.apple.com/en-vn/boot-camp[Boot Camp]で実行することもできますが、それはこの記事のスコープ外です。) + +* ユーザーとパスワードを持つ Teradata Vantage インスタンス。ユーザーは、Power BI Desktop で使用できるデータに対するアクセス認証を持っている必要があります。Vantage には Power BI Desktop からアクセスできる必要があります。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] + +* https://downloads.teradata.com/download/connectivity/net-data-provider-for-teradata[.NET Data Provider for Teradata]。 + +== はじめに +=== Power BI Desktopをインストールする +Power BI Desktop は https://aka.ms/pbidesktopstore[Microsoft Store] からインストールすることも、 https://aka.ms/pbiSingleInstaller[インストーラーをダウンロード] し て直接実行することもできます。 + +=== .NET Data Provider for Teradata をインストールする +最新バージョンの https://downloads.teradata.com/download/connectivity/net-data-provider-for-teradata[.NET Data Provider for Teradata ] をダウンロードしてインストールします。 + +ダウンロードできるファイルは複数あることに注記してください。「tdnetdp」で始まるファイルが必要です。 + +=== Teradata Vantage に接続する +* 黄色のアイコンが付いている Power BI Desktopを実行します。 + +image::business-intelligence/{page-image-directory}/power.bi.icon.png[Power BIアイコン, width=30%] + +* 開始 (スプラッシュ) 画面が表示されている場合は、「データの取得」をクリックします。 + +image::business-intelligence/{page-image-directory}/power.bi.splash.screen.png[Power BIのスプラッシュ画面, width=70%] + +それ以外の場合、Power BI のメイン フォームを使用している場合は、_Home_リボン上にいることを確認し、_Get data_をクリックします。_More…_をクリックします。 + +image::business-intelligence/{page-image-directory}/power.bi.get.data.menu.png[Power BIのGet Dataメニュー, width=70%] + +* 左側の _Database_ をクリックします。 +* _Teradata database_ が表示されるまで、右側のリストをスクロールします。_Teradata database_ をクリックしてから、_Connect_ ボタンをクリックします。 + +(今回は、「Teradata database」と「Teradata Vantage」は同義です。) + +image::business-intelligence/{page-image-directory}/power.bi.database.picker.png[Power BI データベースの選択, width=70%] + +* 表示されるウィンドウで、Vantage システムの名前または IP アドレスをテキスト ボックスに入力します。データを Power BI データ モデルに直接_インポート_するか、 https://docs.microsoft.com/en-us/power-bi/desktop-use-directquery[DirectQuery] を使用してデータ ソースに直接接続して_OK_ をクリックするかを選択できます。 + +image::business-intelligence/{page-image-directory}/power.bi.server.connect.png[Power BIサーバ接続, width=70%] + +(_Advanced_ オプションをクリックして、手作りした SQL文を送信します。) + +信頼証明については、Vantage で定義された _Windows_ ログインまたは _データベース_ ユーザー名を使用して接続するオプションがあります。これがより一般的です。適切な 認証方式を選択し、ユーザー名とパスワードを入力します。_Connect_ をクリックします。 + +また、LDAPサーバで認証するオプションもある。このオプションは、デフォルトでは非表示になっている。 + +環境変数 _PBI_EnableTeradataLdap_ を _true_ に設定すると、LDAP 認証方式が使用可能になります。 + +image::business-intelligence/{page-image-directory}/power.bi.ldap.png[Power BI LDAP 接続, width=70%] + +LDAPは、Power BIサービスに発行されるレポートに使用されるオンプレミスデータゲートウェイではサポートされないことに注記してください。LDAP 認証が必要で、オンプレミス データ ゲートウェイを使用している場合は、Microsoft にインシデントを送信してサポートをリクエストする必要があります。 + +あるいは、 https://docs.microsoft.com/en-us/power-bi/connect-data/service-gateway-sso-kerberos[Power BI サービスから Teradata などのオンプレミス データ ソースへの Kerberos ベースの SSO を構成]できます。 + +Vantage システムに接続すると、Power BI Desktop は今後システムに接続するための信頼証明を記憶します。 _File > Optionsおよびsettings > Data source setting_ に移動すると、これらの信頼証明を変更できます。 + +接続が成功すると、Navigatorウィンドウが表示されます。Vantageシステムで使用可能なデータが表示される。Power BI Desktop で使用する 1 つ以上の要素を選択できます。 + +image::business-intelligence/{page-image-directory}/power.bi.navigator.png[Power BI Navigator, width=90%] + +テーブルの名前をクリックして、テーブルをプレビューする。Power BI Desktop にロードする場合は、テーブル名の横にあるチェックボックスを必ずオンにしてください。 + +選択したテーブルを _ロード_ して、Power BI Desktop に取り込むことができます。クエリーを _編集_ することもできます。これにより、クエリー エディターが開き、ロードするデータのセットをフィルタして絞り込むことができます。 + +_編集_ は、使用している Power BI Desktop のバージョンに応じて _データの変換_と呼ばれる場合があります。 + +テーブルの結合の詳細については、 https://docs.microsoft.com/en-us/power-bi/desktop-create-and-manage-relationships[「Power BI Desktop 機能でのリレーションシップの作成と管理」] を参照してください。 + +レポートを公開するには、Power BI Desktopの _Home_ リボンの [_Publish_] をクリックします。 + +image::business-intelligence/{page-image-directory}/power.bi.publish.png[Power BI の公開, width=100%] + +Power BI Desktop では、レポートを保存するように求められます。_My workspace_を選択し、_Select_をクリックします。 + +image::business-intelligence/{page-image-directory}/power.bi.workspace.png[Power BIによるワークスペースへの公開, width=90%] + +レポートが公開されたら、_Got it_ をクリックして閉じます。また、リンクにレポート名が含まれているリンクをクリックすることもできます。 + +image::business-intelligence/{page-image-directory}/power.bi.success.png[パワーBIが正常に公開されました, width=90%] + +これは、Power BI Desktop で作成されたレポートの例です。 + +image::business-intelligence/{page-image-directory}/power.bi.report.png[Power BIレポート, width=100%] + +== 次のステップ +Power BI Desktop を使用して、さまざまなソースからのデータを組み合わせることができます。詳細については、以下のリンクを参照してください。 + +* https://docs.microsoft.com/en-us/power-bi/desktop-what-is-desktop[Power BI Desktopとは何ですか?] +* https://docs.microsoft.com/en-us/power-bi/desktop-data-sources[Power BI Desktop のデータ ソース] +* https://docs.microsoft.com/en-us/power-bi/desktop-shape-and-combine-data[Power BI Desktop を使用してデータを整形および結合する] +* https://docs.microsoft.com/en-us/power-bi/desktop-connect-excel[Power BI Desktop で Excel ブックに接続する] +* https://docs.microsoft.com/en-us/power-bi/desktop-enter-data-directly-into-desktop[Power BI Desktop にデータを直接入力する] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/cloud-guides/connect-azure-data-share-to-teradata-vantage.adoc b/modules/ROOT/pages/ja/cloud-guides/connect-azure-data-share-to-teradata-vantage.adoc new file mode 100644 index 000000000..fb70784ae --- /dev/null +++ b/modules/ROOT/pages/ja/cloud-guides/connect-azure-data-share-to-teradata-vantage.adoc @@ -0,0 +1,632 @@ += Azure Data Share を Teradata Vantage に接続する +:page-lang: ja +:experimental: +:page-author: Rupal Shah +:page-email: rupal.shah@teradata.com +:page-revdate: 2022 年 2 月 14 日 +:description: Azure Data Share を Teradata Vantage に接続します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, data cloud, data sharing. +:tabs: +:page-image-directory: connect-azure-data-share-to-teradata-vantage + +== 概要 + +今回は、Azure Data Shareサービスを使用してAzure Blob Storageデータセットをあるユーザーから別のユーザーに共有し、Teradata VantageでNative Object Store(NOS)機能を活用してクエリを実行する手順について説明します。両方のユーザーに対してストレージアカウントとデータ共有アカウントを作成し、使用することになります。 + +これは、ワークフローの図です。 + +image:cloud-guides/{page-image-directory}/image2.png[Image,width=50%] + + +=== Azure Data Shareについて + +https://docs.microsoft.com/en-us/azure/data-share/overview[Azure Data Share] は、企業が複数の顧客やパートナーと簡単かつ安全にデータを共有することを可能にします。データ提供者とデータ消費者の両方が、データを共有および受信するためにAzureサブスクリプションを持つ必要があります。Azure Data Shareは現在、スナップショットベースの共有とインプレース共有を提供しています。現在、Azure Data Shareが https://docs.microsoft.com/en-us/azure/data-share/supported-data-stores[サポートしているデータストア] は、Azure Blob Storage、Azure Data Lake Storage Gen1およびGen2、Azure SQL Database、Azure Synapse Analytics、Azure Data Explorerです。Azure Data Shareを使用してデータセット共有を送信すると、データ消費者はAzure Blob Storageなどの任意のデータストアでそのデータを受け取り、Teradata Vantageを使用してデータを探索、分析することができます。 + +詳細については、https://docs.microsoft.com/en-us/azure/data-share/[ドキュメント] を参照してください。 + +=== Teradata Vantageについて + +Vantageは、データウェアハウス、データレイク、アナリティクスを単一の接続されたエコシステムに統合する最新のクラウドプラットフォームです。 + +Vantageは、記述的分析、予測的分析、処方的分析、自律的意思決定、ML機能、可視化ツールを統合したプラットフォームで、データの所在を問わず、リアルタイムのビジネスインテリジェンスを大規模に発掘することが可能です。 + +Vantageは、小規模から始めて、コンピュートやストレージを弾力的に拡張し、使用した分だけ支払い、低コストのオブジェクトストアを活用し、分析ワークロードを統合することを可能にします。 + +Vantageは、R、Python、Teradata Studio、およびその他のSQLベースのツールをサポートしています。Vantageは、パブリッククラウド、オンプレミス、最適化されたインフラ、コモディティインフラ、as-a-serviceのいずれでもデプロイメント可能です。 + +Teradata Vantage Native Object Store(NOS)は、標準的なSQLを使用して、Azure Blob Storageなどの外部オブジェクトストアにあるデータを探索することが可能です。NOSを使用するために、特別なオブジェクトストレージ側の計算インフラは必要ありません。コンテナを指すNOSテーブル定義を作成するだけで、Blob Storageコンテナにあるデータを探索することができます。NOSを使用すると、Blob Storageからデータを迅速にインポートしたり、データベース内の他のテーブルと結合したりすることも可能です。 + +また、Teradata Parallel Transporter(TPT)ユーティリティを使用して、Blob StorageからTeradata Vantageにデータを一括でインポートすることも可能です。Vantage内で効率的にクエリ一することができます。 + +詳細については、https://docs.teradata.com/home[*ドキュメント*]を参照してください。 + +== 前提条件 + + +* Teradata Vantageインスタンスへのアクセス。 + +include::../partials/vantage_clearscape_analytics.adoc[] + +* Azureアカウント。 https://azure.microsoft.com/free/[無料アカウント] で始めることができます。 +* データデータセットを保存するための https://docs.microsoft.com/en-us/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal[Azure Blob Storage] アカウント。 + +== 手順 + +前提条件を満たしたら、以下の手順を実行します。 + +1. Azure Blob Storage アカウントとコンテナを作成する +2. データ共有アカウントを作成する +3. 共有を作成する +4. データ共有を使用してデータを受信および受信する +5. Blob Storage への NOS アクセスを構成する +6. lob Storageのデータセットにクエリーを実行する +7. Blob StorageからVantageにデータをロードする(オプション) + +=== Azure Blob Storageアカウントとコンテナを作成する + +* ブラウザで https://portal.azure.com/[Azureポータル] を開き(Chrome、Firefox、Safariでうまくいきます)、この記事の _myProviderStorage_rg_ というリソースグループに https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal#create-a-storage-account-1[ストレージアカウントを作成する] の手順に従います。 + +* ストレージ名と接続方式を入力します。今回は、 _myproviderstorage_ と _public endpoint_ を使用します。 ++ +NOTE: 作成するすべてのサービスに同じ場所を使用することをお勧めします。 + +* *Review + create* を選択し、*Create* を選択します。 + +* *Go to resource* をクリックし、 *Containers* をクリックし、コンテナを作成します。 + +* *+ Container* ボタンをクリックします。 + +* コンテナ名を入力します。今回は _providerdata_ を使用します。 ++ +image:cloud-guides/{page-image-directory}/image3.png[image,width=623,height=138] + +* *作成* をクリックします。 + +=== データシェアアカウントの作成 + +データセットを共有するプロバイダーのデータ共有アカウントを作成します。 + +この記事の https://docs.microsoft.com/en-us/azure/data-share/share-your-data?tabs=azure-portal#create-a-data-share-account[Azure データ共有アカウントの作成] の手順に従い、 _myDataShareProvider_rg_ というリソース グループにリソースを作成します。 + +* *Basics* タブで、データ共有アカウント名を入力します。今回は 、_mydatashareprovider_ を使用します。 ++ +image:cloud-guides/{page-image-directory}/image4.png[image,width=576,height=394] ++ +NOTE: 作成するすべてのサービスに同じ場所を使用することをお勧めします。 + +* *Review + create* を選択し、*Create* を選択します。 + +* デプロイが完了したら、*Go to resource* を選択します。 + +=== 共有の作成 + +* [データ共有]の概要ページに移動し、 https://docs.microsoft.com/en-us/azure/data-share/share-your-data?tabs=azure-portal#create-a-share[共有を作成] の手順に従います。 + +* *Start sharing your data* を選択します。 + +* + *Create* を選択します。 + +* *Details* タブで、共有名と共有タイプを入力します。今回は、_WeatherData_ と _Snapshot_ を使用します。 + ++ +image:cloud-guides/{page-image-directory}/image5.png[image,width=472,height=381] + +[NOTE] +.スナップショット共有 +==== +受信者にデータのコピーを提供するために、スナップショット共有を選択します。 + +サポートされているデータストア Azure Blob Storage、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、Azure SQL Database、Azure Synapse Analytics (旧 SQL DW) +==== + +[NOTE] +.インプレース共有 +==== +データへのアクセスをソースで提供するために、インプレース共有を選択します。 + +サポートされているデータストア Azure データエクスプローラ +==== + +* *Continue* をクリックします。 + +* *Datasets* タブで、 *Add datasets* + をクリックします。 +* *Azure Blob Storage* を選択します。 ++ +image:cloud-guides/{page-image-directory}/image6.png[Image,width=378,height=360] + +* *次へ*をクリックします。 + +* データセットを提供するストレージアカウントを入力します。今回は、 _myproviderstorage_ を使用します。 ++ +image:cloud-guides/{page-image-directory}/image7.png[Image,width=394,height=364] + + +* *Next* をクリックします。 + +* コンテナをダブルクリックして、データセットを選択します。今回は 、_providerdata_ と _onpoint_history_postal-code_hour.csv_ ファイルを使用します。 ++ +image:cloud-guides/{page-image-directory}/image8.png[Image,width=381,height=259] + +図 6 ストレージ コンテナとデータセットの選択 + +NOTE: Azure Data Share は、フォルダおよびファイル レベルで共有できます。ファイルのアップロードには、Azure Blob Storageリソースを使用します。 + +* *次へ* をクリックします。 + +* コンシューマに表示されるフォルダとデータセットのデータセット名を入力します。今回はデフォルトの名前を使用しますが、providerdata フォルダを削除します。*Add datasets* をクリックします。 ++ +image:cloud-guides/{page-image-directory}/image9.png[Image,width=392,height=266] + +* *Add datasets* をクリックします。 ++ +image:cloud-guides/{page-image-directory}/image10.png[送信済み共有に追加されたデータセット,image,width=624,height=242] + +* *Continue* をクリックします。 + +* *Recipients* タブで、 *Add recipient* の電子メールアドレスを追加するをクリックします。。 + +* 消費者の電子メールアドレスを入力します。 ++ +image:cloud-guides/{page-image-directory}/image11.png[受信者の電子メールアドレスを追加,image,width=624,height=180] + +TIP: 消費者が受け入れることができるシェア有効期限を設定します。 + +* *Continue* をクリックします。 + +* [*Settings*] タブで、スナップショットのスケジュールを設定します。今回は、デフォルトで _チェックを外して_ 使用します。 ++ +image:cloud-guides/{page-image-directory}/image12.png[スナップショットのスケジュールを設定,image,width=437,height=299] + +* *Continue* をクリックします。 + +* *Review + Create* タブの *Create*をクリックします。 ++ +image:cloud-guides/{page-image-directory}/image13.png[Review + Create,image,width=440,height=334] + +* これでAzureデータ共有が作成され、データ共有の受信者が招待を受け入れる準備ができました。 ++ +image:cloud-guides/{page-image-directory}/image14.png[データ共有の準備の完了と受信者への招待の送信,image,width=474,height=169] + +=== Azure Data Share を使用したデータの受理と受信 + +今回は、受信者/消費者が Azure Blob ストレージ アカウントにデータを受信することを想定しています。 + +データ共有 _プロバイダ_ と同様に、データ共有の招待を受け入れる前に、_コンシューマ_ のすべての事前要件が完了していることを確認します。 + +* Azureのサブスクリプション。持っていない場合は、事前に https://azure.microsoft.com/free/[+++無料アカウント+++] を作成してください。 +* Azure Blob Storage アカウントとコンテナ: _myConsumerStorage_rg_ というリソース グループを作成し、アカウント名 _myconsumerstorage_ とコンテナ _consumerdata_ を作成します。 +* Azure Data Share アカウント: _myDataShareConsumer_rg_ というリソース グループを作成し、 _mydatashareconsumer_ というデータ共有アカウント名を作成して、データを受け入れます。 + + https://docs.microsoft.com/en-us/azure/data-share/subscribe-to-data-share?tabs=azure-portal[Azure Data Shareを使用してデータを受信する]の手順に従います。 + +==== 招待状を開く + +* メールには、Microsoft Azureから「Azure Data Share invitation from *mailto:yourdataprovider@domain.com[+++yourdataprovider@domain.com+++].*という件名の招待状が届いています。*View invitation(招待状を表示する)* をクリックすると、Azureで招待状を表示することができます。 ++ +image:cloud-guides/{page-image-directory}/image15.png[受信者へのData Share招待状メール,image,width=387,height=192] + +* ブラウザでData Shareの招待状の一覧を表示するアクションです。 ++ +image:cloud-guides/{page-image-directory}/image16.png[Data Shareへの招待,image,width=624,height=165] + +* 表示したいシェアを選択します。今回は 、_WeatherData_ を選択します。 + +==== 招待を受け入れる + +* _Target Data Share Account(ターゲット データ共有アカウント)_ で、データシェアをデプロイするサブスクリプションとリソースグループを選択するか、ここで新しいデータシェアを作成することができます。 ++ +NOTE: f プロバイダが利用規約の承諾を必要とする場合、ダイアログボックスが表示され、利用規約に同意することを示すボックスにチェックを入れる必要があります。 + +* Resource groupとData share accountを入力します。今回は _myDataShareConsumer_rg_ と _mydatashareconsumer_ のアカウントを使用します。 ++ +image:cloud-guides/{page-image-directory}/image17.png[Target Data Share アカウント,image,width=424,height=228] + +* *Accept and configure* を選択すると、Share subscriptionが作成されます。 + +==== 受信共有の設定 + +* *Datasets* タブを選択します。宛先を指定するデータセットの横にあるチェックボックスをオンにします。+ *Map to target* を選択し、ターゲット データ ストアを選択します。 ++ +image:cloud-guides/{page-image-directory}/image18.png[DatasetとMap to targetを選択,image,width=568,height=186] + +* ターゲットデータストアの種類と、データを格納するパスを選択します。この記事のスナップショットの例では、コンシューマーの Azure Blob Storage アカウント _myconsumerstorage_ とコンテナ _consumerdata_ を使用することにします。 ++ +NOTE: Azure Data Shareは、異なるデータストアから、または異なるデータストアへの共有機能を含む、オープンで柔軟なデータ共有を提供します。スナップショットおよびインプレース共有を受け入れることができるhttps://docs.microsoft.com/en-us/azure/data-share/supported-data-stores#supported-data-stores[サポートされた]データソースを確認します。 ++ +image:cloud-guides/{page-image-directory}/image19.png[データセットをターゲットにマッピングする,image,width=291,height=286] + +* *Map to target*をクリックします。 + +* マッピングが完了したら、スナップショットベースの共有の場合は、*Details* タブをクリックし、_Full_ または _Incremental_ で *Trigger snapshot* をクリックします。プロバイダからデータを受け取るのは初めてなので、完全なコピーを選択します。 ++ +image:cloud-guides/{page-image-directory}/image20.png[フルまたはインクリメンタルのスナップショットをトリガーする,image,width=326,height=280] + +* 最終実行ステータスが _成功_ したら、ターゲットデータストアに移動して受信したデータを表示します。 *Datasets* を選択し、Target Pathにあるリンクをクリックします。 ++ +image:cloud-guides/{page-image-directory}/image21.png[共有データを表示するためのデータセットとターゲットパス,image,width=623,height=118] + +=== Azure Blob Storage への NOS アクセスの構成 + +Native Object Store(NOS)は、Azure Blob Storageのデータを直接読み込むことができるため、明示的にデータを読み込むことなくBlob Storageのデータを探索、分析することが可能です。 + +==== 外部テーブル定義の作成 + +外部テーブル定義により、Blob Storage内のデータをAdvanced SQL Engine内で簡単に参照することができ、構造化されたリレーショナル形式でデータを利用できるようになります。 + +NOTE: NOSは、CSV、JSON、Parquet形式のデータをサポートしています。 + +* Teradata Studioを使用してVantageシステムにログインします。 + +* 以下のSQLコマンドを使用して、Blob StorageコンテナにアクセスするためのAUTHORIZATIONオブジェクトを作成します。 ++ +[source, teradata-sql] +---- +CREATE AUTHORIZATION DefAuth_AZ +AS DEFINER TRUSTED +USER 'myconsumerstorage' /* Storage Account Name */ +PASSWORD '*****************' /* Storage Account Access Key or SAS Token */ +---- ++ +** _USER_ の文字列は、ストレージアカウント名に置き換えてください。 +** _PASSWORD_ の文字列は、ストレージアカウントのアクセスキーまたは SAS トークンに置き換えます。 + +* 以下のSQLコマンドで、Blob Storage上のCSVファイルに対する外部テーブル定義を作成します。 ++ +[source, teradata-sql] +---- +CREATE MULTISET FOREIGN TABLE WeatherData, +EXTERNAL SECURITY DEFINER TRUSTED DefAuth_AZ ( + Location VARCHAR(2048) CHARACTER SET UNICODE CASESPECIFIC, + Payload DATASET INLINE LENGTH 64000 STORAGE FORMAT CSV +) +USING ( + LOCATION ('/AZ/myconsumerstorage.blob.core.windows.net/consumerdata/') +) +---- ++ +NOTE: 最低限、外部テーブルの定義には、テーブル名(WeatherData)と、オブジェクトストアのデータを指し示すロケーション句を含める必要があります。 ++ +_LOCATION_ では、ストレージアカウント名とコンテナ名が必要です。これを自分のストレージアカウント名とコンテナ名に置き換える必要があります。 ++ +オブジェクトに標準拡張子 (例えば、「.json」、「.csv」、「.parquet」) がない場合、 _Location…Payload_ 列定義句も必要であり、LOCATION フェーズにファイル名を含める必要があります。例えば、以下のようになります。LOCATION (`AZ/.blob.core.windows.net//`)。 ++ +外部テーブルは常にNoPI(No Primary Index)テーブルとして定義されます。 + +=== Azure Blob Storage のデータセットにクエリーを実行する + +以下のSQL コマンドを実行して、データセットにクエリを実行します。 + +[source, teradata-sql] +---- +SELECT * FROM WeatherData SAMPLE 10; +---- + +外部テーブルには、2つの列しか含まれていません。LocationとPayloadです。Locationは、オブジェクトストアシステム内のアドレスです。データ自体はpayload列で表現され、外部テーブルの各レコード内のpayloadの値が1つのCSV行を表現します。 + +image:cloud-guides/{page-image-directory}/image22.png[WeatherDataテーブル,image,width=572,height=104] + +以下のSQLコマンドを実行し、オブジェクト内のデータに注目します。 + +[source, teradata-sql] +---- +SELECT payload..* FROM WeatherData SAMPLE 10; +---- + +image:cloud-guides/{page-image-directory}/image23.png[WeatherData テーブルのペイロード,width=574,height=140] + +==== ビューを作成する + +ビューを使用すると、ペイロード属性に関連する名前を簡素化でき、オブジェクトデータに対するSQLを簡単にコーディングでき、外部テーブルのLocation参照を隠蔽できます。 + + +NOTE: Vantage の外部テーブルでは、オブジェクト名と列名の区切りに `..` (ダブルドットまたはダブルピリオド) オペレータが使用されます。 + +* 以下の SQL コマンドを実行し、ビューを作成します。 ++ +[source, teradata-sql] +---- +REPLACE VIEW WeatherData_view AS ( + SELECT + CAST(payload..postal_code AS VARCHAR(10)) Postal_code, + CAST(payload..country AS CHAR(2)) Country, + CAST(payload..time_valid_utc AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS') Time_Valid_UTC, + CAST(payload..doy_utc AS INTEGER) DOY_UTC, + CAST(payload..hour_utc AS INTEGER) Hour_UTC, + CAST(payload..time_valid_lcl AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS') Time_Valid_LCL, + CAST(payload..dst_offset_minutes AS INTEGER) DST_Offset_Minutes, + CAST(payload..temperature_air_2m_f AS DECIMAL(4,1)) Temperature_Air_2M_F, + CAST(payload..temperature_wetbulb_2m_f AS DECIMAL(3,1)) Temperature_Wetbulb_2M_F, + CAST(payload..temperature_dewpoint_2m_f AS DECIMAL(3,1)) Temperature_Dewpoint_2M_F, + CAST(payload..temperature_feelslike_2m_f AS DECIMAL(4,1)) Temperature_Feelslike_2M_F, + CAST(payload..temperature_windchill_2m_f AS DECIMAL(4,1)) Temperature_Windchill_2M_F, + CAST(payload..temperature_heatindex_2m_f AS DECIMAL(4,1)) Temperature_Heatindex_2M_F, + CAST(payload..humidity_relative_2m_pct AS DECIMAL(3,1)) Humidity_Relative_2M_Pct, + CAST(payload..humidity_specific_2m_gpkg AS DECIMAL(3,1)) Humdity_Specific_2M_GPKG, + CAST(payload..pressure_2m_mb AS DECIMAL(5,1)) Pressure_2M_Mb, + CAST(payload..pressure_tendency_2m_mb AS DECIMAL(2,1)) Pressure_Tendency_2M_Mb, + CAST(payload..pressure_mean_sea_level_mb AS DECIMAL(5,1)) Pressure_Mean_Sea_Level_Mb, + CAST(payload..wind_speed_10m_mph AS DECIMAL(3,1)) Wind_Speed_10M_MPH, + CAST(payload..wind_direction_10m_deg AS DECIMAL(4,1)) Wind_Direction_10M_Deg, + CAST(payload..wind_speed_80m_mph AS DECIMAL(3,1)) Wind_Speed_80M_MPH, + CAST(payload..wind_direction_80m_deg AS DECIMAL(4,1)) Wind_Direction_80M_Deg, + CAST(payload..wind_speed_100m_mph AS DECIMAL(3,1)) Wind_Speed_100M_MPH, + CAST(payload..wind_direction_100m_deg AS DECIMAL(4,1)) Wind_Direction_100M_Deg, + CAST(payload..precipitation_in AS DECIMAL(3,2)) Precipitation_in, + CAST(payload..snowfall_in AS DECIMAL(3,2)) Snowfall_in, + CAST(payload..cloud_cover_pct AS INTEGER) Cloud_Cover_Pct, + CAST(payload..radiation_solar_total_wpm2 AS DECIMAL(5,1)) Radiation_Solar_Total_WPM2 + FROM WeatherData +) +---- + +* 以下の SQL コマンドを実行し、ビューを検証します。 ++ +[source, teradata-sql] +---- +SELECT * FROM WeatherData_view SAMPLE 10; +---- ++ +image:cloud-guides/{page-image-directory}/image24.png[WeatherData_view,image,width=624,height=75] + +ビューを作成した後は、オブジェクト ストアのデータをクエリで簡単に参照し、他のテーブル(Vantage のリレーショナル テーブルとオブジェクト ストアの外部テーブルの両方)と結合することができます。これにより、データがどこにあっても、Vantageの完全な分析機能を100%活用することができます。 + +=== Blob StorageからVantageへのデータのロード(オプション) + +Blob Storageデータの永続的なコピーを持つことは、同じデータに繰り返しアクセスすることが予想される場合に便利です。NOS では、Blob Storage データの永続的なコピーは自動的に作成されません。外部テーブルを参照するたびに、VantageはBlob Storageからデータをフェッチします。(一部のデータはキャッシュされることがありますが、これは Blob Storage 内のデータのサイズと Vantage の他のアクティブなワークロードに依存します)。 + +また、Blob Storage から転送されるデータに対してネットワーク料金が課金される場合があります。Blob Storage内のデータを複数回参照する場合は、一時的にでもVantageにロードすることでコストを削減することができます。 + +Vantageにデータをロードする方法は、以下の中から選択できます。 + +==== 単一のステートメントでテーブルの作成とデータの読み込みを行う + +単一のステートメントで、テーブルの作成とデータのロードの両方を行うことができます。外部テーブルのペイロードから必要な属性を選択し、それらがリレーショナルテーブルでどのように呼ばれるかを選択することができます。 + + *CREATE TABLE AS … WITH DATA*ステートメントは、ソーステーブルとして外部テーブル定義を使用することができます。 + +* 以下のSQLコマンドを実行してリレーショナル テーブルを作成しデータをロードします。 ++ +[source, teradata-sql] +---- +CREATE MULTISET TABLE WeatherData_temp AS ( + SELECT + CAST(payload..postal_code AS VARCHAR(10)) Postal_code, + CAST(payload..country AS CHAR(2)) Country, + CAST(payload..time_valid_utc AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS') Time_Valid_UTC, + CAST(payload..doy_utc AS INTEGER) DOY_UTC, + CAST(payload..hour_utc AS INTEGER) Hour_UTC, + CAST(payload..time_valid_lcl AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS') Time_Valid_LCL, + CAST(payload..dst_offset_minutes AS INTEGER) DST_Offset_Minutes, + CAST(payload..temperature_air_2m_f AS DECIMAL(4,1)) Temperature_Air_2M_F, + CAST(payload..temperature_wetbulb_2m_f AS DECIMAL(3,1)) Temperature_Wetbulb_2M_F, + CAST(payload..temperature_dewpoint_2m_f AS DECIMAL(3,1)) Temperature_Dewpoint_2M_F, + CAST(payload..temperature_feelslike_2m_f AS DECIMAL(4,1)) Temperature_Feelslike_2M_F, + CAST(payload..temperature_windchill_2m_f AS DECIMAL(4,1)) Temperature_Windchill_2M_F, + CAST(payload..temperature_heatindex_2m_f AS DECIMAL(4,1)) Temperature_Heatindex_2M_F, + CAST(payload..humidity_relative_2m_pct AS DECIMAL(3,1)) Humidity_Relative_2M_Pct, + CAST(payload..humidity_specific_2m_gpkg AS DECIMAL(3,1)) Humdity_Specific_2M_GPKG, + CAST(payload..pressure_2m_mb AS DECIMAL(5,1)) Pressure_2M_Mb, + CAST(payload..pressure_tendency_2m_mb AS DECIMAL(2,1)) Pressure_Tendency_2M_Mb, + CAST(payload..pressure_mean_sea_level_mb AS DECIMAL(5,1)) Pressure_Mean_Sea_Level_Mb, + CAST(payload..wind_speed_10m_mph AS DECIMAL(3,1)) Wind_Speed_10M_MPH, + CAST(payload..wind_direction_10m_deg AS DECIMAL(4,1)) Wind_Direction_10M_Deg, + CAST(payload..wind_speed_80m_mph AS DECIMAL(3,1)) Wind_Speed_80M_MPH, + CAST(payload..wind_direction_80m_deg AS DECIMAL(4,1)) Wind_Direction_80M_Deg, + CAST(payload..wind_speed_100m_mph AS DECIMAL(3,1)) Wind_Speed_100M_MPH, + CAST(payload..wind_direction_100m_deg AS DECIMAL(4,1)) Wind_Direction_100M_Deg, + CAST(payload..precipitation_in AS DECIMAL(3,2)) Precipitation_in, + CAST(payload..snowfall_in AS DECIMAL(3,2)) Snowfall_in, + CAST(payload..cloud_cover_pct AS INTEGER) Cloud_Cover_Pct, + CAST(payload..radiation_solar_total_wpm2 AS DECIMAL(5,1)) Radiation_Solar_Total_WPM2 + FROM + WeatherData + WHERE + Postal_Code = '36101' +) +WITH DATA +NO PRIMARY INDEX +---- + +* 下のSQLコマンドを実行し、テーブルの内容を検証します。 ++ +[source, teradata-sql] +---- +SELECT * FROM WeatherData_temp SAMPLE 10; +---- ++ +image:cloud-guides/{page-image-directory}/image25.png[気象データ,width=624,height=87] + +==== 複数のステートメントでテーブルを作成し、データをロードする + +複数のステートメントを使用して、最初にリレーショナルテーブルを作成し、その後データをロードすることもできます。この選択の利点は、複数のロードを実行できることです。オブジェクトが非常に大きい場合は、異なるデータを選択したり、より小さな増分でロードしたりできる可能性があります。 + +* 以下の SQLコマンドを実行し、リレーショナルテーブルを作成します。 ++ +[source, teradata-sql] +---- +CREATE MULTISET TABLE WeatherData_temp ( + Postal_code VARCHAR(10), + Country CHAR(2), + Time_Valid_UTC TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS', + DOY_UTC INTEGER, + Hour_UTC INTEGER, + Time_Valid_LCL TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS', + DST_Offset_Minutes INTEGER, + Temperature_Air_2M_F DECIMAL(4,1), + Temperature_Wetbulb_2M_F DECIMAL(3,1), + Temperature_Dewpoint_2M_F DECIMAL(3,1), + Temperature_Feelslike_2M_F DECIMAL(4,1), + Temperature_Windchill_2M_F DECIMAL(4,1), + Temperature_Heatindex_2M_F DECIMAL(4,1), + Humidity_Relative_2M_Pct DECIMAL(3,1), + Humdity_Specific_2M_GPKG DECIMAL(3,1), + Pressure_2M_Mb DECIMAL(5,1), + Pressure_Tendency_2M_Mb DECIMAL(2,1), + Pressure_Mean_Sea_Level_Mb DECIMAL(5,1), + Wind_Speed_10M_MPH DECIMAL(3,1), + Wind_Direction_10M_Deg DECIMAL(4,1), + Wind_Speed_80M_MPH DECIMAL(3,1), + Wind_Direction_80M_Deg DECIMAL(4,1), + Wind_Speed_100M_MPH DECIMAL(3,1), + Wind_Direction_100M_Deg DECIMAL(4,1), + Precipitation_in DECIMAL(3,2), + Snowfall_in DECIMAL(3,2), + Cloud_Cover_Pct INTEGER, + Radiation_Solar_Total_WPM2 DECIMAL(5,1) +) +UNIQUE PRIMARY INDEX ( Postal_Code, Time_Valid_UTC ) +---- + +* 以下の SQLを実行し、データをテーブルにロードします。 ++ +[source, teradata-sql] +---- +INSERT INTO WeatherData_temp + SELECT + CAST(payload..postal_code AS VARCHAR(10)) Postal_code, + CAST(payload..country AS CHAR(2)) Country, + CAST(payload..time_valid_utc AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS') Time_Valid_UTC, + CAST(payload..doy_utc AS INTEGER) DOY_UTC, + CAST(payload..hour_utc AS INTEGER) Hour_UTC, + CAST(payload..time_valid_lcl AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS') Time_Valid_LCL, + CAST(payload..dst_offset_minutes AS INTEGER) DST_Offset_Minutes, + CAST(payload..temperature_air_2m_f AS DECIMAL (4,1)) Temperature_Air_2M_F, + CAST(payload..temperature_wetbulb_2m_f AS DECIMAL(3,1)) Temperature_Wetbulb_2M_F, + CAST(payload..temperature_dewpoint_2m_f AS DECIMAL(3,1)) Temperature_Dewpoint_2M_F, + CAST(payload..temperature_feelslike_2m_f AS DECIMAL(4,1)) Temperature_Feelslike_2M_F, + CAST(payload..temperature_windchill_2m_f AS DECIMAL(4,1)) Temperature_Windchill_2M_F, + CAST(payload..temperature_heatindex_2m_f AS DECIMAL(4,1)) Temperature_Heatindex_2M_F, + CAST(payload..humidity_relative_2m_pct AS DECIMAL(3,1)) Humidity_Relative_2M_Pct, + CAST(payload..humidity_specific_2m_gpkg AS DECIMAL(3,1)) Humdity_Specific_2M_GPKG, + CAST(payload..pressure_2m_mb AS DECIMAL(5,1)) Pressure_2M_Mb, + CAST(payload..pressure_tendency_2m_mb AS DECIMAL(2,1)) Pressure_Tendency_2M_Mb, + CAST(payload..pressure_mean_sea_level_mb AS DECIMAL(5,1)) Pressure_Mean_Sea_Level_Mb, + CAST(payload..wind_speed_10m_mph AS DECIMAL(3,1)) Wind_Speed_10M_MPH, + CAST(payload..wind_direction_10m_deg AS DECIMAL(4,1)) Wind_Direction_10M_Deg, + CAST(payload..wind_speed_80m_mph AS DECIMAL(3,1)) Wind_Speed_80M_MPH, + CAST(payload..wind_direction_80m_deg AS DECIMAL(4,1)) Wind_Direction_80M_Deg, + CAST(payload..wind_speed_100m_mph AS DECIMAL(3,1)) Wind_Speed_100M_MPH, + CAST(payload..wind_direction_100m_deg AS DECIMAL(4,1)) Wind_Direction_100M_Deg, + CAST(payload..precipitation_in AS DECIMAL(3,2)) Precipitation_in, + CAST(payload..snowfall_in AS DECIMAL(3,2)) Snowfall_in, + CAST(payload..cloud_cover_pct AS INTEGER) Cloud_Cover_Pct, + CAST(payload..radiation_solar_total_wpm2 AS DECIMAL(5,1)) Radiation_Solar_Total_WPM2 + FROM + WeatherData + WHERE + Postal_Code = '30301' +---- + +* 以下の SQL コマンドを実行し、テーブルの内容を検証します。 ++ +[source, teradata-sql] +---- +SELECT * FROM WeatherData_temp SAMPLE 10; +---- ++ +image:cloud-guides/{page-image-directory}/image26.png[WeatherData_temp,width=624,height=84] + +==== READ_NOS - 外部テーブルの代替方法 + +外部テーブルを定義する代わりに、 `READ_NOS` テーブルオペレータを使用する方法があります。このテーブルオペレータを使うと、最初に外部テーブルを作成することなく、オブジェクトストアから直接データにアクセスしたり、Location句で指定されたすべてのオブジェクトに関連するキーの一覧を表示したりすることができます。 + + `READ_NOS` テーブルオペレータを使用すると、オブジェクト内のデータを探索することができます。 + +* 以下のコマンドを実行し、オブジェクト内のデータを調査します。 ++ +[source, teradata-sql, id="azure_data_share_first_run", role="content-editable emits-gtm-events"]] +---- +SELECT + TOP 5 payload..* +FROM + READ_NOS ( + ON (SELECT CAST( NULL AS DATASET STORAGE FORMAT CSV)) + USING + LOCATION ('/AZ/myconsumerstorage.blob.core.windows.net/consumerdata') + ACCESS_ID('myconsumerstorage') + ACCESS_KEY('*****') + ) AS THE_TABLE + ORDER BY 1 +---- ++ +** _LOCATION_ では、ストレージアカウント名とコンテナ名が必要です。これは上記で黄色で強調表示されています。これを自分のストレージアカウント名とコンテナ名で置き換える必要があります。 +** _ACCESS_ID_ の文字列を、ストレージアカウント名で置き換えます。 +** _ACCES_KEY_ の文字列を、ストレージアカウントのアクセスキーまたはSASトークン + に置き換えます。 ++ +image:cloud-guides/{page-image-directory}/image27.png[READ_NOS,width=624,height=86] + +また、READ_NOSテーブルオペレータを活用して、オブジェクトの長さ(サイズ)を取得することも可能です。 + +* 以下の SQL コマンドを実行し、オブジェクトのサイズを表示します。 ++ +[source, teradata-sql] +---- +SELECT + location(CHAR(120)), ObjectLength +FROM + READ_NOS ( + ON (SELECT CAST( NULL AS DATASET STORAGE FORMAT CSV)) + USING + LOCATION ('/AZ/myconsumerstorage.blob.core.windows.net/consumerdata') + ACCESS_ID('myconsumerstorage') + ACCESS_KEY('*****') + RETURNTYPE('NOSREAD_KEYS') + ) AS THE_TABLE +ORDER BY 1 +---- +** _LOCATION_、 _ACCESS_ID_、および _ACCESS_KEY_ の値を入れ替えてください。 + ++ +image:cloud-guides/{page-image-directory}/image28.png[READ_NOSオブジェクトの長さ,image,width=623,height=30] + +NOS_READテーブルオペレータは、上記セクションの外部テーブル定義で、データをリレーショナルテーブルに読み込むために代用することができます。 + +[source, teradata-sql] +---- +CREATE MULTISET TABLE WeatherData_temp AS ( + SELECT + CAST(payload..postal_code AS VARCHAR(10)) Postal_code, + CAST(payload..country AS CHAR(2)) Country, + CAST(payload..time_valid_utc AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS') Time_Valid_UTC, + CAST(payload..doy_utc AS INTEGER) DOY_UTC, + CAST(payload..hour_utc AS INTEGER) Hour_UTC, + CAST(payload..time_valid_lcl AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI:SS') Time_Valid_LCL, + CAST(payload..dst_offset_minutes AS INTEGER) DST_Offset_Minutes, + CAST(payload..temperature_air_2m_f AS DECIMAL (4,1)) Temperature_Air_2M_F, + CAST(payload..temperature_wetbulb_2m_f AS DECIMAL(3,1)) Temperature_Wetbulb_2M_F, + CAST(payload..temperature_dewpoint_2m_f AS DECIMAL(3,1)) Temperature_Dewpoint_2M_F, + CAST(payload..temperature_feelslike_2m_f AS DECIMAL(4,1)) Temperature_Feelslike_2M_F, + CAST(payload..temperature_windchill_2m_f AS DECIMAL(4,1)) Temperature_Windchill_2M_F, + CAST(payload..temperature_heatindex_2m_f AS DECIMAL(4,1)) Temperature_Heatindex_2M_F, + CAST(payload..humidity_relative_2m_pct AS DECIMAL(3,1)) Humidity_Relative_2M_Pct, + CAST(payload..humidity_specific_2m_gpkg AS DECIMAL(3,1)) Humdity_Specific_2M_GPKG, + CAST(payload..pressure_2m_mb AS DECIMAL(5,1)) Pressure_2M_Mb, + CAST(payload..pressure_tendency_2m_mb AS DECIMAL(2,1)) Pressure_Tendency_2M_Mb, + CAST(payload..pressure_mean_sea_level_mb AS DECIMAL(5,1)) Pressure_Mean_Sea_Level_Mb, + CAST(payload..wind_speed_10m_mph AS DECIMAL(3,1)) Wind_Speed_10M_MPH, + CAST(payload..wind_direction_10m_deg AS DECIMAL(4,1)) Wind_Direction_10M_Deg, + CAST(payload..wind_speed_80m_mph AS DECIMAL(3,1)) Wind_Speed_80M_MPH, + CAST(payload..wind_direction_80m_deg AS DECIMAL(4,1)) Wind_Direction_80M_Deg, + CAST(payload..wind_speed_100m_mph AS DECIMAL(3,1)) Wind_Speed_100M_MPH, + CAST(payload..wind_direction_100m_deg AS DECIMAL(4,1)) Wind_Direction_100M_Deg, + CAST(payload..precipitation_in AS DECIMAL(3,2)) Precipitation_in, + CAST(payload..snowfall_in AS DECIMAL(3,2)) Snowfall_in, + CAST(payload..cloud_cover_pct AS INTEGER) Cloud_Cover_Pct, + CAST(payload..radiation_solar_total_wpm2 AS DECIMAL(5,1)) Radiation_Solar_Total_WPM2 + FROM + READ_NOS ( + ON (SELECT CAST( NULL AS DATASET STORAGE FORMAT CSV)) + USING + LOCATION ('/AZ/myconsumerstorage.blob.core.windows.net/consumerdata') + ACCESS_ID('myconsumerstorage') + ACCESS_KEY('*****') + ) AS THE_TABLE + WHERE + Postal_Code = '36101' +) +WITH DATA +---- + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai.adoc b/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai.adoc new file mode 100644 index 000000000..b3ce73134 --- /dev/null +++ b/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-jupyter-extensions-with-google-vertex-ai.adoc @@ -0,0 +1,179 @@ += Google Vertex AIとTeradata Jupyterエクステンションを統合する +:page-lang: ja +:experimental: +:page-author: Hailing Jiang +:page-email: Hailing.Jiang@teradata.com +:page-revdate: 2022 年 6 月 28 日 +:description: Google Vertex AIとTeradata Jupyterエクステンションを統合する +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, business intelligence, enterprise analytics, jupyter, teradatasql, ipython-sql, teradatasqlalchemy +:page-image-directory: integrate-teradata-jupyter-extensions-with-google-vertex-ai + +include::../partials/jupyter_notebook_clearscape_analytics_note.adoc[] + +== 概要 +Teradata Jupyter拡張は、Teradata SQLカーネルといくつかのUI拡張を提供し、ユーザーがJupyter環境からTeradataデータベースに容易にアクセスし、操作できるようにします。Google Vertex AIは、Google Cloudの新しい統合MLプラットフォームです。Vertex AI Workbenchは、データサイエンスワークフロー全体のためのJupyterベースの開発環境を提供します。今回は、Vertex AIユーザーがMLパイプラインでTeradata拡張を利用できるように、弊社のJupyterエクステンションをVertex AI Workbenchと統合するについて説明します。 + +Vertex AI Workbenchは、マネージドNotebookとユーザーマネージドNotebookの2種類のNotebookをサポートしています。ここでは、ユーザー管理型Notebookに焦点を当てます。Jupyter 拡張機能をユーザー管理のNotebookと統合する 2 つの方法を示します。スタートアップスクリプトを使用してカーネルと拡張機能をインストールする方法と、カスタムコンテナを使用する方法の2種類があります。 + +== 前提条件 +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Vertex AIを有効にしたGoogle Cloudアカウント +* 起動スクリプトとTeradata Jupyter拡張パッケージを保存するためのGoogleクラウドストレージ + +== 統合について + +Vertex AIでTeradata Jupyter Extensionsを実行するには、2つの方法があります。 + +1. link:#_use_startup_script[スタートアップスクリプトを使用する] +2. link:#_use_custom_container[カスタムコンテナを使用する] + +この2つの統合方法について、以下に説明します。 + +=== スタートアップスクリプトを使用する + +新しいNotebookインスタンスを作成する際に、スタートアップスクリプトを指定することができます。このスクリプトは、インスタンスの作成後に一度だけ実行されます。以下はその手順です。 + +1. Teradata Jupyter 拡張パッケージのダウンロードする ++ +link:https://downloads.teradata.com/download/tools/vantage-modules-for-jupyter[Vantage Modules for Jupyter] ページから、Teradata Jupyter extensionsパッケージのバンドルLinux版をダウンロードします。 + +2. パッケージを Google Cloud ストレージ バケットにアップロードする + +3. 起動スクリプトを作成し、クラウドストレージバケットにアップロードする ++ +下記はサンプルスクリプトです。クラウドストレージバケットからTeradata Jupyter extensionパッケージを取得し、Teradata SQLカーネルとエクステンションをインストールします。 ++ +[source, bash, role="content-editable"] +---- +#! /bin/bash + +cd /home/jupyter +mkdir teradata +cd teradata +gsutil cp gs://teradata-jupyter/* . +unzip teradatasql*.zip + +# Install Teradata kernel +cp teradatakernel /usr/local/bin + +jupyter kernelspec install ./teradatasql --prefix=/opt/conda + +# Install Teradata extensions +pip install --find-links . teradata_preferences_prebuilt +pip install --find-links . teradata_connection_manager_prebuilt +pip install --find-links . teradata_sqlhighlighter_prebuilt +pip install --find-links . teradata_resultset_renderer_prebuilt +pip install --find-links . teradata_database_explorer_prebuilt + +# PIP install the Teradata Python library +pip install teradataml + +# Install Teradata R library (optional, uncomment this line only if you use an environment that supports R) +#Rscript -e "install.packages('tdplyr',repos=c('https://r-repo.teradata.com','https://cloud.r-project.org'))" +---- + + +4. 新しいNotebookを作成し、クラウドストレージバケットからスタートアップスクリプトを追加する ++ +image:cloud-guides/{page-image-directory}/vertex.create.notebook.startupscript.png[起動スクリプトを使用して新しいNotebookを作成する, width=75%] + +5. Notebookの作成が完了するまで、数分かかる場合があります。完了したら、 `Open notebook` をクリックする。 ++ +image:cloud-guides/{page-image-directory}/vertex.open.notebook.png[Open notebook, width=75%] + +=== カスタムコンテナを使用する + +もう 1 つのオプションは、Notebookの作成時にカスタム コンテナを提供することです。 + +1. Teradata Jupyter エクステンションパッケージのダウンロードする ++ +link:https://downloads.teradata.com/download/tools/vantage-modules-for-jupyter[Vantage Modules for Jupyter ] ページから、Teradata Jupyter extensionsパッケージバンドルLinux版をダウンロードします。 + + +2. このパッケージを作業ディレクトリにコピーし、解凍する + +3. カスタム Docker イメージを構築する ++ +カスタムコンテナは、8080番ポートでサービスを公開する必要があります。Google Deep Learning Containersイメージから派生したコンテナを作成することをお勧めします。これらのイメージは、ユーザ管理Notebookと互換性があるようにすでに構成されているからです。 ++ +以下は、Teradata SQLカーネルおよび拡張機能をインストールしたDockerイメージを構築するために使用できるDockerfileのサンプルです。 ++ +[source, Dockerfile, role="content-editable"] +---- +# Use one of the deep learning images as base image +# if you need both Python and R, use one of the R images +FROM gcr.io/deeplearning-platform-release/r-cpu:latest + +USER root + +############################################################## +# Install kernel and copy supporting files +############################################################## + +# Copy the kernel +COPY ./teradatakernel /usr/local/bin + +RUN chmod 755 /usr/local/bin/teradatakernel + +# Copy directory with kernel.json file into image +COPY ./teradatasql teradatasql/ + +# Copy notebooks and licenses +COPY ./notebooks/ /home/jupyter +COPY ./license.txt /home/jupyter +COPY ./ThirdPartyLicenses/ /home/jupyter + +# Install the kernel file to /opt/conda jupyter lab instance +RUN jupyter kernelspec install ./teradatasql --prefix=/opt/conda + +############################################################## +# Install Teradata extensions +############################################################## + +RUN pip install --find-links . teradata_preferences_prebuilt && \ + pip install --find-links . teradata_connection_manager_prebuilt && \ + pip install --find-links . teradata_sqlhighlighter_prebuilt && \ + pip install --find-links . teradata_resultset_renderer_prebuilt && \ + pip install --find-links . teradata_database_explorer_prebuilt + +# Give back ownership of /opt/conda to jovyan +RUN chown -R jupyter:users /opt/conda + +# PIP install the Teradata Python libraries +RUN pip install teradataml + +# Install Teradata R library (optional, include it only if you use a base image that supports R) +RUN Rscript -e "install.packages('tdplyr',repos=c('https://r-repo.teradata.com','https://cloud.r-project.org'))" +---- + +4. 作業ディレクトリ(Teradata Jupyter extensionsパッケージを解凍した場所)で、`docker build`を実行してイメージをビルドしてください。 ++ +[source, bash, id="jupyterlab_ext_on_vertex_first_run", role="content-editable emits-gtm-events"] +---- +docker build -f Dockerfile imagename:imagetag . +---- + +5. docker イメージを Google コンテナレジストリまたはアーティファクトレジストリにプッシュする。 ++ +docker イメージをレジストリにプッシュするには、以下のドキュメントを参照してください。 ++ +* link:https://cloud.google.com/container-registry/docs/pushing-and-pulling[コンテナレジストリ。イメージのプッシュとプル] +* link:https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling?hl=en[アーティファクトレジストリ。イメージのプッシュとプル] + +6. 新しいNotebookを作成する ++ +`Environment` セクションで、 `custom container` フィールドを新しく作成したカスタム コンテナの場所に設定します。 ++ +image:cloud-guides/{page-image-directory}/vertex.custom.container.png[Open notebook, width=75%] + +== さらに詳しく +* link:https://teradata.github.io/jupyterextensions[Teradata Jupyter 拡張機能 Web サイト] +* link:https://docs.teradata.com/r/KQLs1kPXZ02rGWaS9Ktoww/root[Jupyter用Teradata Vantage™モジュールインストールガイド] +* link:https://docs.teradata.com/r/1YKutX2ODdO9ppo_fnguTA/root[Python用Teradata®パッケージユーザガイド] +* link:https://cloud.google.com/vertex-ai/docs/training/create-custom-container[Vertex AIのドキュメントです。学習用カスタムコンテナイメージを作成します] +* link:https://cloud.google.com/vertex-ai/docs/workbench/user-managed/custom-container[Vertex AIのドキュメントです。カスタムコンテナを使用してユーザー管理型Notebookインスタンスを作成します] +* link:https://cloud.google.com/vertex-ai/docs/workbench/user-managed/create-new[Vertex AIのドキュメントです。ユーザーマネージドNotebookのインスタンスを作成します] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker.adoc b/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker.adoc new file mode 100644 index 000000000..23e0ffe05 --- /dev/null +++ b/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-jupyter-extensions-with-sagemaker.adoc @@ -0,0 +1,143 @@ += Teradata Jupyter Extentionsと SageMakerNotebookインスタンスを統合する +:page-lang: ja +:experimental: +:page-author: Hailing Jiang +:page-email: Hailing.Jiang@teradata.com +:page-revdate: 2022 年 9 月 27 日 +:description: Teradata Jupyter 拡張機能を SageMaker Notebook インスタンスと統合する +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, business intelligence, enterprise analytics, jupyter, teradatasql, ipython-sql, teradatasqlalchemy +:page-image-directory: integrate-teradata-jupyter-extensions-with-sagemaker + +include::../partials/jupyter_notebook_clearscape_analytics_note.adoc[] + +== 概要 +Teradata Jupyter ExtentionsはTeradata SQLカーネルといくつかのUI拡張を提供しユーザーがJupyter環境からTeradataデータベースを簡単に操作できるようにするものです。今回は、Jupyter ExtentionsとSageMakerNotebookインスタンスを連携させる方法について説明します。 + +== 前提条件 +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* AWS アカウント +* ライフサイクル構成スクリプトとTeradata Jupyter Extentionsパッケージを格納するためのAWS S3バケット + +== 統合について + +SageMakerは、ライフサイクルコンフィギュレーションスクリプトを使用したNotebookインスタンスのカスタマイズをサポートしています。以下では、ライフサイクル構成スクリプトを使用して、Jupyterカーネルと拡張機能をNotebookインスタンスにインストールする方法をデモします。 + +=== notebookインスタンスと連携するための手順 + +1. Teradata Jupyter Extentionsパッケージのダウンロードする ++ +Linux版を https://downloads.teradata.com/download/tools/vantage-modules-for-jupyter からダウンロードし、S3バケットにアップロードしてください。Teradata Jupyterのカーネルとエクステンションを含むzipパッケージです。各エクステンションには2つのファイルがあり、名前に"_prebuilt "が付いているものがPIPでインストールできるプリビルドエクステンション、もう1つが "jupyter labextension "でインストールする必要があるソースエクステンションになります。プレビルド拡張を使用することをお勧めします。 ++ + +2. notebookインスタンスのライフサイクル設定の作成する ++ +image:cloud-guides/{page-image-directory}/sagemaker.notebook.create.lifecycle.config.png[Notebook インスタンスのライフサイクル構成を作成する, width=75%] + ++ +以下はS3バケットからTeradataパッケージを取得しJupyterカーネルとエクステンションをインストールするスクリプトのサンプルです。on-create.shはNotebookインスタンスのEBSボリュームに永続化するカスタムconda envを作成し、Notebook再起動後にインストールが失われないようにしています。on-start.shは、カスタムconda envにTeradataカーネルとエクステンションをインストールします。 + ++ +on-create.sh ++ +[source, bash, role="content-editable"] +---- +#!/bin/bash + +set -e + +# This script installs a custom, persistent installation of conda on the Notebook Instance's EBS volume, and ensures +# that these custom environments are available as kernels in Jupyter. + + +sudo -u ec2-user -i <<'EOF' +unset SUDO_UID +# Install a separate conda installation via Miniconda +WORKING_DIR=/home/ec2-user/SageMaker/custom-miniconda +mkdir -p "$WORKING_DIR" +wget https://repo.anaconda.com/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh -O "$WORKING_DIR/miniconda.sh" +bash "$WORKING_DIR/miniconda.sh" -b -u -p "$WORKING_DIR/miniconda" +rm -rf "$WORKING_DIR/miniconda.sh" +# Create a custom conda environment +source "$WORKING_DIR/miniconda/bin/activate" +KERNEL_NAME="teradatasql" + +PYTHON="3.8" +conda create --yes --name "$KERNEL_NAME" python="$PYTHON" +conda activate "$KERNEL_NAME" +pip install --quiet ipykernel + +EOF +---- + ++ +on-start.sh ++ +[source, bash, role="content-editable"] +---- +#!/bin/bash + +set -e + +# This script installs Teradata Jupyter kernel and extensions. + + +sudo -u ec2-user -i <<'EOF' +unset SUDO_UID + +WORKING_DIR=/home/ec2-user/SageMaker/custom-miniconda + +source "$WORKING_DIR/miniconda/bin/activate" teradatasql + +# fetch Teradata Jupyter extensions package from S3 and unzip it +mkdir -p "$WORKING_DIR/teradata" +aws s3 cp s3://sagemaker-teradata-bucket/teradatasqllinux_3.3.0-ec06172022.zip "$WORKING_DIR/teradata" +cd "$WORKING_DIR/teradata" + +unzip -o teradatasqllinux_3.3.0-ec06172022.zip + +# install Teradata kernel +cp teradatakernel /home/ec2-user/anaconda3/condabin +jupyter kernelspec install --user ./teradatasql + +# install Teradata Jupyter extensions +source /home/ec2-user/anaconda3/bin/activate JupyterSystemEnv + +pip install teradata_connection_manager_prebuilt-3.3.0.tar.gz +pip install teradata_database_explorer_prebuilt-3.3.0.tar.gz +pip install teradata_preferences_prebuilt-3.3.0.tar.gz +pip install teradata_resultset_renderer_prebuilt-3.3.0.tar.gz +pip install teradata_sqlhighlighter_prebuilt-3.3.0.tar.gz + +conda deactivate +EOF +---- ++ +3. Notebook インスタンスを作成するPlatform identifierに「Amazon Linux 2, Jupyter Lab3」を選択しLifecycle configurationに手順2で作成したライフサイクル構成を選択してください。 + ++ +image:cloud-guides/{page-image-directory}/sagemaker.notebook.create.notebook.instance.png[Notebookインスタンスの作成する, width=75%] ++ +また、Teradataデータベースにアクセスするために「Network」セクションにvpc、サブネット、セキュリティグループを追加する必要がある場合があります。 + +4. Notebookインスタンスのステータスが「InService」になるまで待ち「Open JupyterLab」をクリックし、Notebookを開く。 + ++ +image:cloud-guides/{page-image-directory}/sagemaker.notebook.notebook.inservice.png[Notebookを開く, width=75%] + + +デモノートにアクセスし使い方のヒントを得ることができます。 ++ +image:cloud-guides/{page-image-directory}/sagemaker.notebook.start.png[デモNotebookにアクセスする, width=75%] + + +== さらに詳しく +* link:https://teradata.github.io/jupyterextensions[Teradata Jupyter 拡張機能 Web サイト] +* link:https://docs.teradata.com/r/KQLs1kPXZ02rGWaS9Ktoww/root[Jupyter用Teradata Vantage™モジュールインストールガイド] +* link:https://docs.teradata.com/r/1YKutX2ODdO9ppo_fnguTA/root[Python用Teradata®パッケージユーザガイド] +* link:https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html[ライフサイクル構成スクリプトを使用したNotebook インスタンスのカスタマイズ] +* link:https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.sh[amazon sagemaker Notebook インスタンスのライフサイクル構成サンプル] + + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow.adoc b/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow.adoc new file mode 100644 index 000000000..a4c87522e --- /dev/null +++ b/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-vantage-to-salesforce-using-amazon-appflow.adoc @@ -0,0 +1,725 @@ += Amazon Appflowを使用してVantageからSalesforceへ接続する方法 +:page-lang: ja +:experimental: +:page-author: Wenjie Tehan +:page-email: wenjie.tehan@teradata.com +:page-revdate: 2022 年 2 月 14 日 +:description: Amazon AppFlow を使用して Teradata Vantage を Salesforce に接続します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, salesforce integration. +:tabs: +:page-image-directory: integrate-teradata-vantage-to-salesforce-using-amazon-appflow + +== 概要 + +このハウツーでは、SalesforceとTeradata Vantageの間でデータを移行するプロセスについて説明します。2つのユースケースを含みます。 + +1. Salesforceから顧客情報を取得し、Vantageから注文および出荷情報と組み合わせて、分析的な洞察を得ます。 +2. Vantage の `newleads` テーブルを Salesforce のデータで更新し、AppFlow を使用して新しいリードを Salesforce に追加します。 + +image:cloud-guides/{page-image-directory}/image2.png[自動生成される図の説明,width=584,height=262] + +Amazon AppFlowは、SalesforceからAmazon S3に顧客アカウントデータを転送します。その後、Vantage は Native Object Store (NOS) の読み込み機能を使用して、Amazon S3 のデータと Vantage のデータを 1 回のクエリーで結合します。 + +アカウント情報は、Vantage 上の `newleads` テーブルの更新に使用されます。テーブルが更新されると、VantageはNOS WriteでAmazon S3バケットに書き戻す。新しいリードデータファイルの到着時にLambda関数が起動し、データファイルをParquet形式からCSV形式に変換し、AppFlowは新しいリードをSalesforceに挿入し直します。 + +== Amazon AppFlowについて + +Amazon AppFlowは、Salesforce、Marketo、Slack、ServiceNowなどのSaaSアプリケーションと、Amazon S3やAmazon RedshiftなどのAWSサービス間で安全にデータを転送できる、フルマネージド型の統合サービスです。AppFlowは、移動中のデータを自動的に暗号化し、AWS PrivateLinkと統合されたSaaSアプリケーションの公衆インターネット上でのデータのフローを制限することができ、セキュリティ脅威への露出を減らすことができます。 + +現在、Amazon AppFlowは16のソースから選択でき、4つの宛先にデータを送信することができます。 + +== Teradata Vantageについて + +Teradata Vantageは、エンタープライズ分析のためのマルチクラウド対応データプラットフォームであり、データに関する課題を最初から最後まで解決します。 + +Vantageにより、企業は小規模から始めてコンピュートやストレージを弾力的に拡張し、使用した分だけ支払い、低コストのオブジェクトストアを活用し、分析ワークロードを統合することができます。Vantageは、R、Python、Teradata Studio、その他あらゆるSQLベースのツールをサポートします。 + +Vantageは、記述的分析、予測的分析、処方的分析、自律的意思決定、ML機能、可視化ツールを統合したプラットフォームで、データがどこにあっても、リアルタイムのビジネスインテリジェンスを大規模に発掘することができます。 + +Teradata Vantage Native Object Store(NOS)は、Amazon S3などの外部オブジェクトストアにあるデータを、標準SQLを使用して探索することが可能です。NOSを使用するために、特別なオブジェクトストレージ側の計算インフラは必要ありません。Amazon S3のバケットにあるデータを探索するには、バケットを指すNOSテーブル定義を作成するだけでよいのです。NOSを使用すると、Amazon S3からデータを迅速にインポートしたり、Vantageデータベースの他のテーブルと結合したりすることもできます。 + +== 前提条件 + +Amazon AppFlowサービスおよびTeradata Vantageに精通していることが前提です。 + +以下のアカウントとシステムが必要です。 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* フローの作成と実行が可能なロールを持つAWSアカウント。 +* Salesforce データを保存するための Amazon S3 バケット (例: ptctsoutput) +* 生の Vantage データ (Parquet ファイル) を保存する Amazon S3 バケット (例: vantageparquet)。このバケットには、Amazon AppFlowのアクセスを認証するポリシーが必要です。 +* 変換された Vantage データ (CSV ファイル) を保存する Amazon S3 バケット (例: vantagecsv) +* 以下の要件を満たすSalesforceアカウント。 +** お客様の Salesforce アカウントで、API アクセスを有効にする必要があります。Enterprise、Unlimited、Developer、および Performance エディションでは、API アクセスはデフォルトで有効になっています。 +** Salesforce アカウントで、接続アプリのインストールが認証されている必要があります。これが無効になっている場合は、Salesforce 管理者にお問い合わせください。Amazon AppFlow で Salesforce 接続を作成した後、「Amazon AppFlow Embedded Login App」という名前の接続アプリが Salesforce アカウントにインストールされていることを確認します。 +** Amazon AppFlow Embedded Login App」のリフレッシュトークンポリシーは、「Refresh token is valid until revoked」に設定されている必要があります。そうでない場合、リフレッシュトークンの有効期限が切れるとフローが失敗します。 +** イベント駆動型のフロートリガーを使用するには、SalesforceのChange Data Captureを有効にする必要があります。セットアップから、クイック検索に「Change Data Capture」と入力します。 +** Salesforce アプリが IP アドレスの制限を実施している場合、Amazon AppFlow で使用するアドレスをホワイトリストに登録する必要があります。詳細については、Amazon Web Services General Reference の https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html[AWS IP アドレス範囲] を参照してください。 +** Salesforce のレコードを 100 万件以上転送する場合、Salesforce の複合フィールドを選択することはできません。Amazon AppFlow は転送に Salesforce Bulk API を使用するため、複合フィールドの転送は認証されません。 +** AWS PrivateLinkを使用してプライベート接続を作成するには、Salesforceアカウントで「メタデータの管理」と「外部接続の管理」の両方のユーザー権限を有効にする必要があります。プライベート接続は現在、us-east-1 および us-west-2 の AWS リージョンで利用可能です。 +** 履歴オブジェクトなど、更新できないSalesforceオブジェクトがあります。これらのオブジェクトについて、Amazon AppFlowは、スケジュールトリガー型のフローの増分エクスポート(「新しいデータのみを転送」オプション)をサポートしません。代わりに、「すべてのデータを転送する」オプションを選択し、適切なフィルタを選択して転送するレコードを制限することができます。 + +== 手順 + +前提条件を満たした上で、以下の手順で行います。 + + +1. Salesforce to Amazon S3 フローを作成する +2. NOS を使用したデータの探索する +3. NOS を使用して Vantage データを Amazon S3 にエクスポートする +4. Amazon S3からSalesforceへのフローを作成する + +=== Salesforce to Amazon S3 フローの作成する + +このステップでは、Amazon AppFlowを使用してフローを作成します。この例では、 https://developer.salesforce.com/signup[Salesforce 開発者アカウント] を使用してSalesforceに接続します。 + + https://console.aws.amazon.com/appflow[AppFlow コンソール] にアクセスし、AWSログイン認証でサインインし、 *Create flow* をクリックします。正しいリージョンにいること、Salesforceのデータを保存するためのバケットが作成されていることを確認します。 + +image:cloud-guides/{page-image-directory}/image3.png[ソーシャルメディア投稿のスクリーンショット 自動生成された説明,width=624,height=418] + +==== ステップ1:フローの詳細を指定する + +このステップでは、フローの基本情報を提供します。 + + *フロー名* (例: _salesforce_) と *フローの説明(オプション)* を入力し、 *暗号化設定のカスタマイズ(詳細)* のチェックを外したままにします。*次へ* をクリックします。 + +==== ステップ2. フローを構成する + +このステップでは、フローのソースと宛先に関する情報を提供します。この例では、ソースとして *_Salesforce_* を、宛先として *_Amazon S3_* を使用します。 + +* *Source name* で _Salesforce_ を選択し、*Choose Salesforce connection*で * _Create new connection_*を選択します。 ++ +image:cloud-guides/{page-image-directory}/image4.png[携帯電話のスクリーンショット 自動生成された説明,width=624,height=392] + +* *Salesforce環境* と *データの暗号化* にデフォルトを使用する。接続に名前(例:_salesforce_)を付けて、 *Continue* をクリックします。 ++ +image:cloud-guides/{page-image-directory}/image5.png[携帯電話のスクリーンショット 自動生成された説明,width=544,height=327] + +* salesforceのログインウィンドウで、 *Username* と *Password* を入力します。 *ログイン* をクリックします。 ++ +image:cloud-guides/{page-image-directory}/image6.png[携帯電話のスクリーンショット 自動生成された説明,width=477,height=377] + +* *Allow* をクリックして、AppFlowによるSalesforceのデータおよび情報へのアクセスを認証します。 ++ +image:cloud-guides/{page-image-directory}/image7.png[携帯電話のスクリーンショット 自動生成された説明,width=473,height=383] + +* AppFlow の*Configure flow* ウィンドウに戻り、 *Salesforceオブジェクト* を使用し、Salesforce オブジェクトとして _Account_ を選択します。 ++ +image:cloud-guides/{page-image-directory}/image8.png[携帯電話のスクリーンショット 自動生成された説明,width=624,height=390] ++ +image:cloud-guides/{page-image-directory}/image9.png[携帯電話のスクリーンショット 自動生成された説明,width=624,height=389] + +* *Destination name* として _Amazon S3_ を使用します。 link:#prerequisites[先ほど] 作成した、データを保存するバケット(例:_ptctsoutput_)を選択します。 ++ +image:cloud-guides/{page-image-directory}/image10.png[携帯電話のスクリーンショット 自動生成された説明,width=624,height=355] + +* *Flow trigger* を _Run on demand_ にします。 *Next* をクリックします。 ++ +image:cloud-guides/{page-image-directory}/image11.png[携帯電話のスクリーンショット 自動生成された説明,width=624,height=344] + +==== ステップ3:データフィールドのマッピング + +このステップでは、データがソースから宛先に転送される方法を決定します。 + +* *マッピング方法* +として、_手動でフィールドをマッピングする_ を使用します* 簡単のため、 *送信元から送信先へのマッピング* には _Map all fields directly_ を選択します。 ++ +image:cloud-guides/{page-image-directory}/image12.png[携帯電話のスクリーンショット 自動生成された説明,width=623,height=355] ++ +「_Map all fields directly_」をクリックすると、*Mapped fields*の下にすべてのフィールドが表示される。 *Add formula (concatenates)*、 *Modify values (mask or truncate field values)*、または *Remove selected mappings*を行うフィールドのチェックボックスをクリックします。 ++ +この例では、チェックボックスは選択されない。 + +* *_Validations_* では、「_Billing Address_」が含まれていないレコードを無視する条件を追加します(オプション)。 *Next* をクリックします。 ++ +image:cloud-guides/{page-image-directory}/image13.png[携帯電話のスクリーンショット 自動生成された説明,width=624,height=132] + +==== ステップ4:フィルタの追加 + +転送するレコードを決定するためのフィルタを指定することができます。この例では、削除されたレコードをフィルタリングする条件を追加します(オプション)。*Next* をクリックします。 + +image:cloud-guides/{page-image-directory}/image14.png[携帯電話のスクリーンショット 自動生成された説明,width=624,height=179] + +==== ステップ 5. レビューと作成 + +入力したすべての情報を確認します。必要であれば修正します。*Create flow* をクリックします 。 + +フローが作成されると、フロー情報とともにフロー作成成功のメッセージが表示されます。 + +image:cloud-guides/{page-image-directory}/image15.png[携帯電話のスクリーンショット 自動生成された説明,width=624,height=226] + +==== フローの実行 + +右上の *Run flow* をクリックします。 + +フローの実行が完了すると、実行に成功したことを示すメッセージが表示されます。 + +メッセージの例: + +image:cloud-guides/{page-image-directory}/image16.png[Image,width=624,height=62] + +バケツのリンクをクリックすると、データが表示されます。Salesforce のデータは JSON 形式になります。 + +==== データファイルのプロパティを変更する + +デフォルトでは、Salesforceのデータは暗号化されています。NOSがアクセスするためには、暗号化を解除する必要があります。 + +Amazon S3バケット内のデータファイルをクリックし、 *Properties* タブをクリックします。 + +image:cloud-guides/{page-image-directory}/image17.png[ソーシャルメディアの投稿のスクリーンショット説明は自動的に生成される,width=551,height=366] + + *Encryption*から_AWS-KMS_ をクリックし、_AWS-KMS_ 暗号化から _None_に変更します。*Save*をクリックします。 + +image:cloud-guides/{page-image-directory}/image18.png[ソーシャルメディア投稿のスクリーンショット 自動生成された説明,width=548,height=285] + +=== NOSを使ったデータを探索する + +Native Object Storeには、Amazon S3内のデータを探索 分析するための機能が組み込まれています。ここでは、NOSのよく使われる機能をいくつか列挙します。 + +==== 外部テーブルを作成する + +外部テーブルを使用すると、Vantage Advanced SQL Engine 内で外部データを簡単に参照できるようになり、構造化されたリレーショナル形式でデータを利用できるようになります。 + +外部テーブルを作成するには、まず認証情報を使用してTeradata Vantageシステムにログインします。Amazon S3バケットにアクセスするためのアクセスキーを持つAUTHORIZATIONオブジェクトを作成します。Authorizationオブジェクトは、誰がAmazon S3データにアクセスするために外部テーブルの使用を認証されるかの制御を確立することで、セキュリティを強化します。 + +[source, teradata-sql] +---- +CREATE AUTHORIZATION DefAuth_S3 +AS DEFINER TRUSTED +USER 'A*****************' /* AccessKeyId */ +PASSWORD '********'; /* SecretAccessKey */ +---- + +"USER "はAWSアカウントのAccessKeyId、"PASSWORD "はSecretAccessKeyです。 + +Amazon S3上のJSONファイルに対して、以下のコマンドで外部テーブルを作成します。 + +[source, teradata-sql] +---- +CREATE MULTISET FOREIGN TABLE salesforce, +EXTERNAL SECURITY DEFINER TRUSTED DefAuth_S3 +( + Location VARCHAR(2048) CHARACTER SET UNICODE CASESPECIFIC, + Payload JSON(8388096) INLINE LENGTH 32000 CHARACTER SET UNICODE +) +USING +( + LOCATION ('/S3/s3.amazonaws.com/ptctstoutput/salesforce/1ce190bc-25a9-4493-99ad-7497b497a0d0/903790813-2020-08-21T21:02:25') +); +---- + +最低限、外部テーブルの定義には、テーブル名と、オブジェクトストアのデータを指すLocation句(黄色でハイライトされています)を含める必要があります。Locationは、Amazonでは "bucket"と呼ばれるトップレベルの単一名が必要です。 + +ファイル名の末尾に標準的な拡張子(.json, .csv, .parquet)がない場合、データファイルの種類を示すために、LocationとPayload列の定義も必要です(ターコイズ色でハイライトされている)。 + +外部テーブルは常にNo Primary Index (NoPI)テーブルとして定義される。 + +外部テーブルが作成されると、外部テーブル上で "選択 "を実行することにより、Amazon S3データセットの内容を照会することができます。 + +[source, teradata-sql] +---- +SELECT * FROM salesforce; +SELECT payload.* FROM salesforce; +---- + +外部テーブルには、2つの列しか含まれていません。LocationとPayloadです。Locationは、オブジェクトストアシステム内のアドレスです。データ自体はpayload列で表され、外部テーブルの各レコード内のpayload値は、単一のJSONオブジェクトとそのすべての名前-値ペアを表します。 + +”SELECT * FROM salesforce;” からの出力例。 + +image:cloud-guides/{page-image-directory}/image19.png[自動的に生成される監視の説明を含むイメージ,width=624,height=257] + +サンプル出力形式 "SELECT payload.* FROM salesforce;"。 + +image:cloud-guides/{page-image-directory}/image20.png[携帯電話のスクリーンショット 自動生成された説明,width=624,height=257] + +==== JSON_KEYS テーブルオペレータ + +JSONデータには、レコードごとに異なる属性が含まれることがあります。データストアに含まれる可能性のある属性の完全なリストを決定するには、JSON_KEYSを使用します。 + +[source, teradata-sql] +---- +|SELECT DISTINCT * FROM JSON_KEYS (ON (SELECT payload FROM salesforce)) AS j; +---- + +部分出力 + +image:cloud-guides/{page-image-directory}/image21.png[携帯電話のスクリーンショット 自動生成された説明,width=196,height=225] + +==== ビューを作成する + +ビューは、ペイロード属性に関連する名前を単純化し、オブジェクトストアのデータに対して実行可能なSQLを簡単にコーディングできるようにし、外部テーブルのLocation参照を隠して通常の列のように見えるようにすることができます。 + +以下は、上記の JSON_KEYS テーブルオペレータから検出された属性を使用したビュー作成文のサンプルです。 + +[source, teradata-sql] +---- +REPLACE VIEW salesforceView AS ( + SELECT + CAST(payload.Id AS VARCHAR(20)) Customer_ID, + CAST(payload."Name" AS VARCHAR(100)) Customer_Name, + CAST(payload.AccountNumber AS VARCHAR(10)) Acct_Number, + CAST(payload.BillingStreet AS VARCHAR(20)) Billing_Street, + CAST(payload.BillingCity AS VARCHAR(20)) Billing_City, + CAST(payload.BillingState AS VARCHAR(10)) Billing_State, + CAST(payload.BillingPostalCode AS VARCHAR(5)) Billing_Post_Code, + CAST(payload.BillingCountry AS VARCHAR(20)) Billing_Country, + CAST(payload.Phone AS VARCHAR(15)) Phone, + CAST(payload.Fax AS VARCHAR(15)) Fax, + CAST(payload.ShippingStreet AS VARCHAR(20)) Shipping_Street, + CAST(payload.ShippingCity AS VARCHAR(20)) Shipping_City, + CAST(payload.ShippingState AS VARCHAR(10)) Shipping_State, + CAST(payload.ShippingPostalCode AS VARCHAR(5)) Shipping_Post_Code, + CAST(payload.ShippingCountry AS VARCHAR(20)) Shipping_Country, + CAST(payload.Industry AS VARCHAR(50)) Industry, + CAST(payload.Description AS VARCHAR(200)) Description, + CAST(payload.NumberOfEmployees AS VARCHAR(10)) Num_Of_Employee, + CAST(payload.CustomerPriority__c AS VARCHAR(10)) Priority, + CAST(payload.Rating AS VARCHAR(10)) Rating, + CAST(payload.SLA__c AS VARCHAR(10)) SLA, + CAST(payload.AnnualRevenue AS VARCHAR(10)) Annual_Revenue, + CAST(payload."Type" AS VARCHAR(20)) Customer_Type, + CAST(payload.Website AS VARCHAR(100)) Customer_Website, + CAST(payload.LastActivityDate AS VARCHAR(50)) Last_Activity_Date + FROM salesforce +); +---- + +[source, teradata-sql] +---- +SELECT * FROM salesforceView; +---- + +部分出力 + +image:cloud-guides/{page-image-directory}/image22.png[自動的に生成されたコンピューターの説明を含むイメージ,width=624,height=98] + +==== READ_NOSテーブルオペレータ + +READ_NOSテーブルオペレータは、最初に外部テーブルを定義せずにデータの一部をサンプリングして調査したり、Location句で指定したすべてのオブジェクトに関連するキーのリストを表示するために使用できます。 + +[source, teradata-sql] +---- +SELECT top 5 payload.* +FROM READ_NOS ( + ON (SELECT CAST(NULL AS JSON CHARACTER SET Unicode)) +USING +LOCATION ('/S3/s3.amazonaws.com/ptctstoutput/salesforce/1ce190bc-25a9-4493-99ad-7497b497a0d0/903790813-2020-08-21T21:02:25') + ACCESS_ID ('A**********') /* AccessKeyId */ + ACCESS_KEY ('***********') /* SecretAccessKey */ + ) AS D +GROUP BY 1; +---- + +出力: + +image:cloud-guides/{page-image-directory}/image23.png[携帯電話のスクリーンショット 自動生成された説明,width=321,height=234] + +==== Amazon S3 データとデータベース内テーブルの結合 + +外部テーブルを Vantage 内のテーブルと結合して、さらに分析することができます。例えば、注文と配送の情報は、VantageのOrders、Order_Items、Shipping_Addressの3つのテーブルに格納されています。 + +Orders の DDL: + +[source, teradata-sql] +---- +CREATE TABLE Orders ( + Order_ID INT NOT NULL, + Customer_ID VARCHAR(20) CHARACTER SET LATIN CASESPECIFIC, + Order_Status INT, + -- Order status: 1 = Pending; 2 = Processing; 3 = Rejected; 4 = Completed + Order_Date DATE NOT NULL, + Required_Date DATE NOT NULL, + Shipped_Date DATE, + Store_ID INT NOT NULL, + Staff_ID INT NOT NULL +) Primary Index (Order_ID); +---- + +Order_Items の DDL: + +[source, teradata-sql] +---- +CREATE TABLE Order_Items( + Order_ID INT NOT NULL, + Item_ID INT, + Product_ID INT NOT NULL, + Quantity INT NOT NULL, + List_Price DECIMAL (10, 2) NOT NULL, + Discount DECIMAL (4, 2) NOT NULL DEFAULT 0 +) Primary Index (Order_ID, Item_ID); +---- + +Shipping_Address の DDL: + +[source, teradata-sql] +---- +CREATE TABLE Shipping_Address ( + Customer_ID VARCHAR(20) CHARACTER SET LATIN CASESPECIFIC NOT NULL, + Street VARCHAR(100) CHARACTER SET LATIN CASESPECIFIC, + City VARCHAR(20) CHARACTER SET LATIN CASESPECIFIC, + State VARCHAR(15) CHARACTER SET LATIN CASESPECIFIC, + Postal_Code VARCHAR(10) CHARACTER SET LATIN CASESPECIFIC, + Country VARCHAR(20) CHARACTER SET LATIN CASESPECIFIC +) Primary Index (Customer_ID); +---- + +そして、テーブルには以下のデータがあります。 + +Orders: + +image:cloud-guides/{page-image-directory}/image24.png[Image,width=624,height=51] + +Order_Items: + +image:cloud-guides/{page-image-directory}/image25.png[Image,width=624,height=64] + +Shipping_Address: + +image:cloud-guides/{page-image-directory}/image26.png[Image,width=624,height=53] + +データベースのOrders, Order_Items, Shipping_Address テーブルにsalesforceの外部テーブルを結合することで、顧客の注文情報を顧客の配送情報とともに取得することができます。 + +[source, teradata-sql] +---- +SELECT + s.payload.Id as Customer_ID, + s.payload."Name" as Customer_Name, + s.payload.AccountNumber as Acct_Number, + o.Order_ID as Order_ID, + o.Order_Status as Order_Status, + o.Order_Date as Order_Date, + oi.Item_ID as Item_ID, + oi.Product_ID as Product_ID, + sa.Street as Shipping_Street, + sa.City as Shipping_City, + sa.State as Shipping_State, + sa.Postal_Code as Shipping_Postal_Code, + sa.Country as Shipping_Country +FROM + salesforce s, Orders o, Order_Items oi, Shipping_Address sa +WHERE + s.payload.Id = o.Customer_ID + AND o.Customer_ID = sa.Customer_ID + AND o.Order_ID = oi.Order_ID +ORDER BY 1; +---- + +結果: + +image:cloud-guides/{page-image-directory}/image27.png[Image,width=631,height=27] + +==== Amazon S3データをVantageにインポートする + +Amazon S3データの永続的なコピーを持つことは、同じデータへの反復的なアクセスが予想される場合に便利です。NOSの外部テーブルでは、自動的にAmazon S3データの永続的なコピーを作成しません。データベースにデータを取り込むためのいくつかのアプローチについて、以下に説明します。 + +CREATE TABLE AS … WITH DATAステートメントは、ソーステーブルとして機能する外部テーブル定義で使用することができます。このアプローチでは、外部テーブルのペイロードのうち、ターゲットテーブルに含めたい属性と、リレーショナルテーブルの列の名前を選択的に選択することができます。 + +[source, teradata-sql] +---- +CREATE TABLE salesforceVantage AS ( + SELECT + CAST(payload.Id AS VARCHAR(20)) Customer_ID, + CAST(payload."Name" AS VARCHAR(100)) Customer_Name, + CAST(payload.AccountNumber AS VARCHAR(10)) Acct_Number, + CAST(payload.BillingStreet AS VARCHAR(20)) Billing_Street, + CAST(payload.BillingCity AS VARCHAR(20)) Billing_City, + CAST(payload.BillingState AS VARCHAR(10)) Billing_State, + CAST(payload.BillingPostalCode AS VARCHAR(5)) Billing_Post_Code, + CAST(payload.BillingCountry AS VARCHAR(20)) Billing_Country, + CAST(payload.Phone AS VARCHAR(15)) Phone, + CAST(payload.Fax AS VARCHAR(15)) Fax, + CAST(payload.ShippingStreet AS VARCHAR(20)) Shipping_Street, + CAST(payload.ShippingCity AS VARCHAR(20)) Shipping_City, + CAST(payload.ShippingState AS VARCHAR(10)) Shipping_State, + CAST(payload.ShippingPostalCode AS VARCHAR(5)) Shipping_Post_Code, + CAST(payload.ShippingCountry AS VARCHAR(20)) Shipping_Country, + CAST(payload.Industry AS VARCHAR(50)) Industry, + CAST(payload.Description AS VARCHAR(200)) Description, + CAST(payload.NumberOfEmployees AS INT) Num_Of_Employee, + CAST(payload.CustomerPriority__c AS VARCHAR(10)) Priority, + CAST(payload.Rating AS VARCHAR(10)) Rating, + CAST(payload.SLA__c AS VARCHAR(10)) SLA, + CAST(payload."Type" AS VARCHAR(20)) Customer_Type, + CAST(payload.Website AS VARCHAR(100)) Customer_Website, + CAST(payload.AnnualRevenue AS VARCHAR(10)) Annual_Revenue, + CAST(payload.LastActivityDate AS DATE) Last_Activity_Date + FROM salesforce) +WITH DATA +NO PRIMARY INDEX; +---- + +* `SELECT* * *FROM* salesforceVantage;` 部分的な結果: + +image:cloud-guides/{page-image-directory}/image28.png[コンピュータのスクリーンショット 自動生成された説明,width=624,height=96] + +外部テーブルを使用する代わりに、READ_NOS テーブルオペレータを使用することができます。このテーブルオペレータにより、最初に外部テーブルを構築することなく、オブジェクトストアから直接データにアクセスすることができます。READ_NOSをCREATE TABLE AS句と組み合わせて、データベース内にデータの永続的なバージョンを構築することができます。 + +[source, teradata-sql] +---- +CREATE TABLE salesforceReadNOS AS ( + SELECT + CAST(payload.Id AS VARCHAR(20)) Customer_ID, + CAST(payload."Name" AS VARCHAR(100)) Customer_Name, + CAST(payload.AccountNumber AS VARCHAR(10)) Acct_Number, + CAST(payload.BillingStreet AS VARCHAR(20)) Billing_Street, + CAST(payload.BillingCity AS VARCHAR(20)) Billing_City, + CAST(payload.BillingState AS VARCHAR(10)) Billing_State, + CAST(payload.BillingPostalCode AS VARCHAR(5)) Billing_Post_Code, + CAST(payload.BillingCountry AS VARCHAR(20)) Billing_Country, + CAST(payload.Phone AS VARCHAR(15)) Phone, + CAST(payload.Fax AS VARCHAR(15)) Fax, + CAST(payload.ShippingStreet AS VARCHAR(20)) Shipping_Street, + CAST(payload.ShippingCity AS VARCHAR(20)) Shipping_City, + CAST(payload.ShippingState AS VARCHAR(10)) Shipping_State, + CAST(payload.ShippingPostalCode AS VARCHAR(5)) Shipping_Post_Code, + CAST(payload.ShippingCountry AS VARCHAR(20)) Shipping_Country, + CAST(payload.Industry AS VARCHAR(50)) Industry, + CAST(payload.Description AS VARCHAR(200)) Description, + CAST(payload.NumberOfEmployees AS INT) Num_Of_Employee, + CAST(payload.CustomerPriority__c AS VARCHAR(10)) Priority, + CAST(payload.Rating AS VARCHAR(10)) Rating, + CAST(payload.SLA__c AS VARCHAR(10)) SLA, + CAST(payload."Type" AS VARCHAR(20)) Customer_Type, + CAST(payload.Website AS VARCHAR(100)) Customer_Website, + CAST(payload.AnnualRevenue AS VARCHAR(10)) Annual_Revenue, + CAST(payload.LastActivityDate AS DATE) Last_Activity_Date + FROM READ_NOS ( + ON (SELECT CAST(NULL AS JSON CHARACTER SET Unicode)) + USING + LOCATION ('/S3/s3.amazonaws.com/ptctstoutput/salesforce/1ce190bc-25a9-4493-99ad-7497b497a0d0/903790813-2020-08-21T21:02:25') + ACCESS_ID ('A**********') /* AccessKeyId */ + ACCESS_KEY ('***********') /* SecretAccessKey */ + ) AS D +) WITH DATA; +---- + +`salesforceReadNOS`テーブルからの結果: + +[source, teradata-sql] +---- +SELECT * FROM salesforceReadNOS; +---- + +image:cloud-guides/{page-image-directory}/image29.png[大きなイメージが含まれるイメージ, people, riding Description automatically generated,width=624,height=97] + +Amazon S3データをリレーショナルテーブルに配置するもう一つの方法は、"INSERT SELECT "です。このアプローチでは、外部テーブルがソーステーブルであり、新しく作成されたパーマネントテーブルが挿入されるテーブルとなります。上記のREAD_NOSの例とは逆に、この方法ではパーマネントテーブルを事前に作成する必要があります。 + +INSERT SELECT方式の利点の1つは、ターゲット テーブルの属性を変更できることです。例えば、ターゲットテーブルを`MULTISET`にするかしないかを指定したり、別のプライマリインデックスを選択したりすることができます。 + +[source, teradata-sql] +---- +CREATE TABLE salesforcePerm, FALLBACK , +NO BEFORE JOURNAL, +NO AFTER JOURNAL, +CHECKSUM = DEFAULT, +DEFAULT MERGEBLOCKRATIO, +MAP = TD_MAP1 +( + Customer_Id VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC, + Customer_Name VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC, + Acct_Number VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, + Billing_Street VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC, + Billing_City VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC, + Billing_State VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, + Billing_Post_Code VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC, + Billing_Country VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC, + Phone VARCHAR(15) CHARACTER SET LATIN NOT CASESPECIFIC, + Fax VARCHAR(15) CHARACTER SET LATIN NOT CASESPECIFIC, + Shipping_Street VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC, + Shipping_City VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC, + Shipping_State VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, + Shipping_Post_Code VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC, + Shipping_Country VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC, + Industry VARCHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC, + Description VARCHAR(200) CHARACTER SET LATIN NOT CASESPECIFIC, + Num_Of_Employee INT, + Priority VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, + Rating VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, + SLA VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, + Customer_Type VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC, + Customer_Website VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC, + Annual_Revenue VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, + Last_Activity_Date DATE +) PRIMARY INDEX (Customer_ID); +---- + +[source, teradata-sql] +---- +INSERT INTO salesforcePerm + SELECT + CAST(payload.Id AS VARCHAR(20)) Customer_ID, + CAST(payload."Name" AS VARCHAR(100)) Customer_Name, + CAST(payload.AccountNumber AS VARCHAR(10)) Acct_Number, + CAST(payload.BillingStreet AS VARCHAR(20)) Billing_Street, + CAST(payload.BillingCity AS VARCHAR(20)) Billing_City, + CAST(payload.BillingState AS VARCHAR(10)) Billing_State, + CAST(payload.BillingPostalCode AS VARCHAR(5)) Billing_Post_Code, + CAST(payload.BillingCountry AS VARCHAR(20)) Billing_Country, + CAST(payload.Phone AS VARCHAR(15)) Phone, + CAST(payload.Fax AS VARCHAR(15)) Fax, + CAST(payload.ShippingStreet AS VARCHAR(20)) Shipping_Street, + CAST(payload.ShippingCity AS VARCHAR(20)) Shipping_City, + CAST(payload.ShippingState AS VARCHAR(10)) Shipping_State, + CAST(payload.ShippingPostalCode AS VARCHAR(5)) Shipping_Post_Code, + CAST(payload.ShippingCountry AS VARCHAR(20)) Shipping_Country, + CAST(payload.Industry AS VARCHAR(50)) Industry, + CAST(payload.Description AS VARCHAR(200)) Description, + CAST(payload.NumberOfEmployees AS INT) Num_Of_Employee, + CAST(payload.CustomerPriority__c AS VARCHAR(10)) Priority, + CAST(payload.Rating AS VARCHAR(10)) Rating, + CAST(payload.SLA__c AS VARCHAR(10)) SLA, + CAST(payload."Type" AS VARCHAR(20)) Customer_Type, + CAST(payload.Website AS VARCHAR(100)) Customer_Website, + CAST(payload.AnnualRevenue AS VARCHAR(10)) Annual_Revenue, + CAST(payload.LastActivityDate AS DATE) Last_Activity_Date + FROM salesforce; +---- + +[source, teradata-sql] +---- +SELECT * FROM salesforcePerm; +---- + +結果のサンプル: + +image:cloud-guides/{page-image-directory}/image30.png[人物を含む画像 説明 自動生成,width=624,height=95] + +=== NOS を使用して Vantage データを Amazon S3 にエクスポートする + +Vantage システムで1 行を含む `newleads` テーブルがあります。 + +image:cloud-guides/{page-image-directory}/image41.png[Image,width=624,height=24] + +このリードにはアドレス情報がないことに注記してください。Salesforceから取得したアカウント情報を使って、`newleads`テーブルを更新してみましょう。 + +[source, teradata-sql] +---- +UPDATE nl +FROM + newleads AS nl, + salesforceReadNOS AS srn +SET + Street = srn.Billing_Street, + City = srn.Billing_City, + State = srn.Billing_State, + Post_Code = srn.Billing_Post_Code, + Country = srn.Billing_Country + WHERE Account_ID = srn.Acct_Number; +---- + +これで、新しいリードにアドレス情報が付与されました。 + +image:cloud-guides/{page-image-directory}/image42.png[Image,width=624,height=21] + +WRITE_NOSを使用して、新しいリード情報をS3バケットに書き込みます。 + +[source, teradata-sql, id="salesforce_first_run", role="content-editable emits-gtm-events"]] +---- +SELECT * FROM WRITE_NOS ( +ON ( + SELECT + Account_ID, + Last_Name, + First_Name, + Company, + Cust_Title, + Email, + Status, + Owner_ID, + Street, + City, + State, + Post_Code, + Country + FROM newleads +) +USING + LOCATION ('/s3/vantageparquet.s3.amazonaws.com/') + AUTHORIZATION ('{"Access_ID":"A*****","Access_Key":"*****"}') + COMPRESSION ('SNAPPY') + NAMING ('DISCRETE') + INCLUDE_ORDERING ('FALSE') + STOREDAS ('CSV') +) AS d; +---- + +ここで、Access_IDはAccessKeyID、Access_KeyはBucketに対するSecretAccessKeyです。 + +=== Amazon S3からSalesforceへのフローを作成する + +ステップ1を繰り返し、ソースにAmazon S3、宛先にSalesforceを使用したフローを作成します。 + +==== ステップ1. フローの詳細を指定する + +このステップでは、フローの基本情報を提供する。 + + *Flow name* (例: _vantage2SF_) と *Flow description (optional)*を入力し、 *Customize encryption settings (advanced)* のチェックは外したままにします。*Next*をクリックします。 + +==== ステップ2. フローを構成する + +このステップでは、フローの送信元と送信先に関する情報を提供します。この例では、ソースとして *_Amazon S3_* を、宛先として *_Salesforce_* を使用します。 + +* *Source details*は、 _Amazon S3_を選択し、CSVファイルを書き込んだバケットを選択します(例:vantagecsv)。 +* *Destination details* は、_Salesforce_ を選択し、*Choose Salesforce connection* のドロップダウンリストでStep1で作成した接続を使用し、*Choose Salesforce object* として_Lead_ を選択します。 +* *Error handling*の場合は、デフォルトの_Stop the current flow run_を使用する。 +* *Flow trigger* は _Run on demand_です。 *Next*をクリックします。 + +==== ステップ3. データフィールドをマッピングする + +このステップでは、ソースからデスティネーションへのデータ転送の方法を決定します。 + +* *Mapping method* + として、_Manually map fields_ を使用します* *Destination record preference* + として、_Insert new records (default)_ を使用します* *送信元から送信先へのマッピング* には、次のマッピングを使用します ++ +image:cloud-guides/{page-image-directory}/image43.png[グラフィカル ユーザー インターフェース, application, table Description automatically generated,width=624,height=396] ++ +image:cloud-guides/{page-image-directory}/image44.png[Image,width=624,height=40] + +* *Next* をクリックします。 + +==== ステップ4.フィルタを追加する + +転送するレコードを決定するためのフィルタを指定することができます。この例では、フィルターは追加されません。*Next* をクリックします。 + +==== ステップ5. レビューして作成する + +入力したすべての情報を確認します。必要であれば修正します。*フローの作成*をクリックします 。 + +フローが作成されると、フロー情報とともにフロー作成成功のメッセージが表示されます。 + +==== フローを実行する + +右上の *フローの実行* をクリックします。 + +フローの実行が完了すると、実行に成功したことを示すメッセージが表示されます。 + +メッセージの例: + +image:cloud-guides/{page-image-directory}/image45.png[Image,width=624,height=51] + +Salesforceのページを参照すると、新しいリードTom Johnsonが追加されています。 + +image:cloud-guides/{page-image-directory}/image46.png[グラフィカル ユーザー インターフェース, application Description automatically generated,width=624,height=288] + +== クリーンアップする(オプション) + +Salesforce データの使用が完了したら、使用したリソースに対して AWS アカウント (https://aws.amazon.com/appflow/pricing/[AppFlow]、 Amazon https://aws.amazon.com/s3/pricing/[S3]、 https://www.teradata.com/Cloud/AWS/Do-it-Yourself/Pricing[Vantage] 、 https://aws.amazon.com/ec2/pricing/[VM]など) に請求されないように、以下の手順を実行します。 + +1. AppFlow: ++ +* フローに作成した「接続」を削除する +* フローを削除する + +2. Amazon S3バケットとファイル: ++ +* Vantage データファイルが保存されている Amazon S3 バケットに移動し、ファイルを削除する +* バケットを保持する必要がない場合は、バケットを削除する + +3. Teradata Vantage インスタンス ++ +* 不要になったインスタンスを停止/終了する + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog.adoc b/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog.adoc new file mode 100644 index 000000000..536147e0f --- /dev/null +++ b/modules/ROOT/pages/ja/cloud-guides/integrate-teradata-vantage-with-google-cloud-data-catalog.adoc @@ -0,0 +1,275 @@ += Teradata VantageとGoogle Cloud Data Catalogを統合する +:page-lang: ja +:experimental: +:page-author: Wenjie Tehan +:page-email: wenjie.tehan@teradata.com +:page-revdate: 2022 年 2 月 14 日 +:description: Teradata VantageとGoogle Cloud Data Catalogを統合する +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, google cloud, google cloud data catalog. +:tabs: +:page-image-directory: integrate-teradata-vantage-with-google-cloud-data-catalog + + +== 概要 + +この記事では、 https://github.com/GoogleCloudPlatform/datacatalog-connectors-rdbms/tree/master/google-datacatalog-teradata-connector[Data Catalog Teradata Connector on GitHub] を使用して Teradata VantageとGoogle Cloud Data Catalogを接続し、Data Catalog経由でVantageテーブルのメタデータを探索する手順について説明します。 + +image:cloud-guides/{page-image-directory}/image2.png[図の説明が自動的に生成される,width=525,height=242] + +* Scrape: Teradata Vantageに接続し、利用可能なすべてのメタデータを取得する +* Prepare: Data Catalogエンティティでメタデータを変換し、タグを作成する +* Ingest: Data CatalogエンティティをGoogle Cloudプロジェクトに送信する + +=== Google Cloud Data Catalogについて + +Google Cloud Data Catalog は、完全に管理されたデータ検出およびメタデータ管理サービスです。Data Catalog は、データ アセットのネイティブなメタデータをカタログ化することができます。Data Catalog はサーバーレスであり、テクニカルメタデータとビジネスメタデータの両方を構造化された形式で取り込むためのセントラルカタログを提供します。 + +=== Teradata Vantage について + +Vantageは、データウェアハウス、データレイク、アナリティクスを単一の接続されたエコシステムに統合する最新のクラウドプラットフォームです。 + +Vantageは、記述的分析、予測的分析、処方的分析、自律的意思決定、ML機能、可視化ツールを統合したプラットフォームで、データの所在を問わず、リアルタイムのビジネスインテリジェンスを大規模に発掘することが可能です。 + +Vantageは、小規模から始めて、コンピュートやストレージを弾力的に拡張し、使用した分だけ支払い、低コストのオブジェクトストアを活用し、分析ワークロードを統合することを可能にします。 + +Vantageは、R、Python、Teradata Studio、およびその他のSQLベースのツールをサポートしています。Vantageは、パブリッククラウド、オンプレミス、最適化されたインフラ、コモディティインフラ、as-a-serviceのいずれでもデプロイメント可能です。 + +Teradata Vantage の詳細については、 https://docs.teradata.com/home[ドキュメント] を参照してください。 + +== 前提条件 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Data Catalog 管理者ロールを持つ **https://support.google.com/accounts/answer/27441?hl=en[Google Service Account] ** +* アカウント用にhttps://cloud.google.com/resource-manager/docs/creating-managing-projects[*作成されたCloud Consoleプロジェクト*] (例、partner-integration-lab) +* 課金が有効になっている +* Google Cloud SDKの https://cloud.google.com/sdk/docs/install[インストール] と https://cloud.google.com/sdk/docs/initializing[初期化] +されている* https://www.python.org/downloads/[Python ] がインストールされている +* https://pip.pypa.io/en/stable/installation/[Pip] がインストールされている + +== 手順 + +1. Data Catalog API を有効にする +2. Teradata Data Catalog コネクタをインストールする +3. 実行する +4. Teradata VantageのメタデータをData Catalogで探索する + +=== Data Catalog APIを有効にする + +* http://console.cloud.google.com/[Google] にログインし、ナビゲーションメニューから *APIs & Services* を選択し、 _Library_をクリックします。トップメニューバーでプロジェクトが選択されていることを確認します。 ++ +image:cloud-guides/{page-image-directory}/image3.png[グラフィカル ユーザー インターフェース, text, application Description automatically generated,width=483,height=472] + +* 検索ボックスに _Data Catalog_ を入力し、 *Google Cloud Data Catalog API* をクリックし、 *ENABLE* + をクリックします ++ +image:cloud-guides/{page-image-directory}/image4.png[グラフィカル ユーザー インターフェース, text, application, email Description automatically generated,width=624,height=212] + +=== Teradata Data Catalog コネクタをインストールする + +Teradata Data Catalog コネクタは https://github.com/GoogleCloudPlatform/datacatalog-connectors-rdbms/tree/master/google-datacatalog-teradata-connector[GitHub] で公開されています。このコネクタは Python で記述されています。 + +* 以下のコマンドを実行し、gcloudを認証して、Googleのユーザー認証でCloud Platformにアクセスできるようにします。 ++ +[source, bash] +---- +gcloud auth login +---- + +* Googleのログインページが開くので、Googleアカウントを選択し、次のページで _Allow_ をクリックします。 + +* 次に、デフォルトプロジェクトの設定がまだの場合は設定します。 ++ +[source, bash] +---- +gcloud config set project +---- + +==== virtualenv をインストールする + +Teradata Data Catalog コネクタは、分離されたPython環境にインストールすることをお勧めします。これを行うには、まず https://virtualenv.pypa.io/en/latest/[virtualenv] をインストールします。 + +[tabs] +==== +Windows:: ++ +-- +管理者としてPowerShellで実行: +[source, powershell, role="content-editable emits-gtm-events"] +---- +pip install virtualenv +virtualenv --python python3.6 +\Scripts\activate +---- +-- +MacOS:: ++ +-- +[source, bash, role="content-editable emits-gtm-events"] +---- +pip install virtualenv +virtualenv --python python3.6 +source /bin/activate +---- +-- +Linux:: ++ +-- +[source, bash, role="content-editable emits-gtm-events"] +---- +pip install virtualenv +virtualenv --python python3.6 +source /bin/activate +---- +-- +==== + + +==== Data Catalog Teradataコネクタのインストール + +[tabs] +==== +Windows:: ++ +-- +[source, powershell, role="content-editable emits-gtm-events"] +---- +pip.exe install google-datacatalog-teradata-connector +---- +-- +MacOS:: ++ +-- +[source, bash, role="content-editable emits-gtm-events"] +---- +pip install google-datacatalog-teradata-connector +---- +-- +Linux:: ++ +-- +[source, bash, role="content-editable emits-gtm-events"] +---- +pip install google-datacatalog-teradata-connector +---- +-- +==== + +==== 環境変数の設定 + +[source, bash, id="gcp_env_var", role="content-editable emits-gtm-events"] +---- +export GOOGLE_APPLICATION_CREDENTIALS= +export TERADATA2DC_DATACATALOG_PROJECT_ID= +export TERADATA2DC_DATACATALOG_LOCATION_ID= +export TERADATA2DC_TERADATA_SERVER= +export TERADATA2DC_TERADATA_USERNAME= +export TERADATA2DC_TERADATA_PASSWORD= +---- + + `` には、サービスアカウントのキー(jsonファイル)を指定します。 + +=== 実行する + + `google-datacatalog-teradata-connector` コマンドを実行して、Vantage データベースへのエ ントリポイントを確立します。 + +[source, bash, id="gcp_data_catalog_first_run" role="content-editable emits-gtm-events"] +---- +google-datacatalog-teradata-connector \ + --datacatalog-project-id=$TERADATA2DC_DATACATALOG_PROJECT_ID \ + --datacatalog-location-id=$TERADATA2DC_DATACATALOG_LOCATION_ID \ + --teradata-host=$TERADATA2DC_TERADATA_SERVER \ + --teradata-user=$TERADATA2DC_TERADATA_USERNAME \ + --teradata-pass=$TERADATA2DC_TERADATA_PASSWORD +---- + +google-datacatalog-teradata-connectorコマンドの出力例です。 + +---- +INFO:root: +==============Starting CLI=============== +INFO:root:This SQL connector does not implement the user defined datacatalog-entry-resource-url-prefix +INFO:root:This SQL connector uses the default entry resoure URL + +============Start teradata-to-datacatalog=========== + +==============Scrape metadata=============== +INFO:root:Scrapping metadata from connection_args + +1 table containers ready to be ingested... + +==============Prepare metadata=============== + +--> database: Gcpuser +37 tables ready to be ingested... + +==============Ingest metadata=============== + +DEBUG:google.auth._default:Checking /Users/Teradata/Apps/Cloud/GCP/teradata2dc-credentials.json for explicit credentials as part of auth process... +INFO:root:Starting to clean up the catalog... +DEBUG:google.auth.transport.requests:Making request: POST https://oauth2.googleapis.com/token +DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): oauth2.googleapis.com:443 +DEBUG:urllib3.connectionpool:https://oauth2.googleapis.com:443 "POST /token HTTP/1.1" 200 None +INFO:root:0 entries that match the search query exist in Data Catalog! +INFO:root:Looking for entries to be deleted... +INFO:root:0 entries will be deleted. + +Starting to ingest custom metadata... + +DEBUG:google.auth._default:Checking /Users/Teradata/Apps/Cloud/GCP/teradata2dc-credentials.json for explicit credentials as part of auth process... +INFO:root:Starting the ingestion flow... +DEBUG:google.auth.transport.requests:Making request: POST https://oauth2.googleapis.com/token +DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): oauth2.googleapis.com:443 +DEBUG:urllib3.connectionpool:https://oauth2.googleapis.com:443 "POST /token HTTP/1.1" 200 None +INFO:root:Tag Template created: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_database_metadata +INFO:root:Tag Template created: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_table_metadata +INFO:root:Tag Template created: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_column_metadata +INFO:root:Entry Group created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata +INFO:root:1/38 +INFO:root:Entry does not exist: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser +INFO:root:Entry created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser +INFO:root: ^ [database] 34.105.107.155/gcpuser +INFO:root:Starting the upsert tags step +INFO:root:Processing Tag from Template: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_database_metadata ... +INFO:root:Tag created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser/tags/CWHNiGQeQmPT +INFO:root:2/38 +INFO:root:Entry does not exist: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_Categories +INFO:root:Entry created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_Categories +INFO:root: ^ [table] 34.105.107.155/gcpuser/Categories +INFO:root:Starting the upsert tags step +INFO:root:Processing Tag from Template: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_table_metadata ... +INFO:root:Tag created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_Categories/tags/Ceij5G9t915o +INFO:root:38/38 +INFO:root:Entry does not exist: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_tablesv_instantiated_latest +INFO:root:Entry created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_tablesv_instantiated_latest +INFO:root: ^ [table] 34.105.107.155/gcpuser/tablesv_instantiated_latest +INFO:root:Starting the upsert tags step +INFO:root:Processing Tag from Template: projects/partner-integration-lab/locations/us-west1/tagTemplates/teradata_table_metadata ... +INFO:root:Tag created: projects/partner-integration-lab/locations/us-west1/entryGroups/teradata/entries/gcpuser_tablesv_instantiated_latest/tags/Ceij5G9t915o +INFO:root: +============End teradata-to-datacatalog============ +---- + +=== Teradata VantageのメタデータをData Catalogで探索する + +* https://console.cloud.google.com/datacatalog[Data Catalog] コンソールに移動し、 *Projects*の下にあるプロジェクト(例:Partner-integration-lab)をクリックします。右側のパネルにTeradataのテーブルが表示されます。 ++ +image:cloud-guides/{page-image-directory}/image5.png[グラフィカル ユーザー インターフェース, application Description automatically generated,width=624,height=379] + +* 目的のテーブル(CITY_LEVEL_TRANS)をクリックすると、このテーブルに関するメタデータが表示される。 ++ +image:cloud-guides/{page-image-directory}/image6.png[グラフィカル ユーザー インターフェース, text, application, email Description automatically generated,width=624,height=331] + +== クリーンアップ (オプション) + +* データカタログからメタデータをクリーンアップする。これを行うには、 https://github.com/GoogleCloudPlatform/datacatalog-connectors-rdbms/blob/master/google-datacatalog-teradata-connector/tools/cleanup_datacatalog.py をローカルディレクトリにコピーする。 + +* このファイルがあるディレクトリに移動し、以下のコマンドを実行する。 ++ +[source, bash, role="content-editable emits-gtm-events"] +---- +python cleanup_datacatalog.py --datacatalog-project-ids=$TERADATA2DC_DATACATALOG_PROJECT_ID +---- + +include::ROOT:partial$community_link.adoc[] diff --git a/modules/ROOT/pages/ja/cloud-guides/sagemaker-with-teradata-vantage.adoc b/modules/ROOT/pages/ja/cloud-guides/sagemaker-with-teradata-vantage.adoc new file mode 100644 index 000000000..7f91967fb --- /dev/null +++ b/modules/ROOT/pages/ja/cloud-guides/sagemaker-with-teradata-vantage.adoc @@ -0,0 +1,191 @@ += VantageからSageMakerのAPIを実行する方法 +:page-lang: ja +:experimental: +:page-author: Wenjie Tehan +:page-email: wenjie.tehan@teradata.com +:page-revdate: 2022 年 2 月 8 日 +:description: VantageからSageMakerのAPIを実行する方法 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, ai, artificial intelligence, aws sagemaker. +:tabs: +:page-image-directory: sagemaker-with-teradata-vantage + +== 概要 + +このハウツーは、Amazon SageMakerとTeradata Vantageを統合するのに役立ちます。このガイドで説明するアプローチはこのサービスと統合するための多くの潜在的なアプローチの1つです。 + +Amazon SageMakerはフルマネージドな機械学習プラットフォームを提供します。Amazon SageMakerとTeradataには2つのユースケースがあります。 + +1. データはTeradata Vantage上に存在しAmazon SageMakerはモデル定義とその後のスコアリングの両方に使用されます。このユースケースではTeradataはAmazon S3環境にデータを提供し、Amazon SageMakerがモデル開発のためにトレーニングおよびテストデータセットを利用できるようにします。TeradataはさらにAmazon S3を通じてAmazon SageMakerによるその後のスコアリングのためにデータを利用できるようにします。このモデルではTeradataはデータリポジトリのみとなります。 + +2. データはTeradata Vantage上に存在しAmazon SageMakerはモデル定義に使用され、Teradataはその後のスコアリングに使用されます。このユースケースでは、TeradataはAmazon S3環境にデータを提供しAmazon SageMakerはモデル開発のためにトレーニングおよびテストデータセットを消費できるようにします。Teradataは、Amazon SageMakerのモデルをTeradataのテーブルにインポートしTeradata Vantageでスコアリングを行う必要があります。このモデルではTeradataはデータリポジトリでありスコアリングエンジンでもあります。 + +このドキュメントでは、最初のユースケースについて説明します。 + +Amazon SageMakerはAmazon S3バケットからトレーニングデータとテストデータを消費します。この記事ではTeradataの分析データセットをAmazon S3バケットにロードする方法について説明します。その後、データはAmazon SageMakerで利用可能になり機械学習モデルを構築してトレーニングし本番環境にデプロイすることができます。 + + +== 前提条件 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Amazon S3バケットにアクセスしAmazon SageMakerサービスを使用するためのIAM権限。 +* 学習データを保存するためのAmazon S3バケット。 + +== データの読み込み + +Amazon SageMakerはAmazon S3バケットからデータをトレーニングします。以下はVantageからAmazon S3バケットにトレーニングデータをロードする手順です。 + +1. Amazon SageMakerコンソールに移動しNotebookインスタンスを作成します。Notebookインスタンスを作成する方法については、 link:https://docs.aws.amazon.com/sagemaker/latest/dg/gs-setup-working-env.html[Amazon SageMaker 開発者ガイド] を参照してください。 ++ +image::cloud-guides/{page-image-directory}/create.notebook.png[Notebookインスタンスを作成する] + +2. Notebookのインスタンスを開きます。 ++ +image::cloud-guides/{page-image-directory}/open.notebook.instance.png[Notebook インスタンスを開く] + +3. `New -> conda_python3` をクリックして新規ファイルを起動します。 ++ +image::cloud-guides/{page-image-directory}/start.new.file.png[新しいファイルを開始する] + +4. Teradata Pythonライブラリをインストールします。 ++ +[source, ipython] +---- +!pip install teradataml +---- + +5. 新しいセルに追加のライブラリをインポートします。 ++ +[source, python] +---- +import teradataml as tdml +from teradataml import create_context, get_context, remove_context +from teradataml.dataframe.dataframe import DataFrame +import pandas as pd +import boto3, os +---- + +6. 新しいセルで、Teradata Vantageに接続します。``、 ``、 `` はVantageの環境にあわせて置き換えてください。 ++ +[source, python] +---- +create_context(host = '', username = '', password = '') +---- + +7. TeradataML DataFrame APIを使用して学習用データセットが存在するテーブルからデータを取得します。 ++ +[source, python] +---- +train_data = tdml.DataFrame('table_with_training_data') +trainDF = train_data.to_pandas() +---- + +8. ローカルファイルにデータを書き込みます。 ++ +[source, python] +---- +trainFileName = 'train.csv' +trainDF.to_csv(trainFileName, header=None, index=False) +---- + +9. Amazon S3にファイルをアップロードします。 ++ +[source, python, id="sagemaker_first_usage", role="content-editable emits-gtm-events"]] +---- +bucket = 'sagedemo' +prefix = 'sagemaker/train' + +trainFile = open(trainFileName, 'rb') +boto3.Session().resource('s3').Bucket(bucket).Object(os.path.join(prefix, localFile)).upload_fileobj(trainFile) +---- + +== モデルのトレーニング + +1. 左メニューの `Training` の下にある `Training jobs` を選択し、 `Create training job` をクリックします。 ++ +image::cloud-guides/{page-image-directory}/create.training.job.png[Create training job] + +2. `トレーニングジョブの作成` ウィンドウで、`ジョブ名` (例: `xgboost-bank` ) を入力しIAMロールの `新しいロールを作成` します。Amazon S3 バケットに `Any S3バケット` 、 `ロールの作成` に ++ +を選択します。image::cloud-guides/{page-image-directory}/create.iam.role.png[IAMロールの作成,width=50%] + +3. `Create training job` ウィンドウに戻りアルゴリズムとして `XGBoost` を使用します。 ++ +image::cloud-guides/{page-image-directory}/choose.an.algorithm.png[アルゴリズムの選択,width=50%] + +4. インスタンスタイプはデフォルトの `ml.m4.xlarge`、インスタンスあたりの追加ストレージボリュームは30GBを使用します。これは短いトレーニングジョブで10分以上はかからないはずです。 ++ +image::cloud-guides/{page-image-directory}/resource.configuration.png[リソースを構成,width=50%] + +5. 以下のハイパーパラメータを入力しそれ以外はデフォルトのままにしてください。 ++ +---- +num_round=100 +silent=0 +eta=0.2 +gamma=4 +max_depth=5 +min_child_weight=6 +subsample=0.8 +objective='binary:logistic' +---- + +6. `Input data configuration` には学習データを保存したAmazon S3バケットを入力します。Input modeは `File` です。Content typeは `csv` です。`S3 location` はファイルのアップロード先です。 ++ +image::cloud-guides/{page-image-directory}/input.data.configuration.png[Input data configuration,width=50%] + +7. `Output data configuration` には出力データを保存するパスを入力します。 ++ +image::cloud-guides/{page-image-directory}/output.data.configuration.png[Output data configuration,width=50%] + +8. 他はデフォルトのまま「トレーニングジョブの作成」をクリックします。トレーニングジョブの設定方法の詳細は 、link:https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-algo-train.html#sagemaker-mkt-algo-train-console[「Amazon SageMaker 開発者ガイド」]に記載されています。 + +トレーニングジョブが作成されるとAmazon SageMakerはMLインスタンスを起動してモデルをトレーニングし、結果のモデル成果物やその他の出力を`Output data configuration`デフォルトでは`path//output`)に格納します。 + +== モデルのデプロイ + +モデルを学習させた後、永続的なエンドポイントを使用してモデルをデプロイします。 + +=== モデルの作成 + +1. 左パネルの [ `Inference` の下にある `Models` を選択し、 `Create model` を選択します。モデル名 (例: `xgboost-bank`) を入力し前のステップで作成したIAMロールを選択します。 +2. `コンテナ定義1` では `433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest` を `Location of inference code image` として使用します。`Location of model artifacts` には学習ジョブの出力パスを指定します。 ++ +image::cloud-guides/{page-image-directory}/container.definition.1.png[コンテナ定義1,,width=50%] +3. 他はデフォルトのまま `モデルを作成` します。 + +=== エンドポイントコンフィギュレーションの作成 + +1. 作成したモデルを選択し、 `Create endpoint configuration` をクリックします。 ++ +image::cloud-guides/{page-image-directory}/create.endpoint.configuration.png[Create endpoint configuration] + +2. 名前(例: `xgboost-bank`)を記入しその他はdefaultを使用します。モデル名とトレーニングジョブは自動的に入力されるはずです。 `Create endpoint configuration` をクリックします。 + +=== エンドポイントの作成 + +1. 左パネルから `Inference` -> `Models` を選択し、再度モデルを選択し、今度は`Create endpoint` をクリックします。 ++ +image::cloud-guides/{page-image-directory}/create.endpoint.png[Create endpoint] + +2. 名前 (例: `xgboost-bank`)を入力し、`既存のエンドポイント構成を使用する`: +を選択します。image::{page-image-directory}/attach.endpoint.configuration.png[エンドポイント構成を添付する] + +3. 前回の手順で作成したエンドポイント構成を選択し `エンドポイント構成の選択` をクリックします。 ++ +image::cloud-guides/{page-image-directory}/select.endpoint.configuration.png[エンドポイント構成の選択,width=50%] + +4. 他のすべてをデフォルトのままにして `エンドポイントを作成` をクリックします。 + +これでモデルがエンドポイントにデプロイされクライアントアプリケーションから利用できるようになります。 + +== まとめ + +このハウツーでは、Vantageから学習データを抽出し、それを使ってAmazon SageMakerでモデルを学習させる方法を紹介しました。このソリューションでは、Jupyter Notebookを使用して Vantage からデータを抽出し、S3 バケットに書き込みました。SageMaker トレーニング ジョブは、S3 バケットからデータを読み取り、モデルを生成します。このモデルをサービスエンドポイントとして AWS にデプロイしました。 + +== さらに詳しく +* xref:../general/ml.html[SQL のみを使用して Vantage で ML モデルをトレーニングする方法] + +include::../partials/community_link.adoc[] + diff --git a/modules/ROOT/pages/ja/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio.adoc b/modules/ROOT/pages/ja/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio.adoc new file mode 100644 index 000000000..7e622e040 --- /dev/null +++ b/modules/ROOT/pages/ja/cloud-guides/use-teradata-vantage-with-azure-machine-learning-studio.adoc @@ -0,0 +1,227 @@ += VantageのデータをAzure Machine Learning Studioで使用する方法 +:page-lang: ja +:experimental: +:page-author: Rupal Shah +:page-email: rupal.shah@teradata.com +:page-revdate: 2022 年 2 月 14 日 +:description: VantageのデータをAzure Machine Learning Studioで使用する方法 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, data cloud, machine learning, azure, azure machine learning studio +:tabs: +:page-image-directory: use-teradata-vantage-with-azure-machine-learning-studio + +== 概要 + +https://docs.microsoft.com/en-us/azure/machine-learning/studio/what-is-ml-studio[Azure Machine Learning (ML) Studio]は、データに対する予測分析ソリューションの構築、テスト、およびデプロイに使用できる、ドラッグ&ドロップ可能なコラボレーションツールです。ML Studioは、Azure Blob Storageからデータを取得することができます。このスタートガイドでは、ML Studio に組み込まれた Jupter Notebook 機能を使用して Teradata Vantage データセットを Blob Storage にコピーする方法を説明します。このデータは、ML Studio で機械学習モデルを構築、学習し、本番環境にデプロイするために使用することができます。 + + +image:cloud-guides/{page-image-directory}/image2.png[Image,width=534,height=118] + + +== 前提条件 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Azureサブスクリプションまたは https://azure.microsoft.com/free/[無料アカウント] + の作成* https://docs.microsoft.com/en-us/azure/machine-learning/studio/create-workspace[Azure ML Studio ワークスペース] +* (オプション) https://docs.microsoft.com/en-us/sql/samples/adventureworks-install-configure?view=sql-server-2017[AdventureWorks DW 2016データベース] のダウンロード( _「モデルの学習」_ セクションなど) +** _「vTargetMail」_ テーブルを SQL Server から Teradata Vantageに復元およびコピーします。 + + +== 手順 + +=== 初期設定 + + +* 現在利用可能な格納場所にストレージ アカウントがあり、このスタート ガイドの *Web service plan* に *DEVTEST Standard* を選択していない限り、ML Studio ワークスペースの作成中に、新規のストレージ アカウントを作成する必要がある場合があります。 https://portal.azure.com/[Azure ポータル] にログオンし、ストレージ アカウントを開き、 *コンテナ* がまだ存在しない場合は作成します。 ++ +image:cloud-guides/{page-image-directory}/image3.png[Image,width=520,height=126] + +* *ストレージアカウント名* と *キー* をメモ帳にコピーし、Python3 NotebookでAzure Blob Storageアカウントにアクセスするために使用します。 ++ +image:cloud-guides/{page-image-directory}/image4.png[Image,width=448,height=182] + +* 最後に、*Configuration* プロパティを開き、*_'Secure transfer required'_* を *_Disabled_* に設定して、ML Studioインポートデータモジュールがブロブストレージアカウントにアクセスできるようにする。 ++ +image:cloud-guides/{page-image-directory}/image5.png[Image,width=449,height=78] + +=== データのロード + +ML Studioにデータを取り込むために、まずはTeradata VantageからAzure Blob Storageにデータをロードする必要があります。ML Jupyter Notebookを作成し、Teradataに接続するためのPythonパッケージをインストールし、Azure Blob Storageにデータを保存することにします。 + + https://portal.azure.com/[Azure ポータル] にログオンし、 *ML Studioワークスペース* に移動して、 https://studio.azureml.net/[Machine Learning Studio を起動] し 、 *サインイン*します。 + +1. 以下の画面が表示されます。 *Notebooks* をクリックして、正しいリージョン/ワークスペースにいることを確認し、Notebook の *New* ++ +をクリックします。image:cloud-guides/{page-image-directory}/image6.png[Image,width=519,height=250] + +2. *Python3* を選択し、Notebook インスタンスに *名前を付け* ます。 ++ +image:cloud-guides/{page-image-directory}/image7.png[Image,width=524,height=187] + +3. Jupyter Notebook インスタンスに、 https://pypi.org/project/teradataml/[Teradata Vantage Python package for Advanced Analytics] をインストールします。 ++ +[source, python] +---- +pip install teradataml +---- ++ +NOTE: Microsoft Azure ML StudioとTeradata Vantage Pythonパッケージの間の検証は行われていません。 + +4. https://pypi.org/project/azure-storage-blob/[Microsoft Azure Storage Blob Client Library for Python] をインストールします。 ++ +[source, python] +---- +!pip install azure-storage-blob +---- + +5. 以下のライブラリをインポートしてください。 ++ +[source, python] +---- +import teradataml as tdml +from teradataml import create_context, get_context, remove_context +from teradataml.dataframe.dataframe import DataFrame +import pandas as pd +from azure.storage.blob import (BlockBlobService) +---- + +6. 以下のコマンドを使用して Teradata に接続します。 ++ +[source, python] +---- +create_context(host = '', username = '', password = '') +---- + +7. Teradata Python DataFrameモジュールを使用してデータを取得します。 ++ +[source, python] +---- +train_data = DataFrame.from_table("") +---- + +8. Teradata DataFrameをPanda DataFrameに変換します。 ++ +[source, python] +---- +trainDF = train_data.to_pandas() +---- + +9. データをCSVに変換します。 ++ +[source, python] +---- +trainDF = trainDF.to_csv(head=True,index=False) +---- + +10. Azue Blob Storage アカウント名、キー、コンテナ名の変数を割り当てます。 ++ +[source, python] +---- +accountName="" +accountKey="" +containerName="mldata" +---- + +11. Azure Blob Storageにファイルをアップロードします。 ++ +[source, python, id="azure_ml_studio_first_config", role="content-editable emits-gtm-events"]] +---- +blobService = BlockBlobService(account_name=accountName, account_key=accountKey) +blobService.create_blob_from_text(containerNAme, 'vTargetMail.csv', trainDF) +---- + +12. Azure ポータル にログオンし、BLOB ストレージ アカウントを開いて、アップロードされたファイルを表示します。 ++ +image:cloud-guides/{page-image-directory}/image17.png[Image,width=618,height=118] + +=== モデルの学習 + +既存の https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-get-started-analyze-with-azure-machine-learning[Azure Machine Learning を使用したデータの分析] の記事を使って、Azure Blob Storageのデータに基づいて予測型機械学習モデルを構築します。顧客が自転車を購入する可能性があるかどうかを予測することで、自転車店であるアドベンチャーワークスのためのターゲットマーケティングキャンペーンを構築する予定です。 + +==== データのインポート + +データは、上のセクションでコピーした `vTargetMail.csv` という Azure Blob Storage ファイルにあります。 + +1.. https://studio.azureml.net/[Azure Machine Learning Studio] にサインインし、 *Experiments* をクリックします。 +2.. 画面左下の *+NEW* をクリックし、 *Blank Experiment* を選択します。 +3.. 実験の名前として「Targeted Marketing」を入力します。 +4.. *Data Input and output* の下にある *Import data* モジュールをモジュール ペインからキャンバスにドラッグします。 +5.. [プロパティ] ペインで Azure Blob Storage の詳細 (アカウント名、キー、コンテナ名) を指定します。 + + +experimentキャンバスの下にある *Run* をクリックして、実験を実行します。 + +image:cloud-guides/{page-image-directory}/image18.png[Image,width=401,height=281] + +実験が正常に終了したら、Import Data モジュールの下部にある出力ポートをクリックし、 *Visualize* を選択してインポートしたデータを確認します。 + +image:cloud-guides/{page-image-directory}/image19.png[Image,width=480,height=359] + + +==== データのクリーンアップ + +データをクリーンアップするには、モデルに関連しないいくつかの列を削除する。次を実行します。 + +1. *Data Transformation < Manipulation* の下にある*Select Columns in Dataset*モジュールをキャンバスにドラッグします。このモジュールを*Import Data*モジュールに接続します。 +2. プロパティペインの*Launch column selector*をクリックして、ドロップする列を指定します。 ++ +image:cloud-guides/{page-image-directory}/image20.png[Image,width=456,height=301] +3.*CustomerAlternateKey*と*GeographyKey*の2 つのカラムを除外します。 ++ +image:cloud-guides/{page-image-directory}/image21.png[Image,width=443,height=372] + +==== モデルの構築 + +80%は機械学習モデルの学習用、20%はモデルのテスト用としてデータを80対20に分割します。この2値分類問題には、「Two-Class」アルゴリズムを使用します。 + +1. *SplitData* モジュールをキャンバスにドラッグし、「Select Columns in DataSet」で接続します。 +2. プロパティペインで「Fraction of rows in the first output dataset」に「0.8」を入力します。 ++ +image:cloud-guides/{page-image-directory}/image22.png[Image,width=399,height=336] + +3. *Two-Class Boosted Decision Tree* モジュールを検索し、キャンバスにドラッグします。 +4. *Train Model* モジュールを検索してキャンバスにドラッグし、*Two-Class Boosted Decision Tree* (MLアルゴリズム)モジュールと *Split* *Data* (アルゴリズムをトレーニングするためのデータ)モジュールに接続して入力を指定する。 ++ +image:cloud-guides/{page-image-directory}/image23.png[Image,width=396,height=333] + +5. 次に、[プロパティ]ペインで *Launch column selector* をクリックします。予測するカラムとして *BikeBuyer* カラムを選択します。 ++ +image:cloud-guides/{page-image-directory}/image24.png[Image,width=396,height=330] + +==== モデルの評価 + +次に、このモデルがテストデータでどのように動作するかをテストします。選択したアルゴリズムと異なるアルゴリズムを比較し、どちらがより良いパフォーマンスを示すかを確認します。 + +1. *Score Model* モジュールをキャンバスにドラッグし、 *Train Model* と *Split Data* モジュールに接続します。 ++ + +image:cloud-guides/{page-image-directory}/image25.png[Image,width=398,height=334] + +2. *Two-Class Bayes Point Machine* を検索し、実験キャンバスにドラッグします。このアルゴリズムが、Two-Class Boosted Decision Treeと比較して、どのようなパフォーマンスを示すかを比較します。 +3. Train Model 」と「Score Model」モジュールをコピーして、キャンバスに貼り付けます。 +4. *Evaluate Model* モジュールを検索して、キャンバスにドラッグし、2つのアルゴリズムを比較します。 +5. *実行* 実験します。 ++ +image:cloud-guides/{page-image-directory}/image26.png[Image,width=537,height=351] +6. Evaluate Model モジュールの下部にある出力ポートをクリックし、Visualize をクリックします。 ++ +image:cloud-guides/{page-image-directory}/image27.png[Image,width=447,height=199] + + +提供される指標は、ROC曲線、精度-再現性ダイアグラム、リフトカーブです。これらの指標を見ると、最初のモデルが2番目のモデルよりも良い性能を発揮していることがわかります。最初のモデルが何を予測したかを見るには、スコア モデルの出力ポートをクリックし、可視化をクリックします。 + +image:cloud-guides/{page-image-directory}/image28.png[Image,width=464,height=204] + +テストデータセットに2つの列が追加されているのがわかります。 +1. スコアリングされた確率:顧客がバイクの購入者である可能性。 +2. スコアされたラベル:モデルによって行われた分類 - 自転車の購入者(1)またはそうでない(0)。このラベリングのための確率の閾値は50%に設定されており、調整することが可能です。 + +BikeBuyer列(実際)とScored Labels列(予測)を比較すると、モデルがどの程度うまく機能したかが分かります。次のステップとして、このモデルを使用して新規顧客の予測を行い、このモデルをWebサービスとして公開したり、SQL Data Warehouseに結果を書き戻したりすることが可能です。 + +== さらに詳しく + +* 予測型機械学習モデルの構築の詳細については、 https://azure.microsoft.com/documentation/articles/machine-learning-what-is-machine-learning/[+++Introduction to Machine Learning on Azure+++]を参照してください。 +* 大規模なデータセットのコピーには、Teradata Parallel Transporterのロード/アンロード オペレーターとAzure Blob Storageの間のインターフェイスである https://docs.teradata.com/reader/p~0sSD4zl4K8YPbEGnM3Rg/TTu_WJMMIpo2TEaxFMFopQ[Teradata Access Module for Azure] の利用を検討してください。 + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/elt/transforming-external-data-loaded-via-airbyte-in-teradata-vantage-using-dbt.adoc b/modules/ROOT/pages/ja/elt/transforming-external-data-loaded-via-airbyte-in-teradata-vantage-using-dbt.adoc new file mode 100644 index 000000000..ac06597fd --- /dev/null +++ b/modules/ROOT/pages/ja/elt/transforming-external-data-loaded-via-airbyte-in-teradata-vantage-using-dbt.adoc @@ -0,0 +1,315 @@ += dbt を使用して Airbyte に読み込まれたデータを変換する方法 +:page-lang: ja +:experimental: +:page-author: Krutik Pathak +:page-email: krutik.pathak@teradata.com +:page-revdate: 2023 年 7 月 27 日 +:description: このチュートリアルでは、Airbyte を通じてロードされた外部データを dbt で変換するために必要な変換の型について説明します。 +:keywords: dbt、airbyte、データ変換、データ ウェアハウス、コンピューティング ストレージの分離、teradata、vantage、クラウド データ プラットフォーム、オブジェクト ストレージ、データ転送、データ抽出、エンタープライズ分析、elt。 +:tabs: +:dir: getting-started-with-airbyte-dbt + + +== 概要 + +このチュートリアルでは、Teradata Vantage で link:https://docs.getdbt.com/docs/introduction[dbt (Data Build Tool),window="_blank"] を使用して link:https://github.com/airbytehq/airbyte[、Airbyte,window="_blank" ] (オープンソースの抽出ロード ツール) を介して外部データ ロードを変換する方法を説明します。 + +このチュートリアルは 、元の link:https://github.com/dbt-labs/jaffle_shop-dev[dbt Jaffle Shop tutorial,window="_blank" ] に基づいていますが、 `dbt seed` コマンドを使用する代わりに、Airbyte を使用して Jaffle Shop データセットが Google Sheets から Teradata Vantage にロードされるという小さな変更が加えられています。airbyte を通じてロードされたデータは、以下の図に示すように JSON カラムに含まれています。 + +image::elt/{dir}/raw_data_vantage_dbeaver.png[Teradata Vantageの生データ, width=75%] + +== 前提条件 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* サンプルデータ: サンプルデータ link:https://docs.google.com/spreadsheets/d/1-R4F3q8J9KDnFRWpiT3Ysp1RlOoUu3PeQR7xDeLxFts/edit#gid=42273685[Jaffle Shop Dataset, window="_blank"] は、 Google スプレッドシートにあります。 +* 参照 dbt プロジェクト リポジトリ: link:https://github.com/Teradata/airbyte-dbt-jaffle[Jaffle Project with Airbyte., window="_blank"] +* Python 3.7、3.8、3.9、3.10、または3.11がインストールされている。 + +== サンプルデータのローディング +* link:https://quickstarts.teradata.com/elt/use-airbyte-to-load-data-from-external-sources-to-teradata-vantage.html[Airbyte tutorial, window="_blank"] の手順に従います。Airbyte チュートリアルで参照されるデフォルトのデータセットではなく、link:https://docs.google.com/spreadsheets/d/1-R4F3q8J9KDnFRWpiT3Ysp1RlOoUu3PeQR7xDeLxFts/edit#gid=42273685[Jaffle Shop spreadsheet] からデータをロードするようにしてください。また、Teradata宛先の `Default Schema` を `airbyte_jaffle_shop` に設定する。 + +[NOTE] +==== +AirbyteでTeradata宛先を設定すると、`Default Schema` をリクエストされます。`Default Schema` を `airbyte_jaffle_shop` に設定する。 +==== + +== プロジェクトのクローンを作成する +チュートリアル リポジトリのクローンを作成し、ディレクトリをプロジェクト ディレクトリに変更します。 ++ +[source, bash] +---- +git clone https://github.com/Teradata/airbyte-dbt-jaffle +cd airbyte-dbt-jaffle +---- + +== dbtをインストールする +* dbt とその依存関係を管理するための新しい Python 環境を作成します。環境を有効化します。 ++ +[source, bash] +---- +python3 -m venv env +source env/bin/activate +---- + ++ +[NOTE] +==== +対応するバッチ ファイル `/myenv/Scripts/activate`を実行すると、Windows で仮想環境を有効化できます。 +==== + +* `dbt-teradata`モジュールとその依存関係をインストールします。dbtのコアモジュールも依存関係のあるモジュールとして含まれているので、別にインストールする必要はありません。 ++ +[source, bash] +---- +pip install dbt-teradata +---- + +== dbtを構成する +* dbtプロジェクトを初期化します。 ++ +[source, bash] +---- +dbt init +---- + ++ +dbt プロジェクト ウィザードでは、プロジェクト名と、プロジェクトで使用するデータベース管理システムの入力を求められます。このデモでは、プロジェクト名を `dbt_airbyte_demo` と定義します。dbt-teradataコネクタを使用しているため、使用可能なデータベース管理システムはTeradataのみです。 ++ +image::elt/{dir}/dbt_init_project_name.png[プロジェクト名プロンプト, width=75%] ++ +image::elt/{dir}/dbt_init_database_name.png[データベース名プロンプト, width=75%] + +* `$HOME/.dbt` ディレクトリにある `profiles.yml` ファイルを設定します。`profiles.yml` ファイルが存在しない場合は、新しいファイルを作成できます。 +* Teradataインスタンスの `HOST`、`Username`、`Password` に合わせて、`server`、`username`、`password` をそれぞれ調整します。 +* この構成では、`schema` はサンプルデータを含むデータベースを表し、この場合は、Airbyte `airbyte_jaffle_shop` で定義したデフォルト スキーマです。 ++ +[source, yaml, id="dbt_first_config", role="emits-gtm-events"] +---- +dbt_airbyte_demo: + target: dev + outputs: + dev: + type: teradata + server: + schema: airbyte_jaffle_shop + username: + password: + tmode: ANSI + +---- + +* `profiles.yml` ファイルの準備ができたら、設定を検証できます。dbt プロジェクト フォルダに移動し、以下のコマンドを実行します。 ++ +[source, bash] +---- +dbt debug +---- ++ +デバッグ コマンドがエラーを返した場合は、 `profiles.yml` のコンテンツに問題がある可能性があります。設定が正しければ、次のメッセージが表示されます。 `All checks passed!` ++ +image::elt/{dir}/dbt_debug.png[dbt debug output, width=75%] + +== Jaffle Shop dbtプロジェクト + +`jaffle_shop` は、オンラインで注文を受ける架空のレストランです。このビジネスのデータは、以下のエンティティリレーション図に従う `customers`、 `orders` 、および `payments` のテーブルで構成されています。 + +[erd, format=svg, width=100%] +.... +# Entities + +[customers] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + `first_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `last_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `email ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +[orders] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + +`user_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `order_date ` {bgcolor: "#fcece8", color: "#868686", label: "date", border: "1", border-color: "#ffffff"} + `status ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +[payments] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + +`order_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `payment_method ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + +# Relationships + +customers 1--* orders +orders 1--* payments +.... + +ソース システムのデータは正規化されています。同じデータに基づいた、分析ツールにより適したディメンションモデルを以下に示します。 +[erd, format=svg, width=100%] +.... +# Entities + +[`dimension: customers`] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`customer_id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + `first_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `last_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `email ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `first_order ` {bgcolor: "#fcece8", color: "#868686", label: "date", border: "1", border-color: "#ffffff"} + `most_recent_order ` {bgcolor: "#fcece8", color: "#868686", label: "date", border: "1", border-color: "#ffffff"} + `number_of_orders ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `total_order_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + +[`fact: orders`] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`order_id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + +`customer_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `order_date ` {bgcolor: "#fcece8", color: "#868686", label: "date", border: "1", border-color: "#ffffff"} + `status ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `credit_card_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `coupon_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `bank_transfer_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `gift_card_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + +# Relationships +`dimension: customers` 1--* `fact: orders` +.... + +== dbt の変換 +[NOTE] +==== +以下で詳しく説明する変換を含む完全な dbt プロジェクトは link:https://github.com/Teradata/airbyte-dbt-jaffle[Airbyte用いたJaffle プロジェクト,window="_blank"] にあります。 +==== + +参照 dbt プロジェクトは 2 つの型の変換を実行します。 + +* まず、Airbyte 経由で Google スプレッドシートからロードされた生データ (JSON 形式) をステージング ビューに変換します。この段階でデータは正規化されます。 +* 次に、正規化されたビューを、分析に使用できるディメンションモデルに変換します。 + +以下の図は、dbt を使用した Teradata Vantage の変換手順を示しています。 +[ditaa] +---- + /--------------\ JSON Transformation /------------------\ + | Raw JSON Data|----------------------->| Normalized Views | + \--------------/ \------------------/ + | + | Dimensional Modeling + v + /-------------\ + | Dimension | + | and | + | Fact Tables | + \-------------/ +---- + +すべての dbt プロジェクトと同様に、フォルダ `models` には、プロジェクトまたは個々のモデル レベルでの対応する構成に従って、プロジェクトがテーブルまたはビューとしてマテリアライズドするデータ モデルが含まれています。 + +モデルは、データ ウェアハウス/レイクの編成における目的に応じて、さまざまなフォルダに編成できます。一般的なフォルダ レイアウトには、 `staging` のフォルダ、 `core` のフォルダ、および `marts` のフォルダが含まれます。この構造は、dbt の動作に影響を与えることなく簡素化できます。 + +=== ステージングモデル +オリジナルの link:https://github.com/dbt-labs/jaffle_shop-dev[dbt Jaffle Shop チュートリア,window="_blank"] プロジェクトのデータは、dbt の `seed` コマンドを使用して `./data` フォルダにある csv ファイルからロードされます。 `seed` コマンドはテーブルからデータをロードするためによく使用されますが、このコマンドはデータ ローディングを実行するように設計されていません。 + +このデモでは、データ ローディング用に設計されたツール Airbyte を使用してデータウェアハウス/レイクにデータを読み込む、より一般的なセットアップを想定しています。 +ただし、Airbyte を通じてロードされたデータは生の JSON 文字列として表されます。これらの生データから、正規化されたステージング ビューを作成しています。このタスクは、以下のステージング モデルを通じて実行します。 + +* `stg_customers` モデルは、`_airbyte_raw_customers` テーブルから `customers` の正規化されたステージングビューを作成します。 +* `stg_orders` モデルは、`_airbyte_raw_orders` テーブルから `orders` の正規化されたステージングビューを作成します。 +* `stg_payments` モデルは、`_airbyte_raw_payments` テーブルから `payments` の正規化されたステージングビューを作成します。 + +[NOTE] +==== +JSON 文字列を抽出するメソッドはすべてのステージング モデルで一貫しているため、これらのモデルの 1 つだけを例として使用して、変換の詳細な説明を提供します。 +==== + +以下は、`stg_orders.sql` モデルを介して生の JSON データをビューに変換する例です。 +[source, sql] +---- +WITH source AS ( + SELECT * FROM {{ source('airbyte_jaffle_shop', '_airbyte_raw_orders')}} +), + +flattened_json_data AS ( + SELECT + _airbyte_data.JSONExtractValue('$.id') AS order_id, + _airbyte_data.JSONExtractValue('$.user_id') AS customer_id, + _airbyte_data.JSONExtractValue('$.order_date') AS order_date, + _airbyte_data.JSONExtractValue('$.status') AS status + FROM source +) + + +SELECT * FROM flattened_json_data +---- + +* このモデルでは、ソースは生のテーブル `_airbyte_raw_orders` として定義されます。 +* この生のテーブル列には、メタデータと実際に取り込まれたデータの両方が含まれています。データ列は `_airbyte_data` と呼ばれます。 +* この列は Teradata JSON 型です。この型は、JSON オブジェクトからスカラー値を取得するメソッド JSONExtractValue をサポートします。 +* このモデルでは、ビューをマテリアライズドするために、対象の各属性を取得し、意味のあるエイリアスを追加しています。 + +=== ディメンションモデル (マート) +ディメンションモデルの構築は、以下の 2 段階のプロセスです。 + +* 最初に、`stg_orders`、`stg_customers`、`stg_payments` の正規化されたビューを取得し、非正規化された中間結合テーブル `customer_orders`、`order_payments`、`customer_payments` を構築します。これらのテーブルの定義は `./models/marts/core/intermediate` にあります。 +* 2 番目のステップでは、 `dim_customers` と `fct_orders` モデルを作成します。これらは、BI ツールに公開するディメンション モデル テーブルを構成します。これらのテーブルの定義は `./models/marts/core` にあります。 + +=== 変換を実行する +dbt プロジェクトで定義された変換を実行するには、以下のコマンドを実行します。 + +[source, bash] +---- +dbt run +---- +以下に示すように、各モデルのステータスが取得されます。 + +image::elt/{dir}/dbt_run.png[dbt run output, width=75%] + +=== テストデータ +ディメンションモデル内のデータが正しいことを確認するために、dbt を使用すると、データに対するテストを定義して実行できます。 + +テストは `/models/marts/core/schema.yml` と `/models/staging/schema.yml` で定義されています。 各列には、`tests` キーの下で複数のテストを構成できます。 + +* 例えば、 `fct_orders.order_id` 列には固有な非 NULL 値が含まれることが予想されます。 + +生成されたテーブルのデータがテスト条件を満たしていることを検証するには、以下のコマンドを実行します。 + +[source, bash] +---- +dbt test +---- + +モデル内のデータがすべてのテスト ケースを満たしている場合、このコマンドの結果は以下のようになります。 + +image::elt/{dir}/dbt_test.png[dbt test output, width=75%] + +=== ドキュメントを生成する + +このモデルは、わずか数個のテーブルで構成されています。より多くのデータ ソースとより複雑なディメンションモデルを使用するシナリオでは、データ系統と各中間モデルの目的をドキュメント化することが非常に重要です。 + +dbt を使用してこの型のドキュメントを生成するのは非常に簡単です。 + +[source, bash] +---- +dbt docs generate +---- + +これにより、`./target`ディレクトリにhtmlファイルが生成されます。 + +独自のサーバーを起動してドキュメントを参照できます。以下のコマンドはサーバーを起動し、ドキュメントのランディング ページが表示されたブラウザ タブを開きます。 + +[source, bash] +---- +dbt docs serve +---- + +==== Lineage Graph + +image::elt/{dir}/dbt_docs_serve.png[dbt lineage graph, width=75%] + +== まとめ + +このチュートリアルでは、dbt を使用して、Airbyte 経由でロードされた生の JSON データを Teradata Vantage のディメンションモデルに変換する方法を説明しました。サンプル プロジェクトは、Teradata Vantage にロードされた生の JSON データを取得し、正規化されたビューを作成し、最終的にディメンションデータ マートを生成します。dbt を使用して JSON を正規化ビューに変換し、複数の dbt コマンドを使用してモデルの作成 (`dbt run`)、データのテスト (`dbt test`)、モデルドキュメントの生成と提供 (`dbt docs generate`, `dbt docs serve`) を行いました。 + + +== さらに詳しく +* link:https://docs.getdbt.com/docs/[dbt のドキュメント] +* link:https://github.com/Teradata/dbt-teradata[dbt-teradata プラグインのドキュメント] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/elt/use-airbyte-to-load-data-from-external-sources-to-teradata-vantage.adoc b/modules/ROOT/pages/ja/elt/use-airbyte-to-load-data-from-external-sources-to-teradata-vantage.adoc new file mode 100644 index 000000000..1f3fc81b6 --- /dev/null +++ b/modules/ROOT/pages/ja/elt/use-airbyte-to-load-data-from-external-sources-to-teradata-vantage.adoc @@ -0,0 +1,206 @@ += Airbyte を使用して外部ソースから Teradata Vantage にデータをロードする方法 +:page-lang: ja +:experimental: +:page-author: Krutik Pathak +:page-email: krutik.pathak@teradata.com +:page-revdate: 2023 年 6 月 9 日 +:description: Teradata Vantage で Airbyte を使用する方法 +:keywords: airbyte, data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, data transfer, data extraction, enterprise analytics, elt. +:tabs: +:dir: getting-started-with-airbyte + +== 概要 + +このチュートリアルでは、Airbyteを使用してソースからTeradata Vantageにデータを移動する方法を紹介し、 https://docs.airbyte.com/using-airbyte/getting-started/[Airbyte Open Source オプション] と https://airbyte.com/[Airbyte Cloud オプション] の両方について詳しく説明します。 この具体的な例では、Google スプレッドシートから Teradata Vantage へのレプリケーションを取り上げます。 + +* ソース: Google スプレッドシート +* 宛先: Teradata Vantage + +image::elt/{dir}/sample_employees_payrate_google_sheets.png[サンプル従業員の給与Google スプレッドシート,align="center", width=50%] + +== 前提条件 +* Teradata Vantageインスタンスへのアクセス。これは、Airbyte 接続の宛先として定義されます。Airbyteの設定には、データベースの `Host`、`Username`、`Password` が必要です。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] + +* link:https://support.google.com/googleapi/answer/6158841?hl=en[個人または組織のアカウントで Google Cloud Platform API が有効になっている, window="_blank"]。OAuth またはサービス アカウント キー認証システムを介して Google アカウントを認証する必要があります。この例では、サービス アカウント キー認証システムを使用します。 + +* ソース システムからのデータ。この場合は、link:https://docs.google.com/spreadsheets/d/1XNBYUw3p7xG6ptfwjChqZ-dNXbTuVwPi7ToQfYKgJIE/edit#gid=0[Google スプレッドシートのサンプルスプレッドシート, window="_blank"] を使用する。サンプルデータは、従業員型別の給与の内訳です。 + +=== Airbyte Cloud +* https://airbyte.com/[Airbyte Cloud] でアカウントを作成し、link:#airbyte_configuration[Airbyte Configuration] セクションの手順に進みます。 + +=== Airbyte Open Source +* link:https://github.com/airbytehq/airbyte[Airbyte Open Source, window="_blank"] をローカルで実行するには、Docker Compose をインストールします。Docker Compose には Docker Desktop が付属しています。詳細については 、link:https://docs.docker.com/compose/install/[docker ドキュメント, window="_blank"] を参照してください。 + +* Airbyte Open Source リポジトリのクローンを作成し、airbyte ディレクトリに移動します。 ++ +[source, bash] +---- +git clone --depth 1 https://github.com/airbytehq/airbyte.git +cd airbyte +---- + +シェルスクリプト`run-ab-platform`を実行する前に、Docker Desktopが実行されていることを確認します。 + +* シェルスクリプト `run-ab-platform` を次のように実行しますを実行します。 + ++ +[source, bash] +---- +./run-ab-platform.sh +---- + ++ +[NOTE] +==== +上記のコマンドは、Windowsの `git bash` で実行できます。詳細については 、link:https://docs.airbyte.com/deploying-airbyte/local-deployment/[Airbyte Local Deployment, window="_blank"] を参照してください。 +==== + +* リポジトリに含まれる `env` ファイルにあるデフォルトの信頼証明を入力して、Web アプリ http://localhost:8000/ にログインします。 + ++ +[source, bash] +---- +BASIC_AUTH_USERNAME=airbyte +BASIC_AUTH_PASSWORD=password +---- + + +初めてログインするとき、Airbyte は電子メール アドレスを入力し、製品の改善に関する設定を指定するように求めます。設定を入力し、「Get started.」をクリックします。 + +image::elt/{dir}/specify_preferences.png[環境設定の指定, width=75%] + +Airbyte Open Sourceが起動すると、接続ダッシュボードが表示されます。Airbyte Open Sourceを初めて起動した場合は、接続は表示されません。 + +== Airbyteの構成 + +=== ソース接続の設定 +* 「Create your first connection」をクリックするか、右上隅をクリックして、Airbyte の接続ダッシュボードで新しい接続ワークフローを開始できます。 + +image::elt/{dir}/create_first_connection.png[最初の接続を作成するダッシュボード, width=75%] + +* Airbyte はソースを尋ねます。既存のソースから選択することも (すでに設定している場合)、新しいソースを設定することもできます。この場合は `Google スプレッドシート` を選択します。 + +* 認証には、JSON形式のサービスアカウントキーを使用する `サービスアカウントキー認証` を使用している。デフォルトの `OAuth` から `サービスアカウントキー認証` に切り替えます。. サービス アカウント キー認証で Google アカウントを認証するには、 JSON 形式の link:https://cloud.google.com/iam/docs/keys-create-delete#creating_service_account_keys[Google Cloud サービス アカウント キー, window="_blank"] を入力してください。 ++ +サービス アカウントにプロジェクト閲覧者アクセス権があることを確認してください。スプレッドシートがリンクを使用して誰にでも表示できる場合は、それ以上の操作は必要ありません。そうでない場合は、 link:https://www.youtube.com/watch?v=GyomEw5a2NQ[サービス アカウントにスプレッドシートへのアクセスを認証してください。, window="_blank"] + +* ソーススプレッドシートへのリンクを `スプレッドシートのリンク` として追加します。 + +image::elt/{dir}/configuring_source_gsheet_airbyte.png[Airbyteでのソースの設定] + +[NOTE] +==== +詳細については、 link:https://docs.airbyte.com/integrations/sources/google-sheets/#:~:text=For%20Airbyte%20Open%20Source%3A[Airbyte オープン ソースのソース コネクタとして Google スプレッドシートを設定する, window="_blank"] + を参照してください。 +==== + +* [Set up source]をクリックし、設定が正しければ、次のメッセージが表示されます。 `All connection tests passed!` + + +=== 宛先接続の設定 +* `Teradata Vantage` を使用して新しい接続を作成する場合は、「Set up the destination」セクションで宛先型として `Teradata Vantage` を選択します。 +* `Host`、`User`、および `Password` を追加する。これらは、Clearscape Analytics Environmentで使用される `Host`、`Username`、`Password` とそれぞれ同じです。 +* 特定のコンテキストに適したデフォルトのスキーマ名を指定します。ここでは、`gsheet_airbyte_td` を提供しました。 + +[NOTE] +==== + `Default Schema` を指定しない場合は、 "Connector failed while creating schema"というエラーが表示されます。 `Default Schema` に適切な名前を指定していることを確認してください。 +==== + +image::elt/{dir}/configuring_destination_teradata_airbyte.png[Airbyteでの宛先Teradataの構成] + + +* 「Set up destination」をクリックします。構成が正しい場合は、メッセージが表示されます。 `All connection tests passed!` + + +=== データ同期の設定 +名前空間は、ソースまたは宛先内のストリーム (テーブル) のグループです。リレーショナル データベース システムのスキーマは、名前空間の一例です。ソースでは、名前空間はデータがレプリケート先にレプリケートされる格納場所です。宛先では、名前空間はレプリケートされたデータが宛先内に保存される格納場所です。 +詳細については 、link:https://docs.airbyte.com/understanding-airbyte/namespaces/[Airbyte 名前空間,window="_blank"] +を参照してください。 + +image::elt/{dir}/namespaces_in_destination.png[宛先の名前空間] + + +この例では、宛先はデータベースであるため、名前空間は、宛先を設定したときに定義したデフォルトのスキーマ`gsheet_airbyte_td`です。ストリーム名は、ソース内のスプレッドシートの名前をミラーリングするテーブルであり、この場合は`sample_employee_payrate`です。単一のスプレッドシート コネクタを使用しているため、1 つのストリーム (アクティブなスプレッドシート) のみがサポートされます。 + +他のタイプのソースと宛先では、レイアウトが異なる場合があります。この例では、ソースとしてのGoogle スプレッドシートは名前空間をサポートしていない。 +この例では、宛先の名前空間として``を使用しました。これは、宛先設定で宣言した`Default Schema`に基づいてAirbyteによって割り当てられたデフォルトの名前空間です。データベース`gsheet_airbyte_td`が、Teradata Vantageインスタンスに作成されます。 + + +==== レプリケーション頻度 +データを宛先に同期する頻度を示します。1時間ごと、2時間ごと、3時間ごとなどを選択できます。このケースの場合、24時間ごを使用しています。 + +image::elt/{dir}/replication_frequency_24hr.png[レプリケーション頻度 24 時間] + +Cron 式を使用して、同期を実行する時刻を指定することもできます。以下の例では、毎週水曜日の午後 12 時 43 分 (US/太平洋時間) に同期を実行するように Cron 式を設定します。 + +image::elt/{dir}/replication_frequency_cron_expression.png[Replication Frequency Cron Expression] + +=== データ同期の妥当性検査 + +Airbyte は、`Status` タブの [Sync History] セクションで同期の試行を追跡します。 + +image::elt/{dir}/data_sync_summary.png[データ同期のまとめ] + +次に、 link:https://clearscape.teradata.com/dashboard[ClearScape Analytics Experience,window="_blank"] に移動しで Jupyter Notebookを実行します。ClearScape Analytics Experience のNotebookは Teradata SQL クエリーを実行するように構成されており、データベース `gsheet_airbyte_td`、ストリーム (テーブル)、および完全なデータが存在するかどうかを検証します。 + +image::elt/{dir}/data_sync_validation_in_teradata.png[Teradata でのデータ同期の妥当性検査] + +[source, bash] +---- +%connect local +---- + +[source, bash, id="airbyte_select_query", role="emits-gtm-events"] +---- +SELECT DatabaseName, TableName, CreateTimeStamp, LastAlterTimeStamp +FROM DBC.TablesV +WHERE DatabaseName = 'gsheet_airbyte_td' +ORDER BY TableName; +---- + +[source, bash] +---- +DATABASE gsheet_airbyte_td; +---- + +[source, bash] +---- +SELECT * FROM _airbyte_raw_sample_employee_payrate; +---- + +この接続では正規化と変換がサポートされておらず、 link:https://docs.airbyte.com/understanding-airbyte/namespaces/#:~:text=If%20you%20don%27t%20enable%20basic%20normalization%2C%20you%20will%20only%20receive%20the%20raw%20tables.[生のテーブル, window="_blank"] しかないため、宛先のストリーム (テーブル) 名には `\_airbyte_raw_` という接頭辞が付いています。各ストリーム (テーブル) には 3 つの列が含まれます。 + +1. `_airbyte_ab_id`: Airbyte によって処理される各イベントに割り当てられる uuid。Teradata の列型は `VARCHAR(256)` です。 + +2. `_airbyte_emitted_at`: イベントがデータ ソースからいつ取得されたかを表すタイムスタンプ。Teradata の列型は `TIMESTAMP(6)` です。 + +3. `_airbyte_data`: イベント データを表す json blob。Teradata の列型は `JSON` です。 + +`_airbyte_data`カラムには、ソースのGoogle スプレッドシートと同じ9行が表示され、データはJSON形式で、必要に応じてさらに変換できる。 + +=== 接続を閉じて削除する + +* 接続を無効にすることで、Airbyte での接続を閉じることができます。これにより、データ同期プロセスが停止します。 + +image::elt/{dir}/close_airbyte_connection.png[Airbyte接続を閉じる] + +* 接続を削除することもできます。 + +image::elt/{dir}/delete_airbyte_connection.png[Airbyte接続の削除] + + +=== まとめ +このチュートリアルでは、Google シートなどのソース システムからデータを抽出し、Airbyte ELT ツールを使用してデータを Teradata Vantage インスタンスにロードする方法を説明しました。エンドツーエンドのデータフローと、Airbyte Open Source をローカルで実行し、ソース接続と宛先接続を構成するための完全な構成手順を確認しました。また、レプリケーション頻度に基づいて利用可能なデータ同期構成についても説明しました。Cloudscape Analytics Experience を使用して宛先での結果を検証し、最終的に Airbyte 接続を一時停止および削除するメソッドを確認しました。 + +=== さらに詳しく +link:https://docs.airbyte.com/integrations/destinations/teradata/?_ga=2.156631291.1502936448.1684794236-1752661382.1684794236[Teradata 宛先 | Airbyte ドキュメント,window="_blank"] + +link:https://docs.airbyte.com/cloud/core-concepts/#connection-sync-modes[コアコンセプト | Airbyte ドキュメント,window="_blank"] + +link:https://airbyte.com/community[Airbyte コミュニティ のSlack,window="_blank"] + +link:https://discuss.airbyte.io/[Airbyte コミュニティ,window="_blank"] + diff --git a/modules/ROOT/pages/ja/general/advanced-dbt.adoc b/modules/ROOT/pages/ja/general/advanced-dbt.adoc new file mode 100644 index 000000000..a7a23f4a7 --- /dev/null +++ b/modules/ROOT/pages/ja/general/advanced-dbt.adoc @@ -0,0 +1,284 @@ += Teradata Vantage を使用した高度な dbt のユースケース +:page-lang: ja +:experimental: +:page-author: Daniel Herrera +:page-email: daniel.herrera2@teradata.com +:page-revdate: 2023 年 5 月 22 日 +:description: Teradata Vantage を使用した高度な dbt (データ構築ツール) のユースケース。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, elt, dbt. +:tabs: + +== 概要 + +このプロジェクトでは、上級ユーザーの観点から dbt と Teradata Vantage の統合を紹介します。 +dbt を使用したデータ エンジニアリングが初めての場合は、link:https://quickstarts.teradata.com/dbt.html[導入プロジェクト, window="_blank window="_blank"] + から始めることをお勧めします。 +デモで紹介されている高度なユースケースは以下のとおりです。 + +* 増分マテリアライズド +* ユーティリティ マクロ +* Teradata 固有の修飾子を使用したテーブル/ビューの作成の最適化 + +これらの概念の適用は、架空の店舗である `teddy_retailers` のELTプロセスを通じて説明されています。 + +== 前提条件 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Python *3.7*、*3.8*、*3.9*、または *3.10* がインストールされていること。 + +* データベース コマンドを実行するためのデータベース クライアント。 このようなクライアントの構成例は、link:https://quickstarts.teradata.com/other-integrations/configure-a-teradata-vantage-connection-in-dbeaver.html[チュートリアル, window="_blank"] に示されています。 + +== デモプロジェクトの設定 + +1. チュートリアル リポジトリのクローンを作成し、プロジェクト ディレクトリに移動します。 ++ +[source, bash] +---- +git clone https://github.com/Teradata/teddy_retailers_dbt-dev teddy_retailers +cd teddy_retailers +---- +2. dbt とその依存関係を管理するための新しい Python 環境を作成します。環境の作成に使用しているPythonのバージョンが、上記のサポートされているバージョン内にあることを確認します。 ++ +[source, bash] +---- +python -m venv env +---- + +3. オペレーティング システムに応じて Python 環境を有効化します。 ++ +[source, bash] +---- +source env/bin/activate +---- +Mac、Linux、または ++ +[source, bash] +---- +env\Scripts\activate +---- +Windows +4. `dbt-teradata`モジュールをインストールします。dbtのコアモジュールも依存関係のあるモジュールとして含まれているので、別にインストールする必要はありません。 ++ +[source, bash] +---- +pip install dbt-teradata +---- + +5. プロジェクトの依存関係`dbt-utils`と`teradata-utils`をインストールします。これは以下のコマンドで実行できます。 ++ +[source, bash] +---- +dbt deps +---- + +== データ ウェアハウスを設定する + +デモ プロジェクトでは、ソース データがデータ ウェアハウスにすでに読み込まれていることを前提としています。これは、実働環境での dbt の使用方法を模倣しています。 +この目的を達成するために、Google Cload Platform(GCP)で利用可能な公開データセットと、それらのデータセットをモックデータウェアハウスにロードするためのスクリプトを提供します。+ + +1. 作業用データベースを作成または選択します。dbt プロファイルは、 `teddy_retailers`というデータベースを指します。Teradata Vantage インスタンス内の既存のデータベースを指すように `schema` 値を変更することも、データベース クライアントで以下のスクリプトを実行して `teddy_retailers` データベースを作成することもできます。 ++ +[source, teradata-sql] +---- +CREATE DATABASE teddy_retailers +AS PERMANENT = 110e6, + SPOOL = 220e6; +---- +2. 初期データセットをロードします。 +初期データセットをデータウェアハウスにロードするために、必要なスクリプトがプロジェクトの`references/inserts/create_data.sql`パスで使用できます。 +これらのスクリプトは、データベース クライアントにコピー アンド ペーストすることで実行できます。特定のケースでこれらのスクリプトを実行するためのガイダンスについては、データベース クライアントのドキュメントを参照してください。 + +== dbtを構成する + +ここで、dbtを設定してVantageデータベースに接続します。 +以下の内容のファイル `$HOME/.dbt/profiles.yml` を作成します。Teradata Vantageに一致するように``、`` 、`` を調整します。 +ご使用の環境ですでに dbt を使用したことがある場合は、ホームのディレクトリ `dbt/profiles.yml` ファイルにプロジェクトのプロファイルを追加するだけで済みます。 +ディレクトリ.dbtがまだシステムに存在しない場合は、それを作成し、dbtプロファイルを管理するためにprofiles.ymlを追加する必要があります。 + +[source, yaml, id="dbt_first_config", role="emits-gtm-events"] +---- +teddy_retailers: + outputs: + dev: + type: teradata + host: + user: + password: + logmech: TD2 + schema: teddy_retailers + tmode: ANSI + threads: 1 + timeout_seconds: 300 + priority: interactive + retries: 1 + target: dev +---- + +プロファイルファイルが用意できたので、設定を検証できます。 + +[source, bash] +---- +dbt debug +---- + +デバッグ コマンドがエラーを返した場合は、 `profiles.yml` の内容に問題がある可能性があります。 + +== Teddy Retailers のウェアハウスについて + +前述のように、`teddy_retailers` は架空の店舗です。 +dbt 主導の変換を通じて、「teddy_retailers」 トランザクション データベースから取り込まれたソース データを、分析に使用できるスター スキーマに変換します。 + +=== データ モデル + +ソース データは、以下のエンティティリレーションシップ図に従って、customers、orders、products、order_products のテーブルで構成されます。 + +[erd, format=svg, width=100%] +.... +# Entities + +[customers] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + `name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `surname ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `email ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +[orders] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} +*`id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} +`customer_id `{bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`order_date `{bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`status ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +order_products] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} +`order_id `{bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`product_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`quantity ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + +2[products] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} +*`id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} +`name `{bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`category `{bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`unit_price `{bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +# Relationships + +customers 1--* orders +orders 1--* order_products +products 1--* order_products +.... + +dbt を使用して、ソース データ テーブルを利用して、分析ツール用に最適化された以下のディメンションモデルを構築します。 + +[erd, format=svg, width=100%] +.... +# Entities + +[dim_customers] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} +* `customer_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`first_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`last_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`email ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +[dim_orders] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} +* `order_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`order_date ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`order_status ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +dim_products] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} +* `product_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`product_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`product_category ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`price_dollars ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +[fct_order_details] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} +`order_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`product_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`customer_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`order_date ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`unit_price ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} +`quantity ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} +`amount ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +# Relationships +`dim_customers` 1--* `fct_order_details` +`dim_orders` 1--* `fct_order_details` +`dim_products` 1--* `fct_order_details` +.... + +=== ソース + +* Teddy Retailersの場合、`orders` と `order_products` のソースは、組織のELT(抽出、ロード、変換)プロセスによって定期的に更新される。 +* 更新されたデータには、データセット全体ではなく、最新の変更のみが含まれる。これは、データセットが大量であるためです。 +* この課題に対処するには、以前に利用可能なデータを保持しながら、これらの増分更新をキャプチャする必要があります。 + +== dbtモデル + +プロジェクトの models ディレクトリ内の`schema.yml`ファイルは、モデルのソースを指定します。これらのソースは、SQL スクリプトを使用して GCP からロードしたデータと一致しています。 + +=== ステージング エリア + +ステージングエリアモデルは、各ソースからデータを取り込み、必要に応じて各フィールドの名前を変更するだけです。 +このディレクトリの schema.yml では、主キーの基本的な保全性チェックを定義します。 + +=== コア エリア + +この段階では、以下の高度な dbt 概念がモデルに適用されます。 + +==== 増分マテリアライズド + +このディレクトリ内の `schema.yml` ファイルは、構築している 2 つのモデルのマテリアライズドが増分であることを指定します。 +これらのモデルに対して異なる戦略を採用している。 + +* `all_orders model` には、削除+挿入方式を使用する。この戦略が実装されるのは、データ更新に含まれる注文のステータスに変更がある可能性があるためです。 +* `all_order_products`モデルでは、デフォルトの追加戦略を採用します。このアプローチが選択されたのは、`order_id` と `product_id` の同じ組み合わせがソースに複数回出現する可能性があるためです。 +これは、同じ製品の新しい数量が特定の注文に追加または削除されたことを示します。 + +==== マクロ支援アサーション + + `all_order_products` モデル内には、結果のモデルが `order_id` と `product_id`の固有な組み合わせを包含することをテストして保証するためのマクロを利用したアサーションが組み込まれています。この組み合わせは、注文ごとの特定の種類の製品の最新の数量を示します。 + +==== Teradata修飾子 + + `all_order` モデルと `all_order_products` モデルの両方について、これら 2 つのコア モデルの追跡を強化するために Teradata 修飾子を組み込みました。 +統計の収集を容易にするために、データベース コネクタにそれに応じて指示する `post_hook` を追加しました。さらに、`all_orders`テーブル内の`order_id`カラムにインデックスを作成しました。 + +== 変換を実行する + +=== ベースライン データを使用してディメンションモデルを作成する + +dbt を実行することで、ベースライン データを使用してディメンションモデルを生成します。 + +[source, bash] +---- +dbt run +---- + +これにより、ベースラインデータを使用して、コアモデルと次元モデルの両方が作成されます。 + +=== データをテストする + +以下を実行することで、定義したテストを実行できます。 + +[source, bash] +---- +dbt test +---- + +=== サンプルクエリーを実行する + +サンプルのビジネス インテリジェンス クエリーは、プロジェクトの `references/query` パスにあります。これらのクエリーを使用すると、顧客、注文、製品などのディメンションに基づいて事実のデータを分析できます。 + +=== ELTプロセスをモック化する + +更新をソースデータセットにロードするためのスクリプトは、プロジェクトの `references/inserts/update_data.sql` パスにあります。 + +データ ソースを更新した後、前述の手順 (dbt の実行、データのテスト、サンプル クエリーの実行) に進むことができます。これにより、データの変動と増分更新を視覚化できるようになります。 + +== まとめ + +このチュートリアルでは、Teradata Vantage を使用した高度な dbt コンセプトの利用方法を検討しました。 +サンプル プロジェクトでは、ソース データの次元データ マートへの変換を紹介しました。 +プロジェクト全体を通じて、増分マテリアライゼーション、ユーティリティ マクロ、Teradata修飾子など、いくつかの高度な dbt コンセプトを実装しました。 + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/airflow.adoc b/modules/ROOT/pages/ja/general/airflow.adoc new file mode 100644 index 000000000..ba820e759 --- /dev/null +++ b/modules/ROOT/pages/ja/general/airflow.adoc @@ -0,0 +1,136 @@ += Teradata Vantage で Apache Airflow を使用する +:page-lang: ja +:experimental: +:page-author: Satish Chinthanippu +:page-email: satish.chinthanippu@teradata.com +:page-revdate: 2024 年 2 月 06 日 +:description: Teradata Vantage で Apache Airflow を使用します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, elt, airflow, workflow. +:tabs: +:dir: airflow + +== 概要 + +このチュートリアルでは、Teradata Vantage でエアフローを使用する方法を説明します。Airflow は Ubuntu システムにインストールされます。 + +== 前提条件 + +* Ubuntu22.x +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Python *3.8*、*3.9*、*3.10*、または *3.11* がインストールされていること。 + +== Apache Airflowをインストールする + +1. AIRFLOW_HOME環境変数を設定します。Airflowにはホームディレクトリが必要で、デフォルトで~/airflowを使用するが、必要に応じて別の場所を設定することもできます。AIRFLOW_HOME環境変数は、Airflowに目的の場所を通知するために使用されます。 ++ +[source, bash] +---- +export AIRFLOW_HOME=~/airflow +---- +2. PyPIリポジトリから `apache-airflow` の安定版バージョン2. 8.1をインストールします。 ++ +[source, bash] +---- +AIRFLOW_VERSION=2.8.1 +PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)" +CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt" +pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}" +---- +3. Airflow Teradataプロバイダの安定バージョン1.0.0をPyPIリポジトリからインストールします。 ++ +[source, bash] +---- +pip install "apache-airflow-providers-teradata==1.0.0" +---- + +== Airflow をスタンドアロンで開始する + +1. Airflow をスタンドアロンで実行します。 ++ +[source, bash] +---- +airflow standalone +---- +2. Airflow UIにアクセスします。ブラウザで https://localhost:8080 にアクセスし、ターミナルに表示されている管理者アカウントの詳細でログインします。 + +== Airflow UIでTeradata接続を定義する + +1. UIの[Admin]->[Connections]セクションを開きます。[Create]リンクをクリックして、新しい接続を作成します。 ++ +image::{dir}/airflow-connection.png[Airflow管理ドロップダウン, width=75%] +2. 新しい接続ページに入力の詳細を入力します。 ++ +image::{dir}/airflow-newconnection.png[Airflowの新しい接続, width=75%] +* 接続ID: Teradata接続の一意のID。 +* 接続タイプ: システムのタイプ。Teradataを選択します。 +* データベースサーバーのURL(必須): 接続するTeradataインスタンスのホスト名。 +* データベース(オプション): 接続するデータベースの名前を指定します。 +* ログイン(必須): 接続するユーザー名を指定します。 +* パスワード(必須): 接続するためのパスワードを指定します。 +* 「Test and Save」をクリックします。 + +== AirflowでDAGを定義する + +1. irflow では、DAG は Python コードとして定義されます。 +2. DAG_FOLDER - $AIRFLOW_HOME/files/dags ディレクトリの下に、sample.py のような Python ファイルとして DAG を作成します。 ++ +[source, python] +---- +from datetime import datetime +from airflow import DAG +from airflow.providers.teradata.operators.teradata import TeradataOperator +CONN_ID = "Teradata_TestConn" +with DAG( + dag_id="example_teradata_operator", + max_active_runs=1, + max_active_tasks=3, + catchup=False, + start_date=datetime(2023, 1, 1), +) as dag: + create = TeradataOperator( + task_id="table_create", + conn_id=CONN_ID, + sql=""" + CREATE TABLE my_users, + FALLBACK ( + user_id decimal(10,0) NOT NULL GENERATED ALWAYS AS IDENTITY ( + START WITH 1 + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + NO CYCLE), + user_name VARCHAR(30) + ) PRIMARY INDEX (user_id); + """, + ) +---- + +== DAGをロードする + +Airflowは、PythonソースファイルからDAGをロードし、設定されたDAG_FOLDER-$AIRFLOW_HOME/files/DAGsディレクトリ内で検索されます。 + +== DAGを実行する +DAG は次の 2 つの方法のいずれかで実行されます。 +1. 手動または API 経由でトリガーされた場合 +2. DAG の一部として定義されている定義されたスケジュールで、 +`example_teradata_operator` が手動でトリガーされるように定義されています。スケジュールを定義するには、link:https://en.wikipedia.org/wiki/Cron[Crontab, window="_blank"] スケジュール値をスケジュール引数に渡すことができます。 +[source, python] +---- +with DAG( + dag_id="my_daily_dag", + schedule="0 0 * * *" + ) as dag: +---- + +== まとめ + +このチュートリアルでは、Airflow と Airflow Teradata プロバイダーを Teradata Vantage インスタンスで使用する方法を説明しました。提供されているサンプルDAGは、Connection UIで定義されたTeradata Vantageインスタンスに `my_users` テーブルを作成します。 + +== さらに詳しく +* link:https://airflow.apache.org/docs/apache-airflow/stable/start.html[Airflow のドキュメンテーション] +* link:https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html[Airflow DAG] + + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/general/create-parquet-files-in-object-storage.adoc b/modules/ROOT/pages/ja/general/create-parquet-files-in-object-storage.adoc new file mode 100644 index 000000000..eb93ab803 --- /dev/null +++ b/modules/ROOT/pages/ja/general/create-parquet-files-in-object-storage.adoc @@ -0,0 +1,145 @@ += VantageからのオブジェクトストアへのParquetファイルの作成 +:page-lang: ja +:experimental: +:page-author: Obed Vega +:page-email: obed.vega@teradata.com +:page-revdate: 2022 年 8 月 2 日 +:description: Teradata Vantage Native Object Storage - オブジェクト ストレージへの読み取りと書き込み、Vantage およびオブジェクト ストレージ用の統合 SQL インターフェース。 +:keywords: data warehouses, compute storage separation, Teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, parquet, create parquet files + +== 概要 +Native Object Storage (NOS) はCSV、JSON、Parquet形式のデータセットなどのファイルに保存されているデータを照会するためのVantage 機能です。 +これらはAWS S3、Google GCS、Azure BlobやオンプレミスのS3互換のオブジェクト ストレージをサポートしています。 +この機能はVantageにデータを取り込むためのデータパイプラインを構築せずにデータを探索したい場合に役立ちます。このチュートリアルでは逆にVantageからオブジェクト ストレージにParquetファイル形式でデータをエクスポートする方法について説明します。 + +== 前提条件 + +Teradata Vantageインスタンスへのアクセス。NOSはVantage ExpressやDeveloperといった無償の製品でも、またDIYでもVantage as a ServiceでもすべてのVantageエディションでバージョン17.10以降で有効になっています。 + +IMPORTANT: このチュートリアルは、s3 awsオブジェクト ストレージをベースにしています。チュートリアルを完了するには、書き込み権限を持つあなた自身のs3バケットが必要です。 + +include::../partials/vantage_clearscape_analytics.adoc[] + +== WRITE_NOS関数でParquetファイルを作成する + +`WRITE_NOS` を使用するとデータベーステーブルまたはクエリーの結果を選択したまたはすべてのカラムを使用してAmazon S3, Azure Blob storage, Azure Data Lake Storage Gen2, Google Cloud Storageなどの外部オブジェクト ストレージに書き込むことができます。この機能ではデータをParquet形式で保存します。 + +`WRITE_NOS` 機能については、 https://docs.teradata.com/r/Teradata-VantageTM-Native-Object-Store-Getting-Started-Guide/June-2022/Writing-Data-to-External-Object-Store[NOS ドキュメント] に詳細なドキュメントが掲載されていますので参考にしてください。 + +`WRITE_NOS` 関数を実行できるデータベースへのアクセス権が必要です。そのようなデータベースがない場合は、以下のSQLでVantageユーザーを作成します。 +[source, teradata-sql, id="parquet_create_user", role="emits-gtm-events"] +---- +CREATE USER db AS PERM=10e7, PASSWORD=db; + +-- Don't forget to give the proper access rights +GRANT EXECUTE FUNCTION on TD_SYSFNLIB.READ_NOS to db; +GRANT EXECUTE FUNCTION on TD_SYSFNLIB.WRITE_NOS to db; +---- + +NOTE: ユーザーとその権限の設定についてもっと詳しく知りたい場合は、 https://docs.teradata.com/r/Teradata-VantageTM-Native-Object-Store-Getting-Started-Guide/June-2022/Setting-Up-Access/Setting-Access-Privileges[NOS ドキュメント] を参照してください。 + +1. まず、Teradata Vantageインスタンスにテーブルを作成します。 ++ +[source, teradata-sql] +---- +CREATE SET TABLE db.parquet_table ,FALLBACK , + NO BEFORE JOURNAL, + NO AFTER JOURNAL, + CHECKSUM = DEFAULT, + DEFAULT MERGEBLOCKRATIO, + MAP = TD_MAP1 + ( + column1 SMALLINT NOT NULL, + column2 DATE FORMAT 'YY/MM/DD' NOT NULL, + column3 DECIMAL(10,2)) +PRIMARY INDEX ( column1 ); +---- + +2. テーブルにサンプルデータを入力します。 ++ +[source, teradata-sql] +---- +INSERT INTO db.parquet_table (1,'2022/01/01',1.1); +INSERT INTO db.parquet_table (2,'2022/01/02',2.2); +INSERT INTO db.parquet_table (3,'2022/01/03',3.3); +---- ++ +テーブルは以下のようになります。 ++ +---- +column1 column2 column3 +------- -------- ------------ + 1 22/01/01 1.10 + 2 22/01/02 2.20 + 3 22/01/03 3.30 +---- + +3. `WRITE_NOS` を使用してParquetファイルを作成します。`` をs3バケットの名前に置き換えることを忘れないでください。また、`` と `` をアクセス キーとシークレットに置き換えます。 ++ +NOTE: オブジェクト ストレージにアクセスするための信頼証明を作成する方法については、クラウド プロバイダのドキュメントを確認してください。例えば、AWS の場合は 、 https://aws.amazon.com/premiumsupport/knowledge-center/create-access-key/[How do I create an AWS access key? (AWS アクセス キーを作成するにはどうすればよいですか?)」] を確認してください。 ++ +[source, teradata-sql] +---- +SELECT * FROM WRITE_NOS ( +ON ( SELECT * FROM db.parquet_table) +USING +LOCATION('/s3/.s3.amazonaws.com/parquet_file_on_NOS.parquet') +AUTHORIZATION('{"ACCESS_ID":"", +"ACCESS_KEY":""}') +STOREDAS('PARQUET') +MAXOBJECTSIZE('16MB') +COMPRESSION('SNAPPY') +INCLUDE_ORDERING('TRUE') +INCLUDE_HASHBY('TRUE') +) as d; +---- ++ +これで、オブジェクト ストレージ バケットにparquetファイルが作成されました。ファイルを簡単にクエリーするには、ステップ 4 に従う必要があります。 + +4. NOSでサポートされる外部テーブルを作成します。`` をs3バケットの名前に置き換えることを忘れないでください。また、 `` と `` をアクセス キーとシークレットに置き換えます。 ++ +[source, teradata-sql] +---- +CREATE MULTISET FOREIGN TABLE db.parquet_table_to_read_file_on_NOS +, EXTERNAL SECURITY DEFINER TRUSTED CEPH_AUTH, +MAP = TD_MAP1 +( + Location VARCHAR(2048) CHARACTER SET UNICODE CASESPECIFIC + , col1 SMALLINT + , col2 DATE + , col3 DECIMAL(10,2) + +) +USING ( + LOCATION ('/s3/.s3.amazonaws.com/parquet_file_on_NOS.parquet') + AUTHORIZATION('{"ACCESS_ID":"", + "ACCESS_KEY":""}') + STOREDAS ('PARQUET') +)NO PRIMARY INDEX; +---- + +5. これで、NOS 上のparquetファイルをクエリーする準備ができました。以下のクエリーを試してみましょう。 ++ +[source, teradata-sql] +---- +SELECT col1, col2, col3 FROM db.parquet_table_to_read_file_on_NOS; +---- ++ +クエリーから返されるデータは以下のようになります。 ++ +---- + col1 col2 col3 +------ -------- ------------ + 1 22/01/01 1.10 + 2 22/01/02 2.20 + 3 22/01/03 3.30 +---- + +== まとめ + +このチュートリアルでは、Native Object Storage (NOS) を使用して、Vantage からオブジェクト ストレージ上の parquet ファイルにデータをエクスポートする方法を学習しました。NOS は、CSV、JSON、および Parquet 形式で保存されたデータの読み取りとインポートをサポートしています。NOS は、Vantage からオブジェクト ストレージにデータをエクスポートすることもできます。 + +== さらに詳しく +* link:https://docs.teradata.com/r/Teradata-VantageTM-Native-Object-Store-Getting-Started-Guide/June-2022/Writing-Data-to-External-Object-Store[Teradata Vantage™ - Writing Data to External Object Store] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/dbt.adoc b/modules/ROOT/pages/ja/general/dbt.adoc new file mode 100644 index 000000000..0dc98a427 --- /dev/null +++ b/modules/ROOT/pages/ja/general/dbt.adoc @@ -0,0 +1,233 @@ += Teradata VantageでData Build Tool(dbt)を使用する +:page-lang: ja +:experimental: +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2023 年 7 月 12 日 +:description: Teradata Vantage では dbt (データ構築ツール) を使用します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, elt, dbt. +:tabs: + +== 概要 + +このチュートリアルでは、Teradata Vantage で dbt (データ構築ツール) を使用する方法を説明します。これは、オリジナルの link:https://github.com/dbt-labs/jaffle_shop-dev[dbt Jaffle Shop チュートリアル] に基づいています。いくつかのモデルは、Vantage がサポートする SQL Dialectに合わせて調整されています。 + +== 前提条件 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Python *3.7*、*3.8*、*3.9*、*3.10*、または *3.11* がインストールされていること。 + +== dbtをインストールする + +1. チュートリアル リポジトリのクローンを作成し、プロジェクト ディレクトリに移動します。 ++ +[source, bash] +---- +git clone https://github.com/Teradata/jaffle_shop-dev.git jaffle_shop +cd jaffle_shop +---- +2. dbt とその依存関係を管理するための新しい Python 環境を作成します。環境を有効化します。 ++ +[tabs] +==== +Windows:: ++ +-- +[source, bash] +---- +python -m venv env +source env/Scripts/activate +---- +-- +MacOS:: ++ +-- +[source, bash] +---- +python3 -m venv env +source env/bin/activate +---- +-- +Linux:: ++ +-- +[source, bash] +---- +python3 -m venv env +source env/bin/activate +---- +-- +==== + +3. `dbt-teradata` モジュールとその依存関係をインストールします。dbtのコアモジュールも依存関係のあるモジュールとして含まれているので、別にインストールする必要はありません。 ++ +[source, bash] +---- +pip install dbt-teradata +---- + +== dbtを構成する + +ここで、dbtを設定してVantageデータベースに接続します。以下の内容のファイル `$HOME/.dbt/profiles.yml` を作成します。Teradata インスタンスに一致するように``、`` 、`` を調整します。 + +[NOTE] +.データベースを設定する +==== +以下の dbt プロファイルは、 `jaffle_shop`というデータベースを指します。データベースがTeradata Vantageインスタンスに存在しない場合は、作成されます。インスタンス内の既存のデータベースを指すように `schema` 値を変更することもできます。 +==== + +[source, yaml, id="dbt_first_config", role="emits-gtm-events"] +---- +jaffle_shop: + outputs: + dev: + type: teradata + host: + user: + password: + logmech: TD2 + schema: jaffle_shop + tmode: ANSI + threads: 1 + timeout_seconds: 300 + priority: interactive + retries: 1 + target: dev +---- + +プロファイル ファイルが適切に配置されたので、セットアップを検証できます。 + +[source, bash] +---- +dbt debug +---- + +デバッグ コマンドがエラーを返した場合は、 `profiles.yml`の内容に問題がある可能性があります。 + +== Jaffle Shopウェアハウスについて + +`jaffle_shop` 架空のEコマースストアです。この dbt プロジェクトは、アプリ データベースの生データを、分析可能な顧客データと注文データを含むディメンションモデルに変換します。 + +アプリからの生データは、顧客、注文、支払いで構成され、以下のエンティティリレーションシップ図が示されます。 + +[erd, format=svg, width=100%] +.... +# Entities + +[customers] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + `first_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `last_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `email ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +[orders] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + +`user_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `order_date ` {bgcolor: "#fcece8", color: "#868686", label: "date", border: "1", border-color: "#ffffff"} + `status ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + +[payments] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + +`order_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `payment_method ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + +# Relationships + +customers 1--* orders +orders 1--* payments +.... + +dbt は、これらの生データ テーブルを取得して、分析ツールにより適した以下のディメンションモデルを構築します。 +[erd, format=svg, width=100%] +.... +# Entities + +[`dimension: customers`] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`customer_id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + `first_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `last_name ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `email ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `first_order ` {bgcolor: "#fcece8", color: "#868686", label: "date", border: "1", border-color: "#ffffff"} + `most_recent_order ` {bgcolor: "#fcece8", color: "#868686", label: "date", border: "1", border-color: "#ffffff"} + `number_of_orders ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `total_order_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + +[`fact: orders`] {bgcolor: "#f37843", color: "#ffffff", border: "0", border-color: "#ffffff"} + *`order_id ` {bgcolor: "#f9d6cd", color: "#000000", label: "int", border: "1", border-color: "#ffffff"} + +`customer_id ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `order_date ` {bgcolor: "#fcece8", color: "#868686", label: "date", border: "1", border-color: "#ffffff"} + `status ` {bgcolor: "#fcece8", color: "#868686", label: "varchar", border: "1", border-color: "#ffffff"} + `amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `credit_card_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `coupon_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `bank_transfer_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + `gift_card_amount ` {bgcolor: "#fcece8", color: "#868686", label: "int", border: "1", border-color: "#ffffff"} + +# Relationships +`dimension: customers` 1--* `fact: orders` +.... + +== dbtを実行する + +=== 生データテーブルを作成する + +実際には、Segment、Stitch、Fivetran、または別の ETL ツールなどのプラットフォームから生データを取得することになります。この例では、dbtの `seed` 機能を使用して、csvファイルからテーブルを作成します。csvファイルは、`./data` ディレクトリにあります。各 csv ファイルによって 1 つのテーブルが作成されます。 dbt はファイルを検査し、型推論を行って列に使用するデータ型を決定します。 + +生データ テーブルを作成しましょう。 +[source, bash] +---- +dbt seed +---- + +これで、`jaffle_shop`データベースに`raw_customers`、`raw_orders`、`raw_payments`の3つのテーブルが表示されるはずです。テーブルには、csvファイルからのデータを入力する必要があります。 + +=== ディメンションモデルを作成する + +生のテーブルができたので、dbt にディメンション モデルを作成するように指示できます。 +[source, bash] +---- +dbt run +---- + +では、ここで何があったのか? dbtは `CREATE TABLE/VIEW FROM SELECT` SQLを使用して追加のテーブルを作成した。最初の変換では、dbtは生のテーブルを取得し、`customer_orders`、`order_payments`、`customer_payments` と呼ばれる非正規化結合テーブルを構築しました。これらのテーブルの定義は `./marts/core/intermediate` に記載されています。 +2番目のステップでは、dbtは `dim_customers` と `fct_orders` のテーブルを作成しました。これらは、BI ツールに公開するディメンション モデル テーブルです。 + +=== データをテストする + +dbt はデータに複数の変換を適用しました。ディメンションモデル内のデータが正しいことを確認するにはどうすればよいでしょうか? dbt を使用すると、データに対するテストを定義して実行できます。テストは `/marts/core/schema.yml` で定義されています。このファイルには、すべてのリレーションシップの各列が記述されています。各列には、`tests` キーの下に複数のテストを構成できます。例えば、 `fct_orders.order_id` 列には固有な非 NULL 値が含まれることが予想されます。生成されたテーブルのデータがテスト条件を満たしていることを検証するには、以下のコマンドを実行します。 + +[source, bash] +---- +dbt test +---- + +=== ドキュメントを生成する + +このモデルは、わずか数個のテーブルで構成されています。さらに多くのデータ ソースと、より複雑なディメンションモデルがあるシナリオを想像してください。また、生データと Data Vault 2.0 の原則に従ったディメンションモデルの間に中間ゾーンを設けることもできます。入力、変換、出力を何らかの方法でドキュメント化できたら便利ではないでしょうか? dbt を使用すると、構成ファイルからドキュメントを生成できます。 + +[source, bash] +---- +dbt docs generate +---- + +これにより、`./target` ディレクトリにhtmlファイルが生成されます。 + +独自のサーバーを起動してドキュメントを参照できます。以下のコマンドはサーバーを起動し、ドキュメントのランディング ページが表示されたブラウザ タブを開きます。 + +[source, bash] +---- +dbt docs serve +---- + +== まとめ + +このチュートリアルでは、Teradata Vantage で dbt を使用する方法を説明しました。サンプルプロジェクトでは、生データを受け取り、ディメンションデータマートを作成します。複数の dbt コマンドを使用して、csv ファイルからテーブルにデータを入力し (`dbt seed`)、モデルを作成し (`dbt run`)、データをテストし (`dbt test`)、モデルドキュメントを生成して提供します (`dbt docs generate`、 `dbt docs serve`)。 + +== さらに詳しく +* link:https://docs.getdbt.com/docs/[dbt のドキュメント] +* link:https://github.com/Teradata/dbt-teradata[dbt-teradata プラグインのドキュメント] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/general/fastload.adoc b/modules/ROOT/pages/ja/general/fastload.adoc new file mode 100644 index 000000000..2bebf8cc8 --- /dev/null +++ b/modules/ROOT/pages/ja/general/fastload.adoc @@ -0,0 +1,307 @@ += Fastload を使用して大規模なバルクロードを効率的に実行する方法 +:page-lang: ja +:experimental: +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2022年4月6日 +:description: Teradata Fastloadを使用して、データをVantageに効率的にロードする。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, `Fastload` +:tabs: + +[IMPORTANT] +.廃止のお知らせ +==== +このハウツーでは、`Fastload` ユーティリティについて説明しています。このユーティリティは廃止されました。新しい実装では、 link:https://docs.teradata.com/search/documents?query=Teradata+Parallel+Transporter+Quick+Start+Guide&sort=last_update&virtual-field=title_only&content-lang=en-US[Teradata Parallel Transporter(TPT)] の使用を検討してください。 +==== + +== 概要 + +Vantageに大量のデータを移動させるニーズはよくあります。Teradataは、大量のデータをTeradata Vantageに効率的にロードできる `Fastload` ユーティリティを提供します 。このハウツーでは、`Fastload` の使用方法を説明します。このシナリオでは30万件以上のレコードをもつ40MB以上のデータを数秒でロードします。 + +== 前提条件 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Teradata Tools and Utilities (TTU) をダウンロード - サポートされているプラットフォーム: link:https://downloads.teradata.com/download/tools/teradata-tools-and-utilities-windows-installation-package[Windows]、 link:https://downloads.teradata.com/download/tools/teradata-tools-and-utilities-macos-installation-package[MacOS]、 link:https://downloads.teradata.com/download/tools/teradata-tools-and-utilities-linux-installation-package-0[Linux] (登録が必要です)。 + +== TTUのインストール + +[tabs] +==== +Windows:: ++ +-- +ダウンロードしたファイルを解凍し、`setup.exe` を実行します。 +-- +MacOS:: ++ +-- +ダウンロードしたファイルを解凍し、`TeradataToolsAndUtilitiesXX.XX.XX.pkg` を実行します。 +-- +Linux:: ++ +-- +ダウンロードしたファイルを解凍し、解凍したディレクトリに移動して次のコマンドを実行します。 +[source, bash] +---- +./setup.sh a +---- +-- +==== + +== サンプルデータを入手する + +非営利団体の米国税務申告を扱います。非営利の納税申告は公開データです。アメリカ内国歳入庁は、これらを S3 バケットで公開します。2020 年の提出書類のまとめを見てみましょう: `https://s3.amazonaws.com/irs-form-990/index_2020.csv`。ブラウザ、`wget`、または `curl` を使用して、ファイルをローカルに保存できます。 + +== データベースを作成する + +Vantageでデータベースを作成しましょう。お気に入りの SQL ツールを使用して、以下のクエリーを実行します。 + +[source, teradata-sql] +---- +CREATE DATABASE irs +AS PERMANENT = 120e6, -- 120MB + SPOOL = 120e6; -- 120MB +---- + +== Fastloadを実行する + +これから `Fastload` を実行する。`Fastload` は、大量のデータを Vantage にアップロードする際に非常に効率的なコマンドラインツールです。`Fastload` は、高速にするためにいくつかの制限が設けられています。空のテーブルのみを設定でき、すでに設定されているテーブルへの挿入はサポートされていません。セカンダリ インデックスを持つテーブルはサポートされません。また、テーブルが `MULTISET` テーブルであっても、重複レコードは挿入されない。 制限の完全なリストについては、link:https://docs.teradata.com/r/hBBrRBhRY0MFN4~xApbUqw/root[Teradata® `Fastload`リファレンス] を参照してください。 + +Fastload には独自のスクリプト言語があります。この言語を使用すると、任意の SQLコマンドを使用してデータベースを準備し、入力ソースを宣言し、Vantage にデータを挿入する方法を定義できます。このツールは対話型モードとバッチ モードの両方をサポートしています。このセクションでは、対話型モードを使用します。 + +対話型モードで `Fastload` を開始しましょう: + +[source, bash] +---- +fastload +---- + +まず、Vantageデータベースにログインします。Vantage Express をローカルで実行しているので、ホスト名として `localhost` を使用し、ユーザー名とパスワードとして `dbc` を使用します。 + +[source, teradata-sql, role="content-editable"] +---- +LOGON localhost/dbc,dbc; +---- + +ログインできたので、データベースを準備します。 `irs` データベースに切り替えて、ターゲット テーブル `irs_returns` とエラー テーブル (エラー テーブルについては後で詳しく説明します) が存在しないことを確認します。 + +[source, teradata-sql, id="fastload_drop_table", role="emits-gtm-events"] +---- +DATABASE irs; +DROP TABLE irs_returns; +DROP TABLE irs_returns_err1; +DROP TABLE irs_returns_err2; +---- + +次に、csv ファイルのデータ要素を保持できる空のテーブルを作成します。 + +[source, teradata-sql] +---- +CREATE MULTISET TABLE irs_returns ( + return_id INT, + filing_type VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC, + ein INT, + tax_period INT, + sub_date VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC, + taxpayer_name VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC, + return_type VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC, + dln BIGINT, + object_id BIGINT +) +PRIMARY INDEX ( return_id ); +---- + +ターゲット テーブルが準備できたので、データのロードを開始できます。`ERRORFILES` ディレクティブはエラー ファイルを定義します。エラーファイルは、実際には `Fastload` が作成するテーブルです。 最初のテーブルには、データ変換とその他の問題に関する情報が含まれています。2 番目のテーブルは、主キー違反などのデータの固有性の問題を追跡します。 + +[source, teradata-sql] +---- +BEGIN LOADING irs_returns + ERRORFILES irs_returns_err1, irs_returns_err2; +---- + +`Fastload` に 10k 行ごとにチェックポイントを保存するように指示します。ジョブを再開する必要がある場合に便利です。最後のチェックポイントから再開できるようになります。 + +[source, teradata-sql] +---- + CHECKPOINT 10000; +---- + +また、CSV ファイルの最初の行をレコード 2 からスキップするように `Fastload` に指示する必要があります。これは、最初の行には列ヘッダーが含まれているためです。 + +[source, teradata-sql] +---- + RECORD 2; +---- + +`Fastload` また、それがカンマ区切りファイルであることも認識する必要があります。 + +[source, teradata-sql] +---- + SET RECORD VARTEXT ","; +---- + +`DEFINE` ブロックは、どの列を期待するかを指定します。 + +[source, teradata-sql] +---- + DEFINE in_return_id (VARCHAR(19)), + in_filing_type (VARCHAR(5)), + in_ein (VARCHAR(19)), + in_tax_period (VARCHAR(19)), + in_sub_date (VARCHAR(22)), + in_taxpayer_name (VARCHAR(100)), + in_return_type (VARCHAR(5)), + in_dln (VARCHAR(19)), + in_object_id (VARCHAR(19)), +---- + +`DEFINE`ブロックには、データが含まれるファイルを指す `FILE` 属性もあります。 `FILE = /tmp/index_2020.csv;` を `index_2020.csv` ファイルの格納場所に置き換えます。 + +[source, teradata-sql] +---- + FILE = /tmp/index_2020.csv; +---- + +最後に、データベースにデータを入れる INSERT 文を定義し、`LOADING` ブロックを閉じます。 + +[source, teradata-sql] +---- + INSERT INTO irs_returns ( + return_id, + filing_type, + ein, + tax_period, + sub_date, + taxpayer_name, + return_type, + dln, + object_id + ) VALUES ( + :in_return_id, + :in_filing_type, + :in_ein, + :in_tax_period, + :in_sub_date, + :in_taxpayer_name, + :in_return_type, + :in_dln, + :in_object_id + ); +END LOADING; +---- + +ジョブが終了したら、データベースからログオフしてクリーンアップする。 + +[source, teradata-sql] +---- +LOGOFF; +---- + +スクリプト全体は以下のようになります。 +[source, teradata-sql] +---- +LOGON localhost/dbc,dbc; + +DATABASE irs; +DROP TABLE irs_returns; +DROP TABLE irs_returns_err1; +DROP TABLE irs_returns_err2; + +CREATE MULTISET TABLE irs_returns ( + return_id INT, + filing_type VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC, + ein INT, + tax_period INT, + sub_date VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC, + taxpayer_name VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC, + return_type VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC, + dln BIGINT, + object_id BIGINT +) +PRIMARY INDEX ( return_id ); + +BEGIN LOADING irs_returns + ERRORFILES irs_returns_err1, irs_returns_err2; + CHECKPOINT 10000; + RECORD 2; + SET RECORD VARTEXT ","; + + DEFINE in_return_id (VARCHAR(19)), + in_filing_type (VARCHAR(5)), + in_ein (VARCHAR(19)), + in_tax_period (VARCHAR(19)), + in_sub_date (VARCHAR(22)), + in_taxpayer_name (VARCHAR(100)), + in_return_type (VARCHAR(5)), + in_dln (VARCHAR(19)), + in_object_id (VARCHAR(19)), + FILE = /tmp/index_2020.csv; + + INSERT INTO irs_returns ( + return_id, + filing_type, + ein, + tax_period, + sub_date, + taxpayer_name, + return_type, + dln, + object_id + ) VALUES ( + :in_return_id, + :in_filing_type, + :in_ein, + :in_tax_period, + :in_sub_date, + :in_taxpayer_name, + :in_return_type, + :in_dln, + :in_object_id + ); +END LOADING; + +LOGOFF; +---- + +== バッチモード + +この例をバッチモードで実行するには、すべての命令を1つのファイルに保存して実行するだけです。 + +[source, bash] +---- +fastload < file_with_instruction.fastload +---- + +== `Fastload` vs. NOS + +この例では、ファイルは S3 バケット内にあります。つまり、Native Object Storage (NOS) を使用してデータを取り込むことができます。 + +[source, teradata-sql] +---- +-- create an S3-backed foreign table +CREATE FOREIGN TABLE irs_returns_nos + USING ( LOCATION('/s3/s3.amazonaws.com/irs-form-990/index_2020.csv') ); + +-- load the data into a native table +CREATE MULTISET TABLE irs_returns_nos_native + (RETURN_ID, FILING_TYPE, EIN, TAX_PERIOD, SUB_DATE, TAXPAYER_NAME) +AS ( + SELECT RETURN_ID, FILING_TYPE, EIN, TAX_PERIOD, SUB_DATE, TAXPAYER_NAME FROM irs_returns_nos +) WITH DATA +NO PRIMARY INDEX; +---- + +NOS ソリューションは追加のツールに依存しないため便利です。SQLのみで実装可能です。NOS タスクが AMP に委任され、並行して実行されるため、特に多数の AMP を備えた Vantage デプロイメント環境では良好なパフォーマンスを発揮します。また、オブジェクト ストレージ内のデータを複数のファイルに分割すると、パフォーマンスがさらに向上する可能性があります。 + +== まとめ + +このハウツーでは、大量のデータを Vantage に取り込む方法を説明しました。`Fastload` を使用して、数十万のレコードを Vantage に数秒でロードしました。 + + +== さらに詳しく +* link:https://docs.teradata.com/r/hBBrRBhRY0MFN4~xApbUqw/root[Teradata® `Fastload` リファレンス] +* link:nos.html[オブジェクトストレージに保存されたクエリーデータ] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/geojson-to-vantage.adoc b/modules/ROOT/pages/ja/general/geojson-to-vantage.adoc new file mode 100644 index 000000000..733259e7a --- /dev/null +++ b/modules/ROOT/pages/ja/general/geojson-to-vantage.adoc @@ -0,0 +1,294 @@ += Vantage で地理参照データを使用する方法 +:page-lang: ja +:experimental: +:page-author: Rémi Turpaud +:page-email: remi.turpaud@teradata.com +:page-revdate: 2022 年 2 月 14 日 +:description: Teradata Vantage で GeoJson ドキュメントをロードして使用する方法 +:keywords: geospatial, geojson, teradata, vantage, cloud data platform, analytics, maps, 4d analytics, open data + +== 概要 + +この投稿では、わずか数行のコードで、GeoJson 形式の地理データセットを活用し、Teradata Vantage で地理空間分析に使用する方法を示します。 + +現在、私たちは公共ソースから参照地理データ (公式地図、名所など) を収集し、それを日常の分析のサポートに使用しています。 + +GeoJson データを Teradata Vantage に取得する 2 つのメソッドを学習します。 + +1. これを単一のドキュメントとしてロードし、ネイティブ ClearScape 分析関数を使用して分析に使用できるテーブルに解析します。 +2. Vantage にロードするときにネイティブ Python で軽く変換して、分析対応のデータセットを生成します。 + +1 つ目のメソッドは、単一の SQL文を使用して Vantage で半構造化フォーマットを処理する単純な ELT パターンです。2 つ目の方法は、(純粋な) Python での軽量の準備を必要とし、より柔軟な対応が可能になります (例えば、初期の品質チェックの追加や最適化など)。大きなドキュメントの負荷)。 + +== 前提条件 + +必要になるもの: + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Python 3 インタープリタ +* SQLクライアント + +== オプション1: GeoJson ドキュメントを Vantage にロードする +ここでは、GeoJson ドキュメントを単一の文字ラージ オブジェクト(CLOB) として Vantage Data Store にロードし、ClearScape Analytics のネイティブ関数に支えられた単一の SQL 文を使用して、このドキュメントを地理空間分析に使用可能な構造に解析します。 + +=== GeoJson ドキュメントを取得してロードする +http://geojson.xyz/のウェブサイトは、GeoJson形式のオープンな地理データの素晴らしいソースです。1,000 を超える世界の重要な都市のリストを提供する「Populated Places」データセットを読み込みます。 + +お気に入りの *Python 3 インタープリタ* を開き、以下のパッケージがインストールされていることを確認してください。 + +* wget +* teradatasql +* getpass + +都市データセットをダウンロードして読み取ります。 +[source, python] +---- +import wget +world_cities=wget.download('https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_50m_populated_places.geojson') +with open(world_cities) as geo_json: + jmap = jmap = geo_json.read() +---- + +=== GeoJson ドキュメントを Vantage にロードする + +必要に応じて、Vantage のホスト名、ユーザー名を使用してこのコードを変更し、_logmech_ パラメータで高度なログイン メカニズム (LDAP、Kerberos など) を指定します。 +すべての接続パラメータは、teradatasql PyPi ページにドキュメント化されています。 https://pypi.org/project/teradatasql/ + +以下のコードは、単に Vantage 接続を作成し、カーソルを開いてテーブルを作成し、それをファイルとともにロードします。 + +[source, python] +---- +import teradatasql +import getpass +tdhost='' +tdUser='' + +# Create a connection to Teradata Vantage +con = teradatasql.connect(None, host=tdhost, user=tdUser, password=getpass.getpass()) + +# Create a table named geojson_src and load the JSON map into it as a single CLOB +with con.cursor () as cur: + cur.execute ("create table geojson_src (geojson_nm VARCHAR(32), geojson_clob CLOB CHARACTER SET UNICODE);") + r=cur.execute ("insert into geojson_src (?, ?)", ['cities',jmap]) +---- + +=== Vantageからマップを使用する + +ここで、お気に入りの *SQL クライアント* を開き、Vantageシステムに接続します。 + +ClearScape 分析の JSON 関数を使用して GeoJson ドキュメントを解析し、各フィーチャ (この例では都市を表す各フィーチャ) に最も関連するプロパティとジオメトリ自体 (都市の座標) を抽出します。 +次に、GeomFromGeoJSON 関数を使用して、ジオメトリをネイティブ Vantage ジオメトリ データ型 (ST_GEOMETRY) としてキャストします。 + +ユーザーの利便性を考慮して、この SQL コードをすべてビューにラップします。 + +[source, python] +---- +REPLACE VIEW cities_geo AS +SEL city_name, country_name, region_name, code_country_isoa3, GeomFromGeoJSON(geom, 4326) city_coord +FROM JSON_Table +(ON ( + SEL + geojson_nm id + ,cast(geojson_clob as JSON) jsonCol + FROM geojson_src where geojson_nm='cities' +) +USING rowexpr('$.features[*]') + colexpr('[ {"jsonpath" : "$.geometry", + "type" : "VARCHAR(32000)"}, + {"jsonpath" : "$.properties.NAME", + "type" : "VARCHAR(50)"}, + {"jsonpath" : "$.properties.SOV0NAME", + "type" : "VARCHAR(50)"}, + {"jsonpath" : "$.properties.ADM1NAME", + "type" : "VARCHAR(50)"}, + {"jsonpath" : "$.properties.SOV_A3", + "type" : "VARCHAR(50)"}]') +) AS JT(id, geom, city_name, country_name, region_name, code_country_isoa3); +---- + +これで、準備された地理データをテーブルとして表示できるようになり、分析を強化する準備が整いました。 + +[source, teradata-sql] +---- +SEL TOP 5 * FROM cities_geo; +---- + +結果: + +[cols="1,1,1,1,1"] +|=== +|city_name|country_name|region_name|code_country_isoa3|city_coord + +|Potenza|Italy|Basilicata|ITA|POINT (15.798996495640267 40.642002130098206) +|Mariehamn|Finland|Finström|ALD|POINT (19.949004471869102 60.096996184895431) +|Ramallah|Indeterminate||PSE|POINT (35.206209378189556 31.902944751424059) +|Poitier|French Republic|Poitou-Charentes|FRA|POINT (0.333276528534554 46.583292255736581) +|Clermont-Ferrand|French Republic|Auvergne|FRA|POINT (3.080008095928406 45.779982115759424) +|=== + +2 つの都市間の距離を計算します。 + +[source, teradata-sql] +---- +SEL b.city_coord.ST_SphericalDistance(l.city_coord) +FROM +(SEL city_coord FROM cities_geo WHERE city_name='Bordeaux') b +CROSS JOIN (SEL city_coord FROM cities_geo WHERE city_name='Lvov') l +---- + +結果: + +[cols="1"] +|=== +|city_coord.ST_SPHERICALDISTANCE(city_coord) +|1.9265006861079421e+06 +|=== + +== オプション 2: Python を使用して GeoJson ドキュメントを準備し、Vantage にロードする + +前の例では、完全なドキュメントをラージ オブジェクトとして Teradata Vantage にロードし、組み込みの分析関数を使用してそれを解析して使用可能なデータセットにする方法を示しました。 + +元のドキュメントは分析に直接使用できないため、JSONドキュメントは現在Vantageで16MBに制限されており、CLOBとして保存されているドキュメント内のデータ品質やフォーマットの問題を修正するのは不便な場合があるため、使用するたびにこのドキュメントを解析する必要があります。 + +この例では、Python json パッケージを使用して JSON ドキュメントを解析し、分析に直接かつ効率的に使用できるテーブルとしてロードします。 + +Python json およびリスト操作関数と Python 用の Teradata SQL ドライバを使用すると、このプロセスが非常にシンプルかつ効率的になります。 + +この例では、https://datahub.io で利用可能な世界の国の境界を使用します。 + + +さっそく見ていきましょう。 + +お気に入りの *Python 3 インタープリタ* を開いて、以下のパッケージがインストールされていることを確認してください: + +* wget +* teradatasql +* getpass + +=== GeoJson ドキュメントを取得してロードする + +[source, python] +---- +import wget +countries_geojson=wget.download('https://datahub.io/core/geo-countries/r/countries.geojson') +---- + +=== GeoJson ファイルを開き、ディクショナリとして入力します。 +import json +with open(countries_geojson) as geo_json: + countries_json = json.load(geo_json) + +=== [オプション] ファイルの内容を確認します。 + +インタラクティブな Python ターミナルを使用している場合、この JSON をメモリにロードすると、ドキュメントを探索してその構造を理解できるようになります。例えば + +[source, python] +---- +print(countries_json.keys()) +print(countries_json['type']) +print(countries_json['features'][0]['properties'].keys()) +print(countries_json['features'][0]['geometry']['coordinates']) +---- + +ここにあるのは、(前述のように) GeoFeature のコレクションです。 + +そのために、このデータを Vantage テーブルで簡単にモデル化します。 + +- 各機能を生としてロードします。 +- すぐに分析できるように興味深いプロパティを抽出します (この例では、国名と ISO コード)。 +- ジオメトリ自体を抽出し、別の列としてロードします。 + +teradatasql カーソルを使用して行のセットをロードするには、各行を値の配列 (またはタプル) として表し、完全なデータセットをすべての行配列の配列として表す必要があります。 +これはリスト理解としてはかなり簡単です。 + +例: + +[source, python] +---- +[(f['properties']['ADMIN'], f['properties']['ISO_A3'], f['geometry']) for f in countries_json['features'][:1]] +---- + +注記: ここでは取り上げていませんが、より豊富なデータセットの場合は、元の特徴ペイロード全体を別の列 (これは JSON ドキュメントです) としてロードすることを検討してください。これにより、ファイル全体を再ロードすることなく、元のレコードに戻って、最初の分析では見逃したものの関連性が高まった新しいプロパティを SQL で直接抽出できるようになります。 + +=== Vantage接続を作成し、ステージングテーブルにファイルをロードする + +必要に応じて、Vantage のホスト名、ユーザー名を使用してこのコードを変更し、_logmech_ パラメータを使用して高度なログイン メカニズム (LDAP、Kerberos など) を指定します。 +すべての接続パラメータは、teradatasql PyPi ページに文書化されています。 https://pypi.org/project/teradatasql/ + +以下のコードは、単に Vantage 接続を作成し、カーソルを開いてテーブルを作成し、それをリストとともにロードします。 + +[source, python] +---- +import teradatasql +import getpass +tdhost='' +tdUser='' + +# Create a connection to Teradata Vantage +con = teradatasql.connect(None, host=tdhost, user=tdUser, password=tdPassword) + +# Create a table and load our country names, codes, and geometries. +with con.cursor () as cur: + cur.execute ("create table stg_countries_map (country_nm VARCHAR(32), ISO_A3_cd VARCHAR(32), boundaries_geo CLOB CHARACTER SET UNICODE);") + r=cur.execute ("insert into stg_countries_map (?, ?, ?)", [(f['properties']['ADMIN'], f['properties']['ISO_A3'], str(f['geometry'])) for f in countries_json['features']]) +---- + +=== 地理参照テーブルを作成する + +以下のコードは、Python インタープリターからテーブルの作成を実行します。また、お好みの SQL クライアントで以下に定義された _sql_ ステートメントを実行することもできます。このテーブルを更新する必要がないように、単純にこのロジックを SQL ビューとして定義することもできます。 + +ClearScape 分析の GeomFromGeoJSON 関数を使用して、ジオメトリをネイティブ Vantage ジオメトリ データ型 (ST_GEOMETRY) としてキャストします。 + +[source, python] +---- +# Now create our final reference table, casting the geometry CLOB as a ST_GEOMETRY object +sql=''' +CREATE TABLE ref_countries_map AS +( +SEL +ISO_A3_cd +,country_nm +,GeomFromGeoJSON(boundaries_geo, 4326) boundaries_geo +FROM stg_countries_map +) WITH DATA +''' + +WITH con.cursor () AS cur: + cur.execute (sql) +---- + +=== データを使用する + +これで、お気に入りの *SQL クライアント* と Teradata の優れた https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-Geospatial-Data-Types-17.20[地理空間データ型と分析関数] を使用してテーブルにクエリーを実行できるようになります。 + +例えば、このチュートリアル中にロードした 2 つのデータセットを使用して、どの国が存在するかをチェックインします。 + +[source, teradata-sql] +---- +SEL cty.city_name, cty.city_coord, ctry.country_nm +FROM cities_geo cty +LEFT JOIN ref_countries_map ctry + ON ctry.boundaries_geo.ST_Contains(cty.city_coord)=1 +WHERE cty.city_name LIKE 'a%' +---- + +[cols="1,1,1"] +|=== +|city_name|city_coord|country_nm +|Acapulco|POINT (-99.915979046410712 16.849990864016206)|Mexico +Aosta|POINT (7.315002595706176 45.737001067072299)|Italy +Ancona|POINT (13.499940550397127 43.600373554552903)|Italy +Albany|POINT (117.891604776075155 -35.016946595501224)|Australia +|=== + +== まとめ + +上記のコードはいずれも、ターゲット テーブルの状態の管理、ロックの管理、エラー コードの制御などを行うための制御プロシージャやチェックを実装していないことに注記してください。これは、地理空間参照データを取得して使用するために利用できる機能をデモンストレーションすることを目的としています。 + +Python、xref:dbt.adoc[dbt]、またはお気に入りの ELT およびオーケストレーション ツールセットでパイプラインを定義して運用可能な製品を作成している場合は、https://pypi.org/project/teradatasqlalchemy/[SQLAlchemy ORM] の使用を検討してください。 + +これで、オープンな地理データセットを取得し、それを使用して Teradata Vantage で分析を強化する方法を理解できるようになりました。 + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/getting-started-with-csae.adoc b/modules/ROOT/pages/ja/general/getting-started-with-csae.adoc new file mode 100644 index 000000000..810819be2 --- /dev/null +++ b/modules/ROOT/pages/ja/general/getting-started-with-csae.adoc @@ -0,0 +1,80 @@ += ClearScape Analytics Experience を始める +:page-lang: ja +:experimental: +:page-author: Vidhan Bhonsle +:page-email: vidhan.bhonsle@teradata.com +:page-revdate: 2024 年 2 月 09 日 +:description: ClearScape Analytics Experience を始める +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, business intelligence, enterprise analytics, jupyter, teradatasql, ipython-sql, clearscape, csae + +== 概要 + +https://www.teradata.com/platform/clearscape-analytics[ClearScape Analytics^TM^] は、https://www.teradata.com/platform/vantagecloud[Teradata VantageCloud] の強力な分析エンジンです。市場で最も強力でオープンで接続された AI/ML 機能により、企業全体に画期的なパフォーマンス、価値、成長をもたらします。https://www.teradata.com/experience[ClearScape Analytics Experience] を通じて、ClearScape Analytics^TM^ および Teradata Vantage を非運用設定で体験できます。 + +このハウツーでは、ClearScapeアナリティクスエクスペリエンスで環境構築のステップを実行し、デモにアクセスする。 + +image::VantageCloud.png[VantageCloud,align="center",width=50%] + +== ClearScape Analytics Experience アカウントを作成する + +https://www.teradata.com/experience[ClearScape Analytics Experience] に移動し、無料アカウントを作成します。 + +image::csae_register.png[登録,align="center",width=75%] + +https://clearscape.teradata.com/sign-in[ClearScape Analytics アカウント]にサインインして環境を作成し、デモにアクセスします。 + +image::csae_signin.png[サインイン,align="center",width=60%] + +== 環境を作成する + +サインインしたら次をクリックします。 *CREATE ENVIRONMENT* + +image::csae_create_env.png[環境を作成する,align="center",width=60%] + +次の情報を提供する必要がある。 + +[cols="1,1"] +|==== +| *変数* | *値* + +| *environment name* +| 環境の名前(例:「demo」) + +| *database password* +| 選択したパスワード。このパスワードは、`dbc` および `demo_user` ユーザーに割り当てられます。 + +| *Region* +| ドロップダウンからリージョンを選択します。 + +|==== + +IMPORTANT: データベースのパスワードを書き留めます。データベースに接続するために必要になる。 + +image::csae_env_params.png[環境パラメータ,align="center",width=65%] + +*CREATE* ボタンをクリックして環境の作成を完了すると、環境の詳細が表示されます。 + +image::csae_env_details.png[環境の詳細,align="center",width=75%] + +== デモへのアクセス + +ClearScape Analytics Experience 環境には、分析を使用してさまざまな業界のビジネス上の問題を解決する方法を紹介するさまざまなデモが含まれています。 ++ + +デモにアクセスするには、*RUN DEMOS USING JUPYTER* ボタンをクリックします。ブラウザの新しいタブで Jupyter 環境が開きます。 ++ + +NOTE: デモの詳細はすべて、デモ インデックス ページでご覧いただけます。 + +image::csae_jupyter.png[Usecasesフォルダ,align="center",width=75%] + + +== まとめ + +このクイック スタートでは、ClearScape Analytics Experience で環境を作成し、デモにアクセスする方法を学びました。 + +== さらに詳しく + +* https://api.clearscape.teradata.com/api-docs/[ClearScape Analytics Experience API ドキュメント] +* https://docs.teradata.com/[Teradata ドキュメント] + diff --git a/modules/ROOT/pages/ja/general/getting-started-with-vantagecloud-lake.adoc b/modules/ROOT/pages/ja/general/getting-started-with-vantagecloud-lake.adoc new file mode 100644 index 000000000..3d8a72dd5 --- /dev/null +++ b/modules/ROOT/pages/ja/general/getting-started-with-vantagecloud-lake.adoc @@ -0,0 +1,235 @@ += VantageCloud Lake の使用を開始する +:page-lang: ja +:experimental: +:page-author: Vidhan Bhonsle +:page-email: vidhan.bhonsle@teradata.com +:page-revdate: 2024 年 1 月 2 日 +:description: VantageCloud Lake で独自の環境を作成する +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, business intelligence, enterprise analytics, jupyter, teradatasql, ipython-sql, teradatasqlalchemy, vantagecloud, vantagecloud lake, ip address, public internet, lake + +== 概要 + +Teradata VantageCloud Lakeは、Teradataの次世代のクラウドネイティブな分析およびデータプラットフォームです。これは、オブジェクト ストレージ中心の設計を使用して、独立した柔軟なワークロードを実行する機能とともに、レイクハウス デプロイメント パターンを提供します。 + +これにより、組織はデータのロックを解除し、分析をアクティブ化し、価値を加速できるようになります。お客様は、ワークロード要件に最適なように特別に構成されたコンピューティング クラスタ リソースを使用して、分析環境を最適化できます。 + + +image::VantageCloud.png[VantageCloud,align="center",width=50%] + + +VantageCloud Lake は、クラウド ソリューションに期待されるすべてのメリットに加え、業界をリードする Analytics Database、ClearScape Analytics、QueryGrid データ ファブリックなどの Teradata の差別化されたテクノロジー スタックを提供します。 + +== VantageCloud Lake へのサインオン + +IMPORTANT: VantageCloud Lake のサインオン リンクと資格情報を取得するには、https://www.teradata.com/about-us/contact[お問い合わせフォーム]に記入して Teradata チームに連絡してください。 + +Teradataが提供するURL(*_ourcompany.innovationlabs.teradata.com_*など)に移動し、サインオンします。 + +* 既存の顧客は、組織管理者のユーザー名 (電子メール アドレス) とパスワードを使用してサインオンできます。 +* 新しい顧客は、組織管理者のユーザー名 (ウェルカム レターから: 電子メール アドレス) と作成したパスワードを使用してサインオンできます。 + +NOTE: https://login.customer.teradata.com/ext/pwdreset/Identify?AdapterId=CDSCustomer[ここ] をクリックして、組織の管理者パスワードをリセットします。 + + +image::lake_sign_on.png[サインオン,align="center",width=50%] + +サインオンすると、VantageCloud Lakeのようこそページに移動します。 + +image::lake_welcome_page.png[ようこそページ,align="center",width=50%] + +ようこそページにはナビゲーション メニューがあり、環境を完全に制御できるだけでなく、さまざまな必要なツールも提供されます。 + +image::lake_expanded_menu.png[ナビゲーションメニューアイテム,align="right",float="right",width=60%] + +* Vantage-VantageCloud Lakeポータルのホームページ +* https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Getting-Started-First-Sign-On-by-Organization-Admin/Step-1-Signing-On-and-Creating-Your-First-Environment[環境] - 環境を作成し、作成されたすべての環境を確認する +* https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Introduction-to-VantageCloud-Lake/VantageCloud-Lake-Organizations-and-Environments[組織] - 組織の構成の表示、組織管理者の管理、アカウントの構成とステータスを表示する +* https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Managing-Compute-Resources/Review-Consumption-Usage[消費量] - 組織がコンピューティングリソースとストレージリソースをどのように消費しているかを監視する +* https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Using-VantageCloud-Lake-Console-to-Manage-VantageCloud-Lake/Using-the-Consumption-Estimates[コスト試算] - 環境と組織全体のコストと消費量を計算する。 +* https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Running-and-Monitoring-Queries/Monitoring-and-Managing-Queries[クエリー] - 環境のクエリーを検査して、その効率を理解する。 +* https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Running-and-Monitoring-Queries[エディタ] - エディタでクエリーを作成して実行する。 +* https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Data-Copy[データ コピー] - VantageCloud Lake コンソールからデータ コピー (Data Mover とも呼ばれる) ジョブをプロビジョニング、構成、実行しする。 + + +== 環境を作成する +プライマリ クラスタ環境を作成するには、ナビゲーション メニューの [環境] をクリックします。新しく開いたビューで、ページの右上にある「作成」ボタンをクリックします。 + +image::lake_environment_page.png[環境ページ,align="center",width=75%] + +=== 環境の構成 + +環境の構成フィールドに入力します。 + +[cols="1,1"] +|==== +| *アイテム* | *説明* + +| 環境名 +| 新しい環境のコンテキスト名 + +| リージョン +| 利用可能なリージョン リストは、販売プロセス中に事前に決定されます。 + +| パッケージ +| 次の2つのサービスパッケージから選択できます。 + +Lake: プレミア 24x7 クラウドサポート + +Lake+: プレミア 24x7 優先クラウドサポート + 業界データモデル +|==== + +image::lake_environment_configuration.png[環境の構成,align="center",width=50%] + +IMPORTANT: *推定消費量* (右側)は、環境作成のためのガイダンスを提供します。詳細については、https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Using-VantageCloud-Lake-Console-to-Manage-VantageCloud-Lake/Using-the-Consumption-Estimates[推定消費量の使用] を参照してください。 + +=== プライマリ クラスタの構成 + +プライマリ クラスタの構成フィールドに入力します。 + +[cols="1,2a"] +|==== +| *アイテム* | *説明* + +| インスタンス サイズ +| ユースケースに適したインスタンス サイズを選択します。 + +[cols="2,1"] +!=== +! Lake ! 値(単位) + +! XSmall +! 2 + +! Small +! 4 + +! Medium +! 7 + +! Large +! 10 + +! XLarge +! 13 + +! 2XLarge +! 20 + +! 3XLarge +! 27 + +!=== + +[cols="2,1"] +!=== +! Lake+ ! 値(単位) + +! XSmall +! 2.4 + +! Small +! 4.8 + +! Medium +! 8.4 + +! Large +! 12 + +! XLarge +! 15.6 + +! 2XLarge +! 24 + +! 3XLarge +! 32.4 + +!=== + +| インスタンス数 +| 2から64 + +プライマリ クラスタ内のノードの数 + +| インスタンス ストレージ +| インスタンスあたり1~72 TB + +|==== + +image::lake_primary_cluster_config.png[プライマリ クラスタの構成,align="center",width=50%] + +=== データベースの認証情報 + +データベースの認証情報フィールドに入力します。 + +[cols="1,1"] +|==== +| *アイテム* | *説明* + +| DBCパスワード +Teradata Vantage 環境のプライマリ管理アカウントは「dbc」と呼ばれます。Linux の root ユーザーと同様に、dbc アカウントは包括的な管理特権を保持します。環境の作成後は、日常的なタスク用に追加の管理ユーザーを確立し、dbc 資格情報の共有や利用を控えることをお勧めします。 +dbcのパスワードを設定します。 + +* 8~64文字 + +* 英数字と特殊文字の両方を使用できます + +* ディクショナに載っている単語がない + +|==== + +image::lake_database_cred.png[プライマリ クラスタの構成,align="center",width=50%] + +=== 詳細オプション + +すぐに開始するには、*デフォルトを使用* を選択するか、追加のオプション設定を定義することができる。 + +image::lake_advanced_option_default.png[ユーザーのデフォルトを使用する詳細オプション,align="center",width=50%] + +[cols="1,1"] +|==== +| *アイテム* | *説明* + +| インスタンスあたりのAMP数 +| ワークロード管理 + +選択したインスタンスサイズに対して、インスタンスあたりのAMP数を選択します。 + +| AWS:ストレージの暗号化 +| 顧客データの暗号化を設定します。https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html[キー ID とキー ARN を検索する] を参照してください + +* Teradataによる管理 ++ +* 顧客管理 ++ +* キーエイリアスARN + +|==== + +image::lake_advanced_option.png[ユーザー定義の詳細オプション,align="center",width=50%] + +すべての情報を確認し、*CREATE ENVIRONMENT* ボタンをクリックします。 + +image::lake_create_environment.png[環境の作成ボタン,align="center",width=50%] + +デプロイには数分かかります。完了すると、作成された環境がカード ビューとして *環境* セクションに表示されます (環境の名前は Quickstart_demo)。 + +image::lake_available_environment.png[新しく作成された使用可能な環境,align="center",width=50%] + +== パブリック インターネットからのアクセス環境 + +作成された環境には、コンソールからのみアクセスできます。これを変更するには、作成された環境変数をクリックして、*設定* タブに移動します。 + +image::lake_settings_menu.png[作成した環境の設定メニュー,align="center",width=75%] + +*設定* で *インターネット接続* チェックボックスをオンにし、環境へのアクセスに使用する IP アドレスを CIDR 形式で指定します (たとえば、192.168.2.0/24 は 192.168.2.0 から 192.168.2.255 の範囲内のすべての IP アドレスを指定します) + +NOTE: インターネット接続の設定の詳細については、https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Getting-Started-First-Sign-On-by-Organization-Admin/Step-2-Setting-the-Environment-Connection-Type/Setting-Up-an-Internet-Connection[こちら] をご覧ください。 + +image::lake_ip_addresses.png[IPホワイトリスト,align="center",width=50%] + +ページの右上にある *保存* ボタンをクリックして、変更を確認します。 ++ + +*環境* のセクションに戻って、環境庁カードを確認してください。現在、*パブリック インターネット* にアクセスできます。 + +image::lake_public_internet_cv.png[パブリック インターネット カード ビュー,align="center",width=50%] + + +== まとめ + +このクイック スタートでは、VantageCloud Lake に環境を作成し、パブリック インターネットからアクセスできるようにする方法を学びました。 + +== さらに詳しく + +* https://docs.teradata.com/r/Teradata-VantageCloud-Lake/Getting-Started-First-Sign-On-by-Organization-Admin[Teradata VantageCloud Lakeのドキュメント] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/getting.started.utm.adoc b/modules/ROOT/pages/ja/general/getting.started.utm.adoc new file mode 100644 index 000000000..65e141044 --- /dev/null +++ b/modules/ROOT/pages/ja/general/getting.started.utm.adoc @@ -0,0 +1,76 @@ += UTM で Vantage Express を実行する方法 +:page-lang: ja +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2023 年 1 月 9 日 +:description: UTM を使用して Mac で Vantage Express を実行します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics +:icons: font + +include::../partials/getting.started.intro.adoc[] + +== 前提条件 + +. Macコンピュータ。IntelとM1/2チップの両方がサポートされている。 ++ +NOTE: Vantage Expressはx86アーキテクチャで動作する。VMをM1/2チップ上で実行する場合、UTMはx86をエミュレートする必要がある。これは仮想化よりも大幅に低速です。M1/M2 上の Vantage Express がニーズに対して遅すぎると判断した場合は、クラウド ( xref:run-vantage-express-on-aws.adoc[AWS]、 xref:run-vantage-express-on-microsoft-azure.adoc[Azure]、 xref:vantage.express.gcp.adoc[Google Cloud] )で Vantage Express を実行することを検討してください。 +. 少なくとも 1 つのコアと 4GB RAM を仮想マシン専用にできる 30GB のディスク領域と十分な CPU および RAM。 +. ソフトウェアをインストールして実行できる管理者権限。 ++ +NOTE: ローカルマシンに管理者権限がありませんか?xref:run-vantage-express-on-aws.adoc[AWS]、xref:run-vantage-express-on-microsoft-azure.adoc[Azure]、xref:vantage.express.gcp.adoc[Google Cloud]でVantage Expressを実行する方法を見てください。 + +== インストール + +=== 必要なソフトウェアをダウンロードする + +. link:https://downloads.teradata.com/download/database/teradata-express-for-vmware-player[Vantage Express] の最新バージョン。これまでに Teradata Downloads Web サイトを使用したことがない場合は、登録する必要があります。 +. link:https://mac.getutm.app/[UTM] の最新バージョン。 + +=== UTMインストーラを実行する + +. インストーラを実行し、デフォルト値を受け入れてUTMをインストールします。 + +=== Vantage Expressを実行する + +. Vantage Expressをダウンロードしたディレクトリに移動し、ダウンロードしたファイルを解凍します。 +. UTM を起動し、 `+` の記号をクリックして、 `Virtualize` (Intel Mac の場合) または `Emulate` (M1 Mac の場合) を選択します。 +. `Operating System` 画面で `Other`を選択します。 +. `Other` 画面で `Skip ISO Boot`を選択します。 +. `Hardware`画面で、少なくとも4 GBのメモリと少なくとも1つのCPUコアを割り当てます。10GB RAM と 2 つの CPU を推奨します。 ++ +image::utm.hardware.png[UTM Hardware, width=500, align="left"] +. `Storage` 画面で `Next` をクリックして、デフォルトを受け入れます。 +. `Shared Direct` 画面で `Next` をクリックします。 +. `Summary` 画面で `Open VM Settings` にチェックを入れ、 `Save`をクリックします。 +. セットアップウィザードを実行します。以下のタブを調整するだけで済みます。 +* *QEMU* - `UEFI Boot` オプションを無効にします。 +* *Network* - ホスト コンピューター上で ssh (22) ポートと Vantage (1025) ポートを公開します。 ++ +image::utm.network.png[UTMネットワーク, width=500] +. ドライブをマップします。 +* デフォルトの `IDE Drive` を削除します。 +* ダウンロードした VM zip ファイルからディスク ファイルをインポートして、3 つの Vantage Express ドライブをマッピングします。`-disk1`、`-disk2`、`-disk3` の正しい順序でマッピングするようにしてください。最初のディスクはブート可能であり、データベース自体が含まれています。Disks 2と3はいわゆる `pdisks` と呼ばれ、データを含んでいます。ファイルをインポートすると、UTMは自動的に `vmdk` から `qcow2` 形式に変換する。各ディスクが `IDE` インターフェースを使用して構成されていることを確認してください。 ++ +image::utm.drives.png[UTMドライブ, width=500] ++ +3 つのドライブすべてのマッピングが完了すると、構成は次のようになります。 ++ +image::utm.final.png[UTMドライブの最終版, width=500] +. 構成を保存し、VM を起動します。 + +include::../partials/run.vantage.adoc[] + +=== サンプルクエリーを実行する + +. 次に、VM でいくつかのクエリーを実行します。ホストと VM 間のコピー/ペーストの問題を回避するために、VM でこのクイック スタートを開きます。仮想デスクトップに移動し、Firefox を起動して、このクイック スタートを指定します。 + +include::../partials/running.sample.queries.adoc[] + +include::../partials/getting.started.summary.adoc[] + +include::../partials/next.steps.adoc[] + +== さらに詳しく +* link:https://docs.teradata.com/r/Teradata-StudioTM-and-StudioTM-Express-Installation-Guide-17.20[Teradata®Studio™およびStudio™Expressインストール ガイド] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/getting.started.vbox.adoc b/modules/ROOT/pages/ja/general/getting.started.vbox.adoc new file mode 100644 index 000000000..fcc9d5335 --- /dev/null +++ b/modules/ROOT/pages/ja/general/getting.started.vbox.adoc @@ -0,0 +1,79 @@ += VirtualBox で Vantage Express を実行する方法 +:page-lang: ja +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2023 年 1 月 9 日 +:description: VirtualBox を使用してラップトップで Vantage Express を実行します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics +:tabs: + +include::../partials/getting.started.intro.adoc[] + +== 前提条件 + +. 以下のオペレーティング システムのいずれかを使用するコンピューター: Windows 10、Linux、または Intel ベースの MacOS。 ++ +NOTE: M1/M2 MacOSシステムについては、xref:getting.started.utm.adoc[] を参照してください。 +. 少なくとも 1 つのコアと 6GB RAM を仮想マシン専用にできる 30GB のディスク領域と十分な CPU および RAM。 +. ソフトウェアをインストールして実行できる管理者権限。 ++ +// NOTE: No admin rights on your local machine? No problem! Have a look at how to run Vantage Express in link:#[AWS], link:#[Azure], link:#[Google Cloud]. + +== インストール + +=== 必要なソフトウェアのダウンロード + +. link:https://downloads.teradata.com/download/database/teradata-express-for-vmware-player[Vantage Express VirtualBox Open Virtual Appliance (OVA),window=_blank]の最新バージョン 。 ++ +NOTE: これまでに Teradata Downloads Web サイトを使用したことがない場合は、まず登録する必要があります。 +. link:https://www.virtualbox.org/wiki/Downloads[VirtualBox,window=_blank]、バージョン6.1。 ++ +NOTE: `brew` およびその他のパッケージ マネージャを使用して VirtualBox をインストールすることもできます。 + +=== インストーラを実行する + +. インストーラーを実行し、デフォルト値を受け入れて、VirtualBox をインストールします。 + +NOTE: VirtualBox には、高い権限を必要とする機能が含まれています。VirtualBox を初めて起動するときは、この昇格されたアクセスを確認するように求められます。VirtualBox カーネル プラグインをアクティブにするためにマシンを再起動する必要がある場合もあります。 + +=== Vantage Express を実行する + +. VirtualBoxを起動します。 +. `File -> Import Appliance...`メニューに移動します。 +. `File` フィールドで、ダウンロードしたOVAファイルを選択します。 +. 以下の画面で、デフォルトを受け入れて `Import`をクリックします。 +. メインの VirtualBox パネルに戻り、VM `Vantage 17.20` をダブルクリックして Vantage Express アプライアンスを起動します。 ++ +image::getting-started-vbox/start-vm.png[VMを開始する, width=75%] + +include::../partials/run.vantage.adoc[] + +=== サンプルクエリーを実行する + +include::../partials/running.sample.queries.adoc[] + +== VirtualBox ゲスト拡張機能を更新する + +VirtualBox ゲスト拡張機能は、VM 内で実行されるソフトウェアです。これにより、VirtualBox上でのVMの実行が高速化されます。また、VM 画面の解像度とサイズ変更に対する応答性も向上します。双方向のクリップボードを実装し、ホストとゲストの間でドラッグ アンド ドロップを行います。VM 内の VirtualBox ゲスト拡張機能は、VirtualBox インストールのバージョンと一致する必要があります。最適なパフォーマンスを得るには、VirtualBox ゲスト拡張機能を更新する必要がある場合があります。 + +VirtualBox ゲスト拡張機能を更新するには: + +. `Storage` セクションの `SATA Port 3: [Optical Drive]` をクリックして、VirtualBox ゲスト拡張機能DVD を挿入します。 ++ +image::insert-guest-additions-dvd.png[Guest Additions DVD を挿入する, width=50%] +. VMウィンドウに戻り、`Gnome ターミナル` アプリケーションを起動します。 +. ターミナルで以下のコマンドを実行します。 ++ +[source, bash, id="update_guest_additions", role="content-editable emits-gtm-events"] +---- +mount /dev/cdrom /media/dvd; /media/dvd/VBoxLinuxAdditions.run +---- + +include::../partials/getting.started.summary.adoc[] + +include::../partials/next.steps.adoc[] + +== さらに詳しく +* link:https://docs.teradata.com/r/Teradata-StudioTM-and-StudioTM-Express-Installation-Guide-17.20[Teradata®Studio™およびStudio™Expressインストール ガイド] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/getting.started.vmware.adoc b/modules/ROOT/pages/ja/general/getting.started.vmware.adoc index 1d2995e90..79cec3722 100644 --- a/modules/ROOT/pages/ja/general/getting.started.vmware.adoc +++ b/modules/ROOT/pages/ja/general/getting.started.vmware.adoc @@ -1,54 +1,59 @@ -= VMware 上で Vantage Express を実行する += VMware で Vantage Express を実行する方法 :page-lang: ja :page-author: Adam Tworkiewicz :page-email: adam.tworkiewicz@teradata.com :page-revdate: 2023 年 1 月 9 日 :description: VMware を使用してラップトップで Vantage Express を実行します。 -:keywords: データ ウェアハウス、コンピューティング ストレージの分離、teradata、vantage、クラウド データ プラットフォーム、オブジェクト ストレージ、ビジネス インテリジェンス、エンタープライズ分析 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics :icons: font -include::../other/getting.started.intro.adoc[] +include::../partials/getting.started.intro.adoc[] == 前提条件 . 次のオペレーティング システムのいずれかを使用するコンピュータ: Windows、Linux、または Intel ベースの MacOS。 + -NOTE: M1/M2 MacOS システムについては、 を参照してください。 -. 少なくとも 1 つのコアと 6 GB RAM を仮想マシン専用にできる 30 GB のディスク領域と十分な CPU および RAM。 +NOTE: M1/M2 MacOSシステムについては、xref:getting.started.utm.adoc[] を参照してください。 +. 少なくとも 1 つのコアと 6GB RAM を仮想マシン専用にできる 30GB のディスク領域と十分な CPU および RAM。 . ソフトウェアをインストールして実行できる管理者権限。 + // NOTE: No admin rights on your local machine? No problem! Have a look at how to run Vantage Express in link:#[AWS], link:#[Azure], link:#[Google Cloud]. == インストール -=== 必要なソフトウェアをダウンロードする +=== 必要なソフトウェアのダウンロード -. link:https://downloads.teradata.com/download/database/teradata-express-for-vmware-player[Vantage Express]の最新バージョン。これまでに Teradata ダウンロード Web サイトを使用したことがない場合は、登録する必要があります。 -. link:https://www.vmware.com/products/workstation-player.html[VMware Workstation Player]。 +. link:https://downloads.teradata.com/download/database/teradata-express-for-vmware-player[Vantage Express] の最新バージョン。これまでに Teradata Downloads Web サイトを使用したことがない場合は、登録する必要があります。 +. link:https://www.vmware.com/products/workstation-player.html[VMware Workstation Player] 。 + -IMPORTANT: +IMPORTANT: 営利団体では、VMware Workstation Playerを使用するために商用ライセンスが必要です。VMwareライセンスを取得しない場合は、xref:getting.started.vbox.adoc[VirtualBox] でVantage Expressを実行できます。 + -IMPORTANT: VMware は、MacOS 用の VMware Workstation Player を提供していません。Mac を使用している場合は、代わりに link:https://www.vmware.com/products/fusion/fusion-evaluation.html[VMware Fusion] をインストールする必要があります。これは有料製品ですが、VMware では 30 日間の無料試用版を提供しています。あるいは、Vantage Express を -. Windows では、Vantage Express を解凍するために link:https://www.7-zip.org/download.html[7zip] も必要です。 +IMPORTANT: VMware は、MacOS 用の VMware Workstation Player を提供していません。Macを使用している場合は、代わりに link:https://www.vmware.com/products/fusion/fusion-evaluation.html[VMware Fusion] をインストールする必要があります。これは有料製品ですが、VMware では 30 日間の無料試用版を提供しています。または、xref:getting.started.vbox.adoc[VirtualBox] または xref:getting.started.utm.adoc[UTM] 上でVantage Expressを実行することもできます。 +. Windowsでは、Vantage Expressを解凍するために link:https://www.7-zip.org/download.html[7 zip] も必要です。 -=== インストーラーを実行する +=== インストーラを実行する . インストーラを実行し、デフォルト値を受け入れて、VMware Player または VMware Fusion をインストールします。 -. Windows の場合は、 `7zip`をインストールします。 +. Windowsの場合は、`7zip` をインストールします。 -=== ヴァンテージ エクスプレスを実行する +=== Vantage Express を実行する -. Vantage Express をダウンロードしたディレクトリに移動し、ダウンロードしたファイルを解凍します。 -. `.vmx` ファイルをダブルクリックします。これにより、VMware Player/Fusion で VM イメージが起動します。 - +. Vantage Expressをダウンロードしたディレクトリに移動し、ダウンロードしたファイルを解凍します。 +. `.vmx` ファイルをダブルクリックします。これにより、VMware Player/FusionでVMイメージが起動されます。 + +include::../partials/run.vantage.adoc[] === サンプルクエリーを実行する -. 次に、VM でいくつかのクエリーを実行します。ホストと VM の間のコピー/ペーストの問題を回避するために、VM でこのクイック スタートを開きます。仮想デスクトップに移動し、Firefox を起動して、このクイック スタートを指定します。 +. 次に、VM でいくつかのクエリーを実行します。ホストと VM 間のコピー/ペーストの問題を回避するために、VM でこのクイック スタートを開きます。仮想デスクトップに移動し、Firefox を起動して、このクイック スタートを指定します。 + +include::../partials/running.sample.queries.adoc[] + +include::../partials/getting.started.summary.adoc[] - +include::../partials/next.steps.adoc[] -include::../other/next.steps.adoc[] +== さらに詳しく +* link:https://docs.teradata.com/r/Teradata-StudioTM-and-StudioTM-Express-Installation-Guide-17.20[Teradata®Studio™およびStudio™Expressインストール ガイド] -== 参考文献 -* link:https://docs.teradata.com/r/Teradata-StudioTM-and-StudioTM-Express-Installation-Guide-17.20[Teradata® Studio™ および Studio™ Express インストール ガイド] +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/install-teradata-studio-on-mac-m1-m2.adoc b/modules/ROOT/pages/ja/general/install-teradata-studio-on-mac-m1-m2.adoc new file mode 100644 index 000000000..c22fbf9dd --- /dev/null +++ b/modules/ROOT/pages/ja/general/install-teradata-studio-on-mac-m1-m2.adoc @@ -0,0 +1,30 @@ += Apple Mac M1/M2でTeradata Studio/Expressを使用する +:page-lang: ja +:experimental: +:page-author: Satish Chinthanippu +:page-email: satish.chinthanippu@teradata.com +:page-revdate: 2023 年 8 月 14 日 +:description: Apple Mac M1/M2 で Teradata Studio を実行します。 +:keywords: Teradata Studio, Teradata Studio Express, teradata, vantage, Mac, Apple Mac, Apple Mac M1,Apple Mac M2, Arm based Processor. +:tabs: + +== 概要 + +このハウツーでは、Apple Mac M1/M2 マシンへの Teradata Studio および Teradata Studio Express のインストールについて説明します。 + +== 実行する手順 + +1. Rosetta バイナリ トランスレータをインストールして有効にする。link:https://support.apple.com/en-us/HT211861[Apple Mac Rosetta インストールガイド] に従います。 +2. お好みのベンダーから x86 64 ビット ベースの JDK 11 をダウンロードしてインストールします。例えば、x86 64 ビット JDK 11 を link:https://www.azul.com/downloads/?version=java-11-lts&os=macos&architecture=x86-64-bit&package=jdkGet[Azul] + からダウンロードできます。 +3. Teradata ダウンロード ページから最新の Teradata Studio または Teradata Studio Express リリースをダウンロードします。 +* link:https://downloads.teradata.com/download/tools/teradata-studio[Teradata Studio] +* link:https://downloads.teradata.com/download/tools/teradata-studio-express[Teradata Studio Express] +4. Teradata Studio/Teradata Studio Expressをインストールします。詳細については 、link:{attachmentsdir}/Studio-Express-InstallGuide.pdf[Teradata Studio および Teradata Studio Express インストール ガイド] を参照してください。 + + +== まとめ + +Apple は、Apple MAC M1/M2 マシンに ARM ベースのプロセッサをデプロイメントしました。Intel x64 ベースのアプリケーションは、デフォルトでは ARM ベースのプロセッサでは動作しません。現在の Studio macOS ビルドは Intel x64 ベースのアプリケーションであるため、Teradata Studio または Teradata Studio Express もデフォルトでは動作しません。このハウツーでは、Intel x64 ベースの JDK と Teradata Studio または Teradata Studio Express を Apple Mac M1/M2 にインストールする方法を示します。 + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/jdbc.adoc b/modules/ROOT/pages/ja/general/jdbc.adoc new file mode 100644 index 000000000..93afd90a5 --- /dev/null +++ b/modules/ROOT/pages/ja/general/jdbc.adoc @@ -0,0 +1,56 @@ += JDBC を使用して Vantage に接続する方法 +:page-lang: ja +:experimental: +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2022 年 11 月 14 日 +:description: JDBCでVantageに接続する方法 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, JDBC, java applications, business intelligence, enterprise analytics + +== 概要 + +このハウツーでは、サンプルのJavaアプリケーションであるlink:https://github.com/Teradata/jdbc-sample-app[]を使用して、JDBCを使用してTeradata Vantageに接続する方法を示します。 + +== 前提条件 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* JDK +* Maven + +== Maven プロジェクトに依存関係を追加する + +Teradata JDBC ドライバを依存関係として Maven POM XML ファイルに追加します。 + +++++ + +++++ + +== クエリーを送信するコード + +NOTE: この手順では、Vantage データベースがポート `1025` の `localhost` で利用できることを前提としています。ラップトップでVantage Expressを実行している場合は、VMからホストマシンにポートを公開する必要があります。ポートを転送する方法については、仮想化ソフトウェアのドキュメントを参照してください。 + +プロジェクトが設定されます。残っているのは、ドライバをロードし、接続パラメータと認証パラメータを渡し、クエリーを実行することだけです。 + +++++ + +++++ + +== テストを実行する + +テストを実行する。 + +[source, bash, id="run_mvn", role="content-editable emits-gtm-events"] +---- +mvn test +---- + +== まとめ + +このハウツーでは、JDBC を使用して Teradata Vantage に接続する方法を説明しました。ここでは、Teradata JDBC ドライバを使用して SQL クエリーを Teradata Vantage に送信するビルド ツールとして Maven を使用するサンプル Java アプリケーションについて説明しました。 + +== さらに詳しく +* link:https://teradata-docs.s3.amazonaws.com/doc/connectivity/jdbc/reference/current/frameset.html[Teradata JDBC Driver リファレンス] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/jupyter.adoc b/modules/ROOT/pages/ja/general/jupyter.adoc new file mode 100644 index 000000000..4873f2541 --- /dev/null +++ b/modules/ROOT/pages/ja/general/jupyter.adoc @@ -0,0 +1,152 @@ += Jupyter NotebookからVantageを利用する方法 +:page-lang: ja +:experimental: +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2022 年 11 月 10 日 +:description: Jupyter Notebookから Teradata Vantage を使用する +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, JDBC, java applications, business intelligence, enterprise analytics, jupyter, teradatasql, ipython-sql, teradatasqlalchemy + +include::../partials/jupyter_notebook_clearscape_analytics_note.adoc[] + +== 概要 +このハウツーでは、Jupyter Notebookから Teradata Vantage に接続する手順を説明します。 + +include::../partials/vantage_clearscape_analytics.adoc[] + +== オプション + +Jupyter Notebook から Vantage に接続するには、いくつかの方法があります。 + +1. <<_teradata_libraries,通常の Python/R カーネル Notebookで Python または R ライブラリを使用する >> - このオプションは、独自のDockerイメージを生成できない制限された環境にいる場合にうまく機能します。また、Notebook内で SQL と Python/R を混在させる必要がある従来のデータサイエンス シナリオでも役立ちます。Jupyter に精通していて、独自の優先ライブラリと拡張機能のセットがある場合は、このオプションから始めてください。 +2.<<_teradata_jupyter_docker_image,Teradata Jupyter Docker イメージを使用する>> - Teradata Jupyter Docker イメージには、Teradata SQL カーネル (詳細は後述)、`teradataml` および `tdplyr` ライブラリ、Python および R ドライバーがバンドルされています。また、Teradata 接続の管理、Vantage データベース内のオブジェクトの探索を可能にする Jupyter 拡張機能も含まれています。SQLを頻繁に使用する場合や、視覚的なナビゲータが役立つ場合に便利です。Jupyter を初めて使用する場合、またはライブラリと拡張機能の厳選されたアセンブリを入手したい場合は、このオプションから始めてください。 + +=== Teradataライブラリ + +このオプションでは、通常の Jupyter Lab Notebookを使用します。Teradata Python ドライバをロードし、Python コードから使用する方法を見ていきます。また、SQLのみのセルのサポートを追加する `ipython-sql` 拡張に機能も検討します。 + +1. シンプルな Jupyter Lab Notebookから始めます。ここでは Dockerを使用していますが、Jupyter Hub、Google Cloud AI Platform Notebooks、AWS SageMaker Notebooks、Azure ML Notebooks など、Notebookを起動する任意のメソッドを使用できます。 ++ +[source, bash, id="jupyter_first_run", role="content-editable emits-gtm-events"] +---- +docker run --rm -p 8888:8888 -e JUPYTER_ENABLE_LAB=yes \ + -v "${PWD}":/home/jovyan/work jupyter/datascience-notebook +---- +2. Dockerログには、アクセスする必要がある URL が表示されます。 ++ +---- +Entered start.sh with args: jupyter lab +Executing the command: jupyter lab +.... +To access the server, open this file in a browser: + file:///home/jovyan/.local/share/jupyter/runtime/jpserver-7-open.html +Or copy and paste one of these URLs: + http://d5c2323ae5db:8888/lab?token=5fb43e674367c6895e8c2404188aa550b5c7bdf96f5b4a3a + or http://127.0.0.1:8888/lab?token=5fb43e674367c6895e8c2404188aa550b5c7bdf96f5b4a3a +---- +3. 新しいNotebookを開いて、必要なライブラリをインストールするためのセルを作成します。 ++ +NOTE: 以下に説明するすべてのセルを含むNotebookを GitHub で公開しました: https://github.com/Teradata/quickstarts/blob/main/modules/ROOT/attachments/vantage-with-python-libraries.ipynb ++ +[source, ipython] +---- +import sys +!{sys.executable} -m pip install teradatasqlalchemy +---- +4. 次に、`Pandas`をインポートし、Teradataに接続するための接続文字列を定義します。ローカル マシン上の Docker でNotebookを実行しており、ローカルの Vantage Express VM に接続したいため、Dockerによって提供される `host.docker.internal` のDNS 名を使用してマシンの IP を参照しています。 ++ +[source, ipython, role="content-editable"] +---- +import pandas as pd +# Define the db connection string. Pandas uses SQLAlchemy connection strings. +# For Teradata Vantage, it's teradatasql://username:password@host/database_name . +# See https://pypi.org/project/teradatasqlalchemy/ for details. +db_connection_string = "teradatasql://dbc:dbc@host.docker.internal/dbc" +---- +5. これで、Pandas を呼び出して Vantage をクエリーし、結果を Pandas データフレームに移動できるようになりました。 ++ +[source, ipython] +---- +pd.read_sql("SELECT * FROM dbc.dbcinfo", con = db_connection_string) +---- +6. 上記の構文は簡潔ですが、Vantage でデータを探索することだけが必要な場合は、退屈になる可能性があります。`ipython-sql` とその `%%sql` マジックを使用して、SQLのみのセルを作成します。まず、必要なライブラリをインポートします。 ++ +[source, ipython] +---- +import sys +!{sys.executable} -m pip install ipython-sql teradatasqlalchemy +---- +7. `ipython-sql` をロードし、db接続文字列を定義します。 ++ +[source, ipython, role="content-editable"] +---- +%load_ext sql +# Define the db connection string. The sql magic uses SQLAlchemy connection strings. +# For Teradata Vantage, it's teradatasql://username:password@host/database_name . +# See https://pypi.org/project/teradatasqlalchemy/ for details. +%sql teradatasql://dbc:dbc@host.docker.internal/dbc +---- +8. `%sql` と `%%sql` の魔法が使えるようになりました。テーブル内のデータを調査したいとします。以下のようなセルを作成できます。 ++ +[source, ipython] +---- +%%sql +SELECT * FROM dbc.dbcinfo +---- +9. データを Pandas フレームに移動したい場合は、以下のように言えます。 ++ +[source, ipython] +---- +result = %sql SELECT * FROM dbc.dbcinfo +result.DataFrame() +---- + +ipython-sql には、変数置換、`matplotlib` によるプロット、ローカル CSV ファイルへの結果の書き込みやデータベースへの結果の書き込みなど、他にも多くの機能があります。例については link:https://github.com/Teradata/quickstarts/blob/main/modules/ROOT/attachments/vantage-with-python-libraries.ipynb[Notebookのデモ] を 、完全なリファレンスについては link:https://github.com/catherinedevlin/ipython-sql/[ipython-sql github リポジトリ] を参照してください。 + +=== Teradata Jupyter Dockerイメージ + +Teradata Jupyter Dockerイメージは、 `jupyter/datascience-notebook` Dockerイメージに基づいて構築されています。Teradata SQL カーネル、Teradata Python および R ライブラリ、Jupyter 拡張機能が追加され、Teradata Vantage との対話時の生産性が向上します。このイメージには、SQL カーネルと Teradata ライブラリの使用方法を示すサンプル Notebookも含まれています。 + +SQL カーネルと Teradata Jupyter 拡張機能は、SQL インターフェースの使用に多くの時間を費やす人にとって役立ちます。これは、多くの場合、Teradata Studio を使用するよりも便利なNotebook エクスペリエンスと考えてください。Teradata Jupyter Docker イメージは、Teradata Studio を置き換えようとするものではありません。すべての機能が備わっているわけではありません。軽量の Web ベースのインターフェースを必要とし、Notebook UI を楽しむ人向けに設計されています。 + +Teradata Jupyter Dockerイメージは、Jupyter をローカルで実行する場合、またはカスタム Jupyter Dockerイメージを実行できる場所がある場合に使用できます。以下の手順は、イメージをローカルで使用する方法を示しています。 + +1. イメージを実行します。 ++ +NOTE: `-e"accept_license=Y` を渡すと、Teradata Jupyter Extensions の https://github.com/Teradata/jupyterextensions/blob/master/licensefiles/license.txt[使用許諾契約] に同意したことになります。 ++ + +[source, bash, id="jupyter_td_image_first_run", role="content-editable emits-gtm-events"] +---- +docker volume create notebooks +docker run -e "accept_license=Y" -p :8888:8888 \ + -v notebooks:/home/jovyan/JupyterLabRoot \ + teradata/jupyterlab-extensions +---- +2. Dockerログには、アクセスする必要がある URL が表示されます。例えば、これは私が持っているものです: ++ +---- +Starting JupyterLab ... +Docker Build ID = 3.2.0-ec02012022 +Using unencrypted HTTP + +Enter this URL in your browser: http://localhost:8888?token=96a3ab874a03779c400966bf492fe270c2221cdcc74b61ed + +* Or enter this token when prompted by Jupyter: 96a3ab874a03779c400966bf492fe270c2221cdcc74b61ed +* If you used a different port to run your Docker, replace 8888 with your port number +---- +3. URL を開き、ファイル エクスプローラを使用してNotebook `jupyterextensions -> notebooks -> sql -> GettingStartedDemo.ipynb`を開きます。 +4. Teradata SQL カーネルのデモを確認してください。 ++ +image::gettingstarteddemo.ipynb.png[GettingStartedDemo.ipynbのスクリーンショット, width=100%] + +== まとめ + +このクイック スタートでは、Jupyter Notebook から Teradata Vantage に接続するためのさまざまなオプションについて説明しました。複数の Teradata Python および R ライブラリをバンドルする Teradata Jupyter Dockerイメージについて学びました。また、SQL カーネル、データベース オブジェクト エクスプローラ、接続管理も提供します。これらの機能は、SQL インターフェースを長時間使用する場合に役立ちます。より伝統的なデータ サイエンス シナリオについては、スタンドアロンの Teradata Python ドライバと、ipython sql 拡張機能を介した統合を検討しました。 + +== さらに詳しく +* link:https://teradata.github.io/jupyterextensions[Teradata Jupyter 拡張機能 Web サイト] +* link:https://docs.teradata.com/r/KQLs1kPXZ02rGWaS9Ktoww/root[Jupyter用Teradata Vantage™モジュールインストールガイド] +* link:https://docs.teradata.com/r/1YKutX2ODdO9ppo_fnguTA/root[Python用Teradata®パッケージユーザガイド] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/local.jupyter.hub.adoc b/modules/ROOT/pages/ja/general/local.jupyter.hub.adoc new file mode 100644 index 000000000..92b0013f2 --- /dev/null +++ b/modules/ROOT/pages/ja/general/local.jupyter.hub.adoc @@ -0,0 +1,167 @@ += Teradata Jupyter ExtensionsをJupyter Hubにデプロイする方法 +:page-lang: ja +:experimental: +:page-author: Hailing Jiang +:page-email: Hailing.iang@teradata.com +:page-revdate: 2021 年 11 月 17 日 +:description: Teradata Jupyter 拡張機能を顧客の JupyterHub クラスタにデプロイする +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, java applications, business intelligence, enterprise analytics, jupyter, teradatasql, ipython-sql, teradatasqlalchemy + +== 概要 +独自のJupyterHubクラスタをお持ちのお客様には、Teradata Jupyterエクステンションを既存のクラスタに統合するための2つのオプションがあります。 + +1. Teradata Jupyter Dockerイメージを使用する。 +2. 既存のDockerイメージをカスタマイズして、Teradata 拡張機能を含める。 + +このページでは、2つのオプションの詳細な手順を説明します。この手順は、手順は、お客様のJupyterHubのデプロイが link:https://zero-to-jupyterhub.readthedocs.io/en/latest/index.html[Zero to JupyterHub with Kubernetes] をベースにしていることを前提にしています。 + +include::../partials/vantage_clearscape_analytics.adoc[] + +== Teradata Jupyter Dockerイメージの使用 + +Teradata は 、link:https://hub.docker.com/r/jupyter/datascience-notebook/[jupyter/datascience-notebook] イメージをベースにした、すぐに実行可能なDockerイメージを提供しています。Teradata SQLカーネル、Teradata PythonおよびRライブラリとドライバー、Teradata Jupyter拡張をバンドルし、Teradataデータベースと対話しながら生産性を向上させることができます。また、このイメージには、SQLカーネル、拡張機能、Teradataライブラリの使用方法を示すサンプルノートブックが含まれています。 + +このイメージは以下のように使用することができます。 + +* ローカルのDockerコンテナで個人用Jupyter Notebookサーバを起動する +* JupyterHubを使用してチームのJupyterLabサーバを実行する + +ローカルDockerコンテナで個人用JupyterLabサーバーを起動する手順については、link:https://docs.teradata.com/r/KQLs1kPXZ02rGWaS9Ktoww/Fwvns7y_a7juDWx1NixC2A[インストール ガイド]を参照してください。ここでは、お客様の既存のJupyterHub環境でTeradata Jupyter Dockerイメージを使用する方法を中心に説明します。 + +=== Teradata Jupyter Dockerイメージをレジストリにインストールする + +1. link:https://downloads.teradata.com/download/tools/vantage-modules-for-jupyter[Vantage Modules for Jupyter] のページに移動し、Dockerイメージをダウンロードします。tarballで、`teradatajupyterlabext_VERSION.tar.gz` という形式になっています。 +2. イメージをロードします。 ++ +[source, bash, role="content-editable"] +---- +docker load -i teradatajupyterlabext_VERSION.tar.gz +---- +3. イメージをDockerレジストリにプッシュします。 ++ +[source, bash, role="content-editable"] +---- +docker push +---- ++ +[TIP] +==== +シンプルにするために、読み込んだ画像の名前を変更することを検討するとよいでしょう。 +[source, bash, role="content-editable"] +---- +docker tag OLD_IMAGE_NAME NEW_IMAGE_NAME +---- +==== + +=== JupyterHub で Teradata Jupyter Dockerイメージを使用する + +1. Teradata Jupyter Dockerイメージを JupyterHub クラスタで直接使用するには、 link:https://zero-to-jupyterhub.readthedocs.io/en/latest/jupyterhub/customizing/user-environment.html#choose-and-use-an-existing-docker-image[JupyterHubドキュメント] の説明に従ってオーバーライド ファイルを変更します。 `REGISTRY_URL` と `VERSION` を上記の手順で適切な値に置き換えてください。 ++ +[source, yaml, role="content-editable"] +---- +singleuser: + image: + name: REGISTRY_URL/teradatajupyterlabext_VERSION + tag: latest +---- +2. link:https://zero-to-jupyterhub.readthedocs.io/en/latest/jupyterhub/customizing/extending-jupyterhub.html#applying-configuration-changes[JupyterHub ドキュメント] に記載されているように、クラスタに変更を適用します。 ++ +TIP: 複数のプロファイルを使用することで、ユーザーがJupyterHubにログインする際に使用する画像を選択することができます。複数のプロファイルを設定する詳細な手順と例については、link:https://zero-to-jupyterhub.readthedocs.io/en/latest/jupyterhub/customizing/user-environment.html#using-multiple-profiles-to-let-users-select-their-environment[JupyterHub ドキュメント] を参照してください。 + +=== Teradata Jupyter Dockerイメージをカスタマイズする + +Teradata Jupyter Dockerイメージにバンドルされていないパッケージやノートブックが必要な場合、Teradataイメージをベースイメージとして使用し、その上に新しいイメージをビルドすることをお勧めします。 + +以下は、Teradataイメージの上にビルドし、追加のパッケージとノートブックを追加するDockerfileの例です。Dockerfileを使用して新しいDockerイメージを構築し、イメージを指定のレジストリにプッシュし、新しいイメージをシングルユーザーイメージとして使用するために上記のようにオーバーライドファイルを変更し、上記のようにクラスタに変更を適用します。 `REGISTRY_URL` と `VERSION` は適切な値に置き換えてください。 +[source, Dockerfile, role="content-editable"] +---- +FROM REGISTRY_URL/teradatajupyterlabext_VERSION:latest + +# install additional packages +RUN pip install --no-cache-dir astropy + +# copy notebooks +COPY notebooks/. /tmp/JupyterLabRoot/DemoNotebooks/ +---- + +== 既存のDockerイメージをカスタマイズして Teradata 拡張機能を含める + +Teradata SQLカーネルとエクステンションは、現在使用している既存のイメージに含めることができます。 + +1. link:https://downloads.teradata.com/download/tools/vantage-modules-for-jupyter[Vantage Modules for Jupyter] ページから、zip圧縮されたTeradata Jupyter extensionsパッケージバンドルがダウンロードできます。既存の +DockerイメージがLinuxベースである場合は、Linux版のダウンロードを使用します。そうでない場合は、使用しているプラットフォーム用にダウンロードします。.zipファイルには、Teradata SQL Kernel、エクステンション、サンプル +ノートブックが含まれています。 +2. バンドル ファイルを作業ディレクトリに解凍します。 +3. 以下は、既存のDockerイメージにTeradata Jupyterエクステンションを追加するためのDockerfileの例です。Dockerfileを使用して新しいDockerイメージを構築し、イメージを指定のレジストリにプッシュし、新しいイメージをシングルユーザーイメージとして使用するために上記のようにオーバーライドファイルを変更し、変更をクラスタに適用します。 ++ +[source, Dockerfile, id="jupyterhub_first_run", role="content-editable emits-gtm-events"] +---- +FROM REGISTRY_URL/your-existing-image:tag +ENV NB_USER=jovyan \ + HOME=/home/jovyan \ + EXT_DIR=/opt/teradata/jupyterext/packages + +USER root + +############################################################## +# Install kernel and copy supporting files +############################################################## + +# Copy the kernel +COPY ./teradatakernel /usr/local/bin +RUN chmod 755 /usr/local/bin/teradatakernel + +# Copy directory with kernel.json file into image +COPY ./teradatasql teradatasql/ + +############################################################## +# Switch to user jovyan to copy the notebooks and license files. +############################################################## + +USER $NB_USER + +# Copy notebooks +COPY ./notebooks/ /tmp/JupyterLabRoot/TeradataSampleNotebooks/ + +# Copy license files +COPY ./ThirdPartyLicenses /tmp/JupyterLabRoot/ThirdPartyLicenses/ + +USER root + +# Install the kernel file to /opt/conda jupyter lab instance +RUN jupyter kernelspec install ./teradatasql --prefix=/opt/conda + +############################################################## +# Install Teradata extensions +############################################################## + +COPY ./teradata_*.tgz $EXT_DIR + +WORKDIR $EXT_DIR + +RUN jupyter labextension install --no-build teradata_database* && \ + jupyter labextension install --no-build teradata_resultset* && \ + jupyter labextension install --no-build teradata_sqlhighlighter* && \ + jupyter labextension install --no-build teradata_connection_manager* && \ + jupyter labextension install --no-build teradata_preferences* && \ + jupyter lab build --dev-build=False --minimize=False && \ + rm -rf * + +WORKDIR $HOME + +# Give back ownership of /opt/conda to jovyan +RUN chown -R jovyan:users /opt/conda + +# Jupyter will create .local directory +RUN rm -rf $HOME/.local +---- +4. Teradata package for PythonとTeradata package for Rはオプションでインストールすることができます。詳細については、以下のページを参照してください。 +* link:https://downloads.teradata.com/download/aster/teradata-python-package-teradataml[Teradata Package for Python - teradataml のダウンロード ページ] +* link:https://downloads.teradata.com/download/aster/tdplyr-download-page[Teradata Package for R - tdplyr のダウンロード ページ] + +== さらに詳しく +* link:https://teradata.github.io/jupyterextensions[Teradata Jupyter 拡張機能 Web サイト] +* link:https://docs.teradata.com/r/KQLs1kPXZ02rGWaS9Ktoww/root[Jupyter用Teradata Vantage™モジュールインストールガイド] +* link:https://docs.teradata.com/r/1YKutX2ODdO9ppo_fnguTA/root[Python用Teradata®パッケージユーザガイド] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/general/ml.adoc b/modules/ROOT/pages/ja/general/ml.adoc new file mode 100644 index 000000000..6cd38962e --- /dev/null +++ b/modules/ROOT/pages/ja/general/ml.adoc @@ -0,0 +1,270 @@ += データベース分析関数を使用したVantageでのMLモデルのトレーニング +:page-lang: ja +:experimental: +:page-author: Krutik Pathak +:page-email: krutik.pathak@teradata.com +:page-revdate: 2023 年 11 月 21 日 +:description: Teradata Vantage を離れることなく ML モデルをトレーニングします - Vantageデータベース分析関数を使用して ML モデルを作成します。 +:keywords: データ ウェアハウス、データベース分析関数、コンピューティング ストレージ分離、Teradata、Vantage、クラウド データ プラットフォーム、オブジェクト ストレージ、ビジネス インテリジェンス、エンタープライズ分析、AI/ML + +== 概要 + +機械学習モデルのアイデアをすぐに検証したい場合があります。モデルの型を念頭に置いています。まだ ML パイプラインを運用する必要はありません。思い描いていたリレーションシップが存在するかどうかをテストしたいだけです。また、実働デプロイメントでも、MLops による継続的な再学習が必要ない場合もあります。このような場合、特徴量エンジニアリングにデータベース分析関数を使用し、さまざまな ML モデルをトレーニングし、モデルをスコア化し、さまざまなモデル評価関数でモデルを評価できます。 + +== 前提条件 + +Teradata Vantageインスタンスへのアクセス。 + +include::../partials/vantage_clearscape_analytics.adoc[] + +== サンプルデータをロードする + +この例では、`val` データベースのサンプルデータを使用します。`accounts`、`customer`、`16transactions` のテーブルを使用します。この過程でいくつかのテーブルを作成しますが、`val` データベースにテーブルを作成する際に問題が発生する可能性があるため、独自のデータベース `td_analytics_functions_demo` を作成しましょう。 + +[source, teradata-sql] +---- +CREATE DATABASE td_analytics_functions_demo +AS PERMANENT = 110e6; +---- + +NOTE: データベース分析関数を使用するには、データベースに対する CREATE TABLE アクセス権が必要です。 + + `val` データベース内の対応するテーブルから、データベース `td_analytics_functions_demo` に `accounts`、`customer` 、および `transactions` テーブルを作成しましょう。 + +[source, teradata-sql] +---- +DATABASE td_analytics_functions_demo; + +CREATE TABLE customer AS ( +SELECT * FROM val.customer +) WITH DATA; + +CREATE TABLE accounts AS ( +SELECT * FROM val.accounts +) WITH DATA; + +CREATE TABLE transactions AS ( +SELECT * FROM val.transactions +) WITH DATA; +---- + +== サンプルデータを理解する + +サンプルテーブルが `td_analytics_functions_demo` にロードされたので、データを調べてみましょう。これは、銀行の顧客(700行ほど)、口座(1400行ほど)、取引(77,000行ほど)の単純で架空のデータセットです。これらは以下のように相互に関連しています。 + +image::banking.model.png[銀行モデル, width=100%] + +このハウツーの後半では、テーブル内のクレジット カードに関連しないすべての変数に基づいて、銀行顧客のクレジット カードの月平均残高を予測するモデルを構築できるかどうかを検討していきます。 + +== データセットを準備する + +3つの異なるテーブルにデータがあり、それらを結合してフィーチャを作成します。まず、結合されたテーブルを作成します。 + +[source, teradata-sql, id="ml_first_query", role="content-editable emits-gtm-events"] +---- +-- Create a consolidated joined_table from customer, accounts and transactions table +CREATE TABLE td_analytics_functions_demo.joined_table AS ( + SELECT + T1.cust_id AS cust_id + ,MIN(T1.income) AS tot_income + ,MIN(T1.age) AS tot_age + ,MIN(T1.years_with_bank) AS tot_cust_years + ,MIN(T1.nbr_children) AS tot_children + ,MIN(T1.marital_status)AS marital_status + ,MIN(T1.gender) AS gender + ,MAX(T1.state_code) AS state_code + ,AVG(CASE WHEN T2.acct_type = 'CK' THEN T2.starting_balance+T2.ending_balance ELSE 0 END) AS ck_avg_bal + ,AVG(CASE WHEN T2.acct_type = 'SV' THEN T2.starting_balance+T2.ending_balance ELSE 0 END) AS sv_avg_bal + ,AVG(CASE WHEN T2.acct_type = 'CC' THEN T2.starting_balance+T2.ending_balance ELSE 0 END) AS cc_avg_bal + ,AVG(CASE WHEN T2.acct_type = 'CK' THEN T3.principal_amt+T3.interest_amt ELSE 0 END) AS ck_avg_tran_amt + ,AVG(CASE WHEN T2.acct_type = 'SV' THEN T3.principal_amt+T3.interest_amt ELSE 0 END) AS sv_avg_tran_amt + ,AVG(CASE WHEN T2.acct_type = 'CC' THEN T3.principal_amt+T3.interest_amt ELSE 0 END) AS cc_avg_tran_amt + ,COUNT(CASE WHEN ((EXTRACT(MONTH FROM T3.tran_date) + 2) / 3) = 1 THEN T3.tran_id ELSE NULL END) AS q1_trans_cnt + ,COUNT(CASE WHEN ((EXTRACT(MONTH FROM T3.tran_date) + 2) / 3) = 2 THEN T3.tran_id ELSE NULL END) AS q2_trans_cnt + ,COUNT(CASE WHEN ((EXTRACT(MONTH FROM T3.tran_date) + 2) / 3) = 3 THEN T3.tran_id ELSE NULL END) AS q3_trans_cnt + ,COUNT(CASE WHEN ((EXTRACT(MONTH FROM T3.tran_date) + 2) / 3) = 4 THEN T3.tran_id ELSE NULL END) AS q4_trans_cnt + FROM Customer AS T1 + LEFT OUTER JOIN Accounts AS T2 + ON T1.cust_id = T2.cust_id + LEFT OUTER JOIN Transactions AS T3 + ON T2.acct_nbr = T3.acct_nbr +GROUP BY T1.cust_id) WITH DATA UNIQUE PRIMARY INDEX (cust_id); +---- + +次に、データがどのように見えるかを見てみましょう。データセットには、カテゴリ特徴この場合、従属変数は顧客の平均クレジット カード残高である `cc_avg_bal` です。 + +image::joined_table_ml.png[結合されたテーブル, width=100%] + +== 特徴量エンジニアリング + +データを見ると、`cc_avg_bal`を予測するために考慮できる特徴がいくつかあることがわかります。 + +=== TD_OneHotEncodingFit + +このデータセットには、`gender`、`marital status`、`state code` などのカテゴリ機能がある。データベース分析関数 link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Analytic-Functions/Feature-Engineering-Transform-Functions/TD_OneHotEncodingFit[TD_OneHotEncodingFit,window="_blank" ] を 利用して、カテゴリをワンホット数値ベクトルにエンコードします。 + +[source, teradata-sql] +---- +CREATE VIEW td_analytics_functions_demo.one_hot_encoding_joined_table_input AS ( + SELECT * FROM TD_OneHotEncodingFit( + ON td_analytics_functions_demo.joined_table AS InputTable + USING + IsInputDense ('true') + TargetColumn ('gender','marital_status','state_code') + CategoryCounts(2,4,33) +Approach('Auto') +) AS dt +); +---- + +=== TD_ScaleFit + +データを見ると、`tot_income`、`tot_age`、`ck_avg_bal` などのいくつかの列は、異なる範囲の値を持っています。勾配降下法などの最適化アルゴリズムの場合、より高速な収束、スケールの一貫性、およびモデルのパフォーマンスの向上のために、値を同じスケールに正規化することが重要です。 link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Analytic-Functions/Feature-Engineering-Transform-Functions/TD_ScaleFit[TD_ScaleFit, window="_blank"] 関数を利用して、さまざまなスケールで値を正規化します。 + +[source, teradata-sql] +---- + CREATE VIEW td_analytics_functions_demo.scale_fit_joined_table_input AS ( + SELECT * FROM TD_ScaleFit( + ON td_analytics_functions_demo.joined_table AS InputTable + USING + TargetColumns('tot_income','q1_trans_cnt','q2_trans_cnt','q3_trans_cnt','q4_trans_cnt','ck_avg_bal','sv_avg_bal','ck_avg_tran_amt', 'sv_avg_tran_amt', 'cc_avg_tran_amt') + ScaleMethod('RANGE') +) AS dt +); +---- + +=== TD_ColumnTransformer + +Teradataのデータベース分析関数は、通常、データ変換のためにペアで動作します。最初のステップは、データの "fitting" に専念します。次に、第2の関数は、フィッティングプロセスから導出されたパラメータを利用して、データに対して実際の変換を実行します。 link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Analytic-Functions/Feature-Engineering-Transform-Functions/TD_ColumnTransformer[TD_ColumnTransformer, window="_blank" ] は、 FIT テーブルを関数に受け取り、入力テーブルの列を 1 回の操作で変換します。 + +[source, teradata-sql] +---- +-- Using a consolidated transform function +CREATE TABLE td_analytics_functions_demo.feature_enriched_accounts_consolidated AS ( +SELECT * FROM TD_ColumnTransformer( +ON joined_table AS InputTable +ON one_hot_encoding_joined_table_input AS OneHotEncodingFitTable DIMENSION +ON scale_fit_joined_table_input AS ScaleFitTable DIMENSION +) as dt +) WITH DATA; +---- + +変換を実行すると、以下のイメージに示すように、カテゴリ列がone-hot エンコードされ、数値がスケーリングされたことがわかります。たとえば、`tot_income` は[0,1]の範囲にあり、`gender` は`gender_0`、`gender_1`、`gender_other` に one-hot エンコードされます。 + +image::ml_tot_income_scaled.png[合計所得金額換算, width=50%] + +image::ml_gender_hot_encoded.png[ジェンダー ワンホット エンコード, width=50%] + +== テスト分割のトレーニング + +スケーリングおよびエンコードされた特徴を備えたデータセットの準備ができたので、データセットをトレーニング (75%) 部分とテスト (25%) 部分に分割しましょう。Teradata のデータベース分析関数には、データセットの分割に利用する link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Analytic-Functions/Model-Evaluation-Functions/TD_TrainTestSplit[TD_TrainTestSplit, window="_blank"] 関数が用意されています。 + +[source, teradata-sql] +---- +-- Train Test Split on Input table +CREATE VIEW td_analytics_functions_demo.train_test_split AS ( +SELECT * FROM TD_TrainTestSplit( +ON td_analytics_functions_demo.feature_enriched_accounts_consolidated AS InputTable +USING +IDColumn('cust_id') +trainSize(0.75) +testSize(0.25) +Seed (42) +) AS dt +); +---- + +以下のイメージからわかるように、この関数は新しい列 `TD_IsTrainRow` を追加します。 + +image::ml_train_col.png[行列のトレーニング, width=100%] + +`TD_IsTrainRow` を使用して、トレーニング用とテスト用の2つのテーブルを作成します。 + +[source, teradata-sql] +---- +-- Creating Training Table +CREATE TABLE td_analytics_functions_demo.training_table AS ( + SELECT * FROM td_analytics_functions_demo.train_test_split + WHERE TD_IsTrainRow = 1 +) WITH DATA; + +-- Creating Testing Table +CREATE TABLE td_analytics_functions_demo.testing_table AS ( + SELECT * FROM td_analytics_functions_demo.train_test_split + WHERE TD_IsTrainRow = 0 +) WITH DATA; +---- + +== 一般化線形モデルを使用したトレーニング + +ここで 、link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Analytic-Functions/Model-Training-Functions/TD_GLM[TD_GLM, window="_blank"] データベース分析関数を使用して、トレーニング データセットでトレーニングします。`TD_GLM` 関数は、データセットに対して回帰および分類の分析を実行する一般化線形モデル(GLM)です。ここでは、 `tot_income`、 `ck_avg_bal`、`cc_avg_tran_amt`、婚姻ステータス、性別、ステータスのワンホット エンコードされた値など、多数の入力列を使用しています。 `cc_avg_bal` は依存列または応答列であり、連続しているため、回帰問題となります。回帰には `Family` として `Gaussian` 、分類には `Binomial` として使用します。 + +パラメータ `Tolerance` は、反復を停止するためにモデルの予測精度に必要な最小限の改善を示し、 `MaxIterNum` は認証される反復の最大数を示します。モデルは、最初に満たされた条件に基づいてトレーニングを終了します。例えば、以下の例では、58 回の反復後のモデルは `CONVERGED` になります。 + +[source, teradata-sql] +---- +-- Training the GLM_Model with Training Dataset +CREATE TABLE td_analytics_functions_demo.GLM_model_training AS ( +SELECT * FROM TD_GLM ( + ON td_analytics_functions_demo.training_table AS InputTable + USING + InputColumns('tot_income','ck_avg_bal','cc_avg_tran_amt','[19:26]') + ResponseColumn('cc_avg_bal') + Family ('Gaussian') + MaxIterNum (300) + Tolerance (0.001) + Intercept ('true') +) AS dt +) WITH DATA; +---- + +image::ml_model_trained.png[トレーニングされたGLM, width=100%] + +== テストデータセットのスコアリング + +次に、モデル `GLM_model_training` を使用して 、link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Analytic-Functions/Model-Scoring-Functions/TD_GLMPredict[TD_GLMPredict,window="_blank"] データベース分析関数を使用してテスト データセット `testing_table` をスコアリングします。 + +[source, teradata-sql] +---- +-- Scoring the GLM_Model with Testing Dataset +CREATE TABLE td_analytics_functions_demo.GLM_model_test_prediction AS ( +SELECT * from TD_GLMPredict ( +ON td_analytics_functions_demo.testing_table AS InputTable +ON td_analytics_functions_demo.GLM_model_training AS ModelTable DIMENSION +USING +IDColumn ('cust_id') +Accumulate('cc_avg_bal') +) AS dt +) WITH DATA; +---- + +image::ml_model_scored.png[スコア付けされたGLM, width=100%] + +== モデル評価 + +最後に、スコア化された結果に基づいてモデルを評価します。ここでは link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Analytic-Functions/Model-Evaluation-Functions/TD_RegressionEvaluator[TD_RegressionEvaluator, window="_blank"] 関数を使用しています。モデルは、 `R2`、 `RMSE`、 `F_score` などのパラメータに基づいて評価できます。 + +[source, teradata-sql] +---- +-- Evaluating the model +SELECT * FROM TD_RegressionEvaluator( +ON td_analytics_functions_demo.GLM_model_test_prediction AS InputTable +USING +ObservationColumn('cc_avg_bal') +PredictionColumn('prediction') +Metrics('RMSE','MAE','R2') +) AS dt; +---- + +image::ml_model_evaluated.png[評価済みGLM, width=100%] + +NOTE: このハウツーの目的は、特徴量エンジニアリングを説明することではなく、Vantage でさまざまなデータベース分析関数を活用する方法を示すことです。モデルの結果は最適ではない可能性があり、最適なモデルを作成するプロセスはこの記事のスコープ外です。 + +== まとめ + +このクイック スタートでは、Teradata Database Analytic 関数を使用して ML モデルを作成する方法を学習しました。`val` データベースから `customer`、`accounts`、 `transactions` のデータを使用して独自のデータベース `td_analytics_functions_demo` を構築しました。`TD_OneHotEncodingFit`、`TD_ScaleFit`、`TD_ColumnTransformer` を使用して列を変換することにより、特徴量エンジニアリングを実行しました。次に、テスト分割のトレーニングに `TD_TrainTestSplit` を使用しました。`TD_GLM` モデルを使用してトレーニングデータセットをトレーニングし、テストデータセットをスコア化しました。最後に、`TD_RegressionEvaluator` 機能を用いてスコア化した結果を評価しました。 + +== さらに詳しく +* link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Analytic-Functions/Introduction-to-Analytics-Database-Analytic-Functions[Vantage データベース分析関数ユーザー ガイド,window="_blank"] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/general/mule.jdbc.example.adoc b/modules/ROOT/pages/ja/general/mule.jdbc.example.adoc new file mode 100644 index 000000000..93c10261d --- /dev/null +++ b/modules/ROOT/pages/ja/general/mule.jdbc.example.adoc @@ -0,0 +1,141 @@ += Mule サービスから Teradata Vantage をクエリMule サービスから Teradata Vantage をクエリーするする方法 +:page-lang: ja +:experimental: +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2023 年 8 月 30 日 +:description: Mule サービスから Teradata Vantage をクエリーします。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, Mule, JDBC, microservices + +== 概要 + +この例は、Mulesoft MySQL サンプル プロジェクトのクローンです。 +Teradata データベースにクエリーを実行し、REST API 経由で結果を公開する方法を示します。 + +== 前提条件 + +* Mulesoft Anypoint Studio。https://www.mulesoft.com/platform/studio から30日間のTryアルをダウンロードできる。 +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] + +== サービスの例 + +このサンプル Mule サービスは、HTTP リクエストを受け取り、Teradata Vantage データベースにクエリーを実行し、結果を JSON 形式で返します。 + +image::flow.png[サービス フロー, width=500] + +Mule HTTP コネクタは、次の形式の HTTP GET リクエストをリッスンします。`http://:8081/?lastname=`. +HTTP コネクタは、メッセージ プロパティの 1 つとして `` の値をデータベース コネクタに渡します。 +データベース コネクタは、この値を抽出して以下の SQL クエリーで使用するように構成されています。 + +[source,sql] +---- +SELECT * FROM hr.employees WHERE LastName = :lastName +---- + +ご覧のとおり、HTTP コネクタに渡されたパラメータの値を参照してパラメータ化されたクエリーを使用しています。 +したがって、HTTP コネクタが http://localhost:8081/?lastname=Smithを受信すると、SQL クエリーは以下のようになります。 + +[source,sql] +---- +SELECT * FROM employees WHERE last_name = Smith +---- + +データベース コネクタは、データベース サーバーに SQL クエリーを実行するように指示し、クエリーの結果を取得して、その結果を JSON に変換する変換メッセージ プロセッサに渡します。 +HTTP コネクタはリクエスト/応答として構成されているため、結果は元の HTTP クライアントに返されます。 + +== セットアップ + +. `Teradata/mule-jdbc-example` リポジトリのクローンを作成します。 ++ +[source,bash] +---- + git clone https://github.com/Teradata/mule-jdbc-example +---- + +. `src/main/mule/querying-a-teradata-database.xml` を編集し、Teradata接続文字列 `jdbc:teradata:///user=,password=` を検索し、Teradata接続パラメータを使用環境に合わせて置換します。 + +[NOTE] +==== +ClearScape Analytics Experience 経由で Vantage インスタンスにアクセスできるようにする場合は、 を ClearScape Analytics Experience 環境のホスト URL に置き換える必要があります。さらに、ClearScape Analytics 環境のユーザー名とパスワードを反映するように「ユーザー」と「パスワード」を更新する必要があります。 +==== + +. Vantageインスタンスでサンプルデータベースを作成します。 +サンプルデータを入力します。 ++ +[source, sql, id="mulesoft_load_data", role="emits-gtm-events"] +---- + -- create database + CREATE DATABASE HR + AS PERMANENT = 60e6, SPOOL = 120e6; + + -- create table + CREATE SET TABLE HR.Employees ( + GlobalID INTEGER, + FirstName VARCHAR(30), + LastName VARCHAR(30), + DateOfBirth DATE FORMAT 'YYYY-MM-DD', + JoinedDate DATE FORMAT 'YYYY-MM-DD', + DepartmentCode BYTEINT + ) + UNIQUE PRIMARY INDEX ( GlobalID ); + + -- insert a record + INSERT INTO HR.Employees ( + GlobalID, + FirstName, + LastName, + DateOfBirth, + JoinedDate, + DepartmentCode + ) VALUES ( + 101, + 'Test', + 'Testowsky', + '1980-01-05', + '2004-08-01', + 01 + ); +---- + +. Anypoint Studioでプロジェクトを開きます。 + ** Anypoint Studio に入ったら、 `Import projects..`をクリックします。 ++ +image:anypoint.import.projects.png[Anypointインポートプロジェクトメニュー, width=500] + + ** `Anypoint Studio project from File System` を選択します: ++ +image:select.import.option.png[Anypoint インポート オプション, width=500] + + ** git リポジトリのクローンを作成したディレクトリを `プロジェクトルート` として使用します。その他の設定はデフォルトのままにしておきます。 + +== 実行する + +. `Run` メニューを使用して、Anypoint Studio でサンプル アプリケーションを実行します。 +これでプロジェクトがビルドされ、実行されます。1分ほどかかります。 +. Web ブラウザに移動し、以下のリクエストを送信します。 http://localhost:8081/?lastname=Testowsky。 ++ +以下の JSON 応答を取得する必要があります。 ++ +[source,json] +---- +[ + { + "JoinedDate": "2004-08-01T00:00:00", + "DateOfBirth": "1980-01-05T00:00:00", + "FirstName": "Test", + "GlobalID": 101, + "DepartmentCode": 1, + "LastName": "Testowsky" + } +] +---- + +== さらに詳しく + +* マシン上でデータベースコネクタを設定する方法の詳細については、この http://www.mulesoft.org/documentation/display/current/Database+Connector[ドキュメント] を参照してください。 +* データベースコネクタのプレーンの http://www.mulesoft.org/documentation/display/current/Database+Connector+Reference[リファレンス資料] にアクセスしてください。 +* http://www.mulesoft.org/documentation/display/current/DataSense[DataSense] の詳細については、こちらをご覧ください。 + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/nos.adoc b/modules/ROOT/pages/ja/general/nos.adoc index bbee23ba9..4a970f409 100644 --- a/modules/ROOT/pages/ja/general/nos.adoc +++ b/modules/ROOT/pages/ja/general/nos.adoc @@ -15,14 +15,14 @@ Native Object Storage (NOS) は、AWS S3、Google GCS、Azure Blob、または Teradata Vantage インスタンスにアクセスする必要があります。NOS は、バージョン 17.10 以降、Vantage Express から Developer、DYI、Vantage as a Service までのすべての Vantage エディションで有効になります。 -#include::ROOT:partial$vantage_clearscape_analytics.adoc[] +include::../partials/vantage_clearscape_analytics.adoc[] == NOS でデータを探索する NOTE: 現在、NOS は CSV、JSON (配列または改行区切りとして)、および Parquet データ形式をサポートしています。 -データセットが CSV ファイルとして S3 バケットに保存されているとします。データセットを Vantage に取り込むかどうかを決定する前に、データセットを探索したいと考えています。このシナリオでは、 -米国地質調査所によって収集された河川流量データを含む、Teradata によって公開された公開データセットを使用します。バケットは https://td-usgs-public.s3.amazonaws.com/にあります。 +データセットが CSV ファイルとして S3 バケットに保存されているとします。データセットを Vantage に取り込むかどうかを決定する前に、データセットを探索したいと考えています。このシナリオでは、the +U.S. Geological Surveyによって収集された河川流量データを含む、Teradataによって公開された公開データセットを使用します。バケットは https://td-usgs-public.s3.amazonaws.com/ にあります。 まずはCSVデータのサンプルを見てみましょう。Vantage がバケットからフェッチする最初の 10 行を取得します。 @@ -148,7 +148,7 @@ Location GageHeight2 == NOS から Vantage にデータをロードする -オブジェクト ストレージのクエリーには時間がかかります。データが興味深いと判断し、より迅速に答えが得られるソリューションを使用してさらに分析を行いたい場合はどうすればよいでしょうか? 良いニュースは、NOS で返されたデータを `CREATE TABLE` ステートメントのソースとして使用できることです。 `CREATE TABLE` 権限があると仮定すると、次を実行できます: +オブジェクト ストレージのクエリーには時間がかかります。データが興味深いと判断し、より迅速に答えが得られるソリューションを使用してさらに分析を行いたい場合はどうすればよいでしょうか? 良いニュースは、NOS で返されたデータを `CREATE TABLE` 文のソースとして使用できることです。`CREATE TABLE` 権限があると仮定すると、次を実行できます。 IMPORTANT: このクエリは、前の手順でデータベース `河川流量` と `河川流量` という外部テーブルを作成したことを前提としています。 @@ -222,7 +222,7 @@ USING ( LOCATION('/s3/td-usgs-public.s3.amazonaws.com/CSVDATA/') ); == Vantage からオブジェクト ストレージにデータをエクスポートする -これまで、オブジェクト ストレージからのデータの読み取りとインポートについて説明してきました。SQL を使用して Vantage からオブジェクト ストレージにデータをエクスポートする方法があれば素晴らしいと思いませんか? これはまさに `WRITE_NOS` 関数の目的です。 `riverflow_native` テーブルからオブジェクト ストレージにデータをエクスポートしたいとします。次のクエリを使用してこれを行うことができます。 +ここまで、オブジェクト ストレージからのデータの読み取りとインポートについて説明してきました。SQL を使用して Vantage からオブジェクト ストレージにデータをエクスポートする方法があれば素晴らしいと思いませんか? これはまさに `WRITE_NOS` 機能のためのものです。`riverflow_native` テーブルからオブジェクト ストレージにデータをエクスポートする場合を考えてみましょう。以下のクエリーを使用してこれを行うことができます。 [source, teradata-sql] ---- @@ -239,7 +239,7 @@ SELECT * FROM WRITE_NOS ( ) AS d; ---- -ここでは、Vantage に `riverflow_native` からデータを取得し、 `parquet` 形式を使用して `YOUR-OBJECT-STORE-URI` バケットに保存するように指示します。データは `site_no` 属性でファイルに分割されます。ファイルは圧縮されます。 +ここでは、`riverflow_native` からデータを取得し、`parquet` 形式を使用して `YOUR-OBJECT-STORE-URI` バケットに保存するように Vantage に指示します。データは `site_no` 属性によってファイルに分割されます。ファイルは圧縮されます。 == まとめ diff --git a/modules/ROOT/pages/ja/general/odbc.ubuntu.adoc b/modules/ROOT/pages/ja/general/odbc.ubuntu.adoc new file mode 100644 index 000000000..847953802 --- /dev/null +++ b/modules/ROOT/pages/ja/general/odbc.ubuntu.adoc @@ -0,0 +1,91 @@ += UbuntuからのODBCによるVantageへの接続 +:page-lang: ja +:experimental: +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2022 年 1 月 5 日 +:description: UbuntuからのODBCによるVantageへの接続 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, odbc, ubuntu +:tabs: + +== 概要 + +このハウツーでは、Ubuntu上のTeradata VantageでODBCドライバを使用する方法を説明します。 + +== 前提条件 + +* Teradata Vantageインスタンスへのアクセス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] +* Ubuntuマシンへのルートアクセス。 + +== インストール + +. 依存関係のインストール: ++ +[source, bash] +---- +apt update && DEBIAN_FRONTEND=noninteractive apt install -y wget unixodbc unixodbc-dev iodbc python3-pip +---- +. Ubuntu 用の Teradata ODBC ドライバをインストールします。 ++ +[source, bash] +---- +wget https://downloads.teradata.com/download/cdn/connectivity/odbc/17.10.x.x/tdodbc1710__ubuntu_x8664.17.10.00.14-1.tar.gz \ + && tar -xzf tdodbc1710__ubuntu_x8664.17.10.00.14-1.tar.gz \ + && dpkg -i tdodbc1710/tdodbc1710-17.10.00.14-1.x86_64.deb +---- +. ODBCの設定は、`/etc/odbcinst.ini` を作成して、以下の内容で行います。 ++ +[source, odbc] +---- +[ODBC Drivers] +Teradata Database ODBC Driver 17.10=Installed + +[Teradata Database ODBC Driver 17.10] +Description=Teradata Database ODBC Driver 17.10 +Driver=/opt/teradata/client/17.10/odbc_64/lib/tdataodbc_sb64.so +---- + +== ODBCを使用する + +サンプルのPythonアプリケーションを使用して、インストールを検証します。次の内容の `test.py` ファイルを作成します。 +`DBCName=192.168.86.33;UID=dbc;PWD=dbc` を Teradata Vantage インスタンスの IP アドレス、ユーザー名、およびパスワードに置き換えます。 + +[source, python, id="odbc_first_run", role="content-editable emits-gtm-events"]] +---- +import pyodbc + +print(pyodbc.drivers()) + +cnxn = pyodbc.connect('DRIVER={Teradata Database ODBC Driver 17.10};DBCName=192.168.86.33;UID=dbc;PWD=dbc;') +cursor = cnxn.cursor() + +cursor.execute("SELECT CURRENT_DATE") +for row in cursor.fetchall(): + print(row) +EOF +---- + +テストアプリケーションを実行します。 + +[source, bash] +---- +python3 test.py +---- + +以下のような出力が得られるはずです。 + +---- +['ODBC Drivers', 'Teradata Database ODBC Driver 17.10'] +(datetime.date(2022, 1, 5), ) +---- + +== まとめ + +このハウツーでは、Ubuntu上のTeradata VantageでODBCを使用する方法について説明しました。このハウツーでは、ODBC Teradataドライバと依存関係をインストールする方法を説明します。また、ODBCを設定し、シンプルなPythonアプリケーションで接続を検証する方法を示します。 + +== さらに詳しく +* link:https://docs.teradata.com/search/all?query=ODBC+Driver+for+Teradata+User+Guide&filters=ft%3AisBook~%22true%22&sort=last_update[ODBC Driver for Teradata® ユーザー ガイド] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/perform-time-series-analysis-using-teradata-vantage.adoc b/modules/ROOT/pages/ja/general/perform-time-series-analysis-using-teradata-vantage.adoc new file mode 100644 index 000000000..601c72ecf --- /dev/null +++ b/modules/ROOT/pages/ja/general/perform-time-series-analysis-using-teradata-vantage.adoc @@ -0,0 +1,251 @@ += Teradata Vantageを使用した時系列解析の実行 +:page-lang: ja +:experimental: +:page-author: Remi Turpaud +:page-email: remi.turpaud@teradata.com +:page-revdate: 2022 年 4 月 15 日 +:description: Teradata Vantageを使用した時系列解析の実行 +:keywords: data warehouses, analytics, teradata, vantage, time series, business intelligence, enterprise analytics, time series, time series analysis + +== 概要 + +時系列は、時間順にインデックス付けされた一連のデータポイントです。これは、モノのインターネットを含むがこれに限定されない広範なアプリケーションやデバイスによって継続的に生成され、収集されるデータです。Teradata Vantage は、時系列データ分析を簡略化するためのさまざまな機能を提供します。 + +== 前提条件 + +Teradata Vantageインスタンスへのアクセス。時系列機能と NOS は、バージョン 17.10 以降、Vantage Express から Developer、DYI、Vantage as a Service までのすべての Vantage エディションで有効になります。 + +include::../partials/vantage_clearscape_analytics.adoc[] + +== Vantage NOSを使用してAWS S3からのデータセットをインポートする + +サンプル データ セットは S3 バケットで利用でき、Vantage NOS を使用して Vantage から直接アクセスできます。データは CSV 形式なので、時系列分析のために Vantage に取り込んでみましょう。 + +まずデータを見てみよう。以下のクエリーは S3 バケットから 10 行をフェッチします。 + +[source, teradata-sql, id="time_series_first_query", role="emits-gtm-events"] +---- +SELECT TOP 10 * FROM ( + LOCATION='/s3/nos-demo-apj.s3.amazonaws.com/taxi/2014/11/data_2014-11-25.csv' +) AS d; +---- + +得られたものは以下のとおりです。 + +---- + +Location vendor_id pickup_datetime dropoff_datetime passenger_count trip_distance pickup_longitude pickup_latitude rate_code store_and_fwd_flag dropoff_longitude dropoff_latitude payment_type fare_amount surcharge mta_tax tip_amount tolls_amount total_amount +------------------------------------------------------------------ --------- ----------------- ----------------- ---------------- -------------- ----------------- ---------------- ---------- ------------------- ------------------ ----------------- ------------- ------------ ---------- -------- ---------- ------------ ------------ +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 15:18 25/11/2013 15:33 1 1 -73.992423 40.749517 1 N -73.98816 40.746557 CRD 10 0 0.5 2.22 0 12.72 +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 5:34 25/11/2013 5:48 1 3.6 -73.971555 40.794548 1 N -73.975399 40.755404 CRD 14.5 0.5 0.5 1 0 16.5 +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 8:31 25/11/2013 8:55 1 5.9 -73.94764 40.830465 1 N -73.972323 40.76332 CRD 21 0 0.5 3 0 24.5 +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 7:00 25/11/2013 7:04 1 1.2 -73.983357 40.767193 1 N -73.978394 40.75558 CRD 5.5 0 0.5 1 0 7 +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 15:24 25/11/2013 15:30 1 0.5 -73.982313 40.764827 1 N -73.982129 40.758889 CRD 5.5 0 0.5 3 0 9 +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 15:53 25/11/2013 16:00 1 0.6 -73.978104 40.752966 1 N -73.985756 40.762685 CRD 6 1 0.5 1 0 8.5 +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 6:49 25/11/2013 7:04 1 3.8 -73.976005 40.744481 1 N -74.016063 40.717298 CRD 14 0 0.5 2.9 0 17.4 +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 21:20 25/11/2013 21:26 1 1.1 -73.946371 40.775369 1 N -73.95309 40.785103 CRD 6.5 0.5 0.5 1.5 0 9 +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 10:02 25/11/2013 10:17 1 2.2 -73.952625 40.780962 1 N -73.98163 40.777978 CRD 12 0 0.5 2 0 14.5 +/S3/s3.amazonaws.com/nyc-tlc/csv_backup/yellow_tripdata_2013-11.csv CMT 25/11/2013 9:43 25/11/2013 10:02 1 3.3 -73.982013 40.762507 1 N -74.006854 40.719582 CRD 15 0 0.5 2 0 17.5 + +---- + +完全なデータを抽出し、さらに分析するためにVantageに取り込む。 + +[source, teradata-sql] +---- + +CREATE TABLE trip +( + vendor_id varchar(10) character set latin NOT casespecific, + rate_code integer, + pickup_datetime timestamp(6), + dropoff_datetime timestamp(6), + passenger_count smallint, + trip_distance float, + pickup_longitude float, + pickup_latitude float, + dropoff_longitude float, + dropoff_latitude float +) +NO PRIMARY INDEX ; + + + +INSERT INTO trip +SELECT TOP 200000 vendor_id , + rate_code, + pickup_datetime, + dropoff_datetime , + passenger_count, + trip_distance , + pickup_longitude, + pickup_latitude , + dropoff_longitude , + dropoff_latitude FROM ( + LOCATION='/s3/nos-demo-apj.s3.amazonaws.com/taxi/2014/11/data_2014-11-25.csv' +) AS d; + +---- + +結果: + +---- +200000 rows affected. +---- + +Vantageは、S3からデータを取得し、作成したばかりのトリップテーブルに挿入します。 + +== 基本的な時系列演算 + +データセットに慣れたので、Vantage機能を使用してデータセットを迅速に分析できます。まず、11 月に時間ごとに何人の乗客が乗車しているかを識別しましょう。 + +[source, teradata-sql] +---- + +SELECT TOP 10 + $TD_TIMECODE_RANGE + ,begin($TD_TIMECODE_RANGE) time_bucket_start + ,sum(passenger_count) passenger_count +FROM trip +WHERE extract(month from pickup_datetime)=11 +GROUP BY TIME(HOURS(1)) +USING TIMECODE(pickup_datetime) +ORDER BY 1; + +---- + +link:https://www.docs.teradata.com/r/Teradata-VantageTM-Time-Series-Tables-and-Operations/July-2021/Time-Series-Aggregates-and-SELECT-Extensions/GROUP-BY-TIME-Clause[GROUP BY TIME]についてさらに読む。 + +結果: + +---- +TIMECODE_RANGE time_bucket_start passenger_count +--------------------------------------------------------- --------------------------------- ---------------- +(2013-11-04 11:00:00.000000, 2013-11-04 12:00:00.000000) 2013-11-04 11:00:00.000000-05:00 4 +(2013-11-04 12:00:00.000000, 2013-11-04 13:00:00.000000) 2013-11-04 12:00:00.000000-05:00 2 +(2013-11-04 14:00:00.000000, 2013-11-04 15:00:00.000000) 2013-11-04 14:00:00.000000-05:00 5 +(2013-11-04 15:00:00.000000, 2013-11-04 16:00:00.000000) 2013-11-04 15:00:00.000000-05:00 2 +(2013-11-04 16:00:00.000000, 2013-11-04 17:00:00.000000) 2013-11-04 16:00:00.000000-05:00 9 +(2013-11-04 17:00:00.000000, 2013-11-04 18:00:00.000000) 2013-11-04 17:00:00.000000-05:00 11 +(2013-11-04 18:00:00.000000, 2013-11-04 19:00:00.000000) 2013-11-04 18:00:00.000000-05:00 41 +(2013-11-04 19:00:00.000000, 2013-11-04 20:00:00.000000) 2013-11-04 19:00:00.000000-05:00 2791 +(2013-11-04 20:00:00.000000, 2013-11-04 21:00:00.000000) 2013-11-04 20:00:00.000000-05:00 15185 +(2013-11-04 21:00:00.000000, 2013-11-04 22:00:00.000000) 2013-11-04 21:00:00.000000-05:00 27500 + + +---- + +はい、これは、時間から時間を抽出して集計することによっても実現できる。これは追加のコード/作業であるが、時系列固有の機能がなくても実行できます。 + +しかし、ここでさらに一歩進んで、11 月に何人の乗客が乗車しているか、またベンダー別の 15 分ごとの平均移動所要期間はどれくらいかを識別してみましょう。 + +[source, teradata-sql] +---- +SELECT TOP 10 + $TD_TIMECODE_RANGE, + vendor_id, + SUM(passenger_count), + AVG((dropoff_datetime - pickup_datetime ) MINUTE (4)) AS avg_trip_time_in_mins +FROM trip +GROUP BY TIME (MINUTES(15) AND vendor_id) +USING TIMECODE(pickup_datetime) +WHERE EXTRACT(MONTH FROM pickup_datetime)=11 +ORDER BY 1,2; +---- + +結果: + +---- + +TIMECODE_RANGE vendor_id passenger_count avg_trip_time_in_mins +-------------------------------------------------------- ---------- ---------------- ---------------------- +(2013-11-04 11:00:00.000000, 2013-11-04 11:15:00.000000) VTS 1 16 +(2013-11-04 11:15:00.000000, 2013-11-04 11:30:00.000000) VTS 1 10 +(2013-11-04 11:45:00.000000, 2013-11-04 12:00:00.000000) VTS 2 6 +(2013-11-04 12:00:00.000000, 2013-11-04 12:15:00.000000) VTS 1 11 +(2013-11-04 12:15:00.000000, 2013-11-04 12:30:00.000000) VTS 1 57 +(2013-11-04 14:15:00.000000, 2013-11-04 14:30:00.000000) VTS 1 3 +(2013-11-04 14:30:00.000000, 2013-11-04 14:45:00.000000) VTS 2 19 +(2013-11-04 14:45:00.000000, 2013-11-04 15:00:00.000000) VTS 2 9 +(2013-11-04 15:15:00.000000, 2013-11-04 15:30:00.000000) VTS 1 11 +(2013-11-04 15:30:00.000000, 2013-11-04 15:45:00.000000) VTS 1 31 + + +---- + +これがVantageの時系列機能の威力です。複雑で面倒なロジックを必要とせず、時間ごとのグループ句を変更するだけで、ベンダーごとの平均移動期間を 15 分ごとに見つけることができます。これに基づいて移動平均を作成するのがいかに簡単かを見てみましょう。まず、次のようにビューを作成することから始めましょう。 + +[source, teradata-sql] +---- +REPLACE VIEW NYC_taxi_trip_ts as +SELECT + $TD_TIMECODE_RANGE time_bucket_per + ,vendor_id + ,sum(passenger_count) passenger_cnt + ,avg(CAST((dropoff_datetime - pickup_datetime MINUTE(4) ) AS INTEGER)) avg_trip_time_in_mins +FROM trip +GROUP BY TIME (MINUTES(15) and vendor_id) +USING TIMECODE(pickup_datetime) +WHERE extract(month from pickup_datetime)=11 + +---- + +15分の時系列で2時間の移動平均を計算してみよう。 2時間は8*15分の期間です。 + +[source, teradata-sql] +---- +SELECT * FROM MovingAverage ( + ON NYC_taxi_trip_ts PARTITION BY vendor_id ORDER BY time_bucket_per + USING + MAvgType ('S') + WindowSize (8) + TargetColumns ('passenger_cnt') +) AS dt +WHERE begin(time_bucket_per)(date) = '2014-11-25' +ORDER BY vendor_id, time_bucket_per; +---- + + +結果: + +---- + +time_bucket_per vendor_id passenger_cnt avg_trip_time_in_mins passenger_cnt_smavg +--------------------------------------------------------- -------------- ---------------------- -------------------- -------------------- +(2013-11-04 14:45:00.000000, 2013-11-04 15:00:00.000000) VTS 2 9 1.375 +(2013-11-04 15:15:00.000000, 2013-11-04 15:30:00.000000) VTS 1 11 1.375 +(2013-11-04 15:30:00.000000, 2013-11-04 15:45:00.000000) VTS 1 31 1.375 +(2013-11-04 16:15:00.000000, 2013-11-04 16:30:00.000000) VTS 2 16 1.375 +(2013-11-04 16:30:00.000000, 2013-11-04 16:45:00.000000) VTS 1 3 1.375 +(2013-11-04 16:45:00.000000, 2013-11-04 17:00:00.000000) VTS 6 38 2 +(2013-11-04 17:15:00.000000, 2013-11-04 17:30:00.000000) VTS 2 29.5 2.125 +(2013-11-04 17:45:00.000000, 2013-11-04 18:00:00.000000) VTS 9 20.33333333 3 +(2013-11-04 18:00:00.000000, 2013-11-04 18:15:00.000000) VTS 6 23.4 3.5 +(2013-11-04 18:15:00.000000, 2013-11-04 18:30:00.000000) VTS 4 15.66666667 3.875 +(2013-11-04 18:30:00.000000, 2013-11-04 18:45:00.000000) VTS 8 24.5 4.75 +(2013-11-04 18:45:00.000000, 2013-11-04 19:00:00.000000) VTS 23 38.33333333 7.375 +(2013-11-04 19:00:00.000000, 2013-11-04 19:15:00.000000) VTS 195 26.61538462 31.625 +(2013-11-04 19:15:00.000000, 2013-11-04 19:30:00.000000) VTS 774 13.70083102 127.625 +(2013-11-04 19:30:00.000000, 2013-11-04 19:45:00.000000) VTS 586 12.38095238 200.625 +(2013-11-04 19:45:00.000000, 2013-11-04 20:00:00.000000) VTS 1236 15.54742097 354 +(2013-11-04 20:00:00.000000, 2013-11-04 20:15:00.000000) VTS 3339 11.78947368 770.625 +(2013-11-04 20:15:00.000000, 2013-11-04 20:30:00.000000) VTS 3474 10.5603396 1204.375 +(2013-11-04 20:30:00.000000, 2013-11-04 20:45:00.000000) VTS 3260 12.26484323 1610.875 +(2013-11-04 20:45:00.000000, 2013-11-04 21:00:00.000000) VTS 5112 12.05590062 2247 + + + +---- + +NOTE: 上記の時系列操作に加えて、Vantage はプライマリ タイム インデックス (PTI) を備えた特別な時系列テーブルも提供します。これらは、プライマリインデックス(PI)ではなくPTIが定義された通常のバンテージテーブルです。PTI を含むテーブルは時系列の機能/操作には必須ではありませんが、PTI は時系列データの物理的な保存方法を最適化するため、通常のテーブルと比較してパフォーマンスが大幅に向上します。 + +== まとめ + +このクイック スタートでは、Vantage の時系列機能を使用して時系列データセットを分析することがいかに簡単であるかを学びました。 + +== さらに詳しく +* link:https://docs.teradata.com/r/Teradata-VantageTM-Time-Series-Tables-and-Operations/July-2021/Introduction-to-Teradata-Time-Series-Tables-and-Operations[Teradata Vantage™-時系列テーブルと操作] +* xref:nos.adoc[] +* link:https://docs.teradata.com/r/2mw8ooFr~xX0EaaGFaDW8A/root[Teradata Vantage™-ネイティブオブジェクトストア入門ガイド] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/general/run-vantage-express-on-aws.adoc b/modules/ROOT/pages/ja/general/run-vantage-express-on-aws.adoc new file mode 100644 index 000000000..8abfa5fde --- /dev/null +++ b/modules/ROOT/pages/ja/general/run-vantage-express-on-aws.adoc @@ -0,0 +1,290 @@ += AWS で Vantage Express を実行する方法 +:page-lang: ja +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2022 年 12 月 12 日 +:description: AWS で Vantage Express を実行する方法 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, AWS +:tabs: +:experimental: + +include::../partials/use.csae.adoc[] + +== 概要 + +このハウツーでは、AWS で Vantage Express を実行する方法を示します。Vantage Express は、完全に機能する Teradata SQL Engineを含む、設置面積が小さい構成です。 + +[IMPORTANT] +.クラウド料金 +==== +Vantage Express は仮想マシン イメージとして配布されます。このハウツーでは EC2 `c5n.metal` インスタンス型を使用します。これは、$3/h以上かかるベアメタル インスタンスです。 + +より安価なオプションが必要な場合は、ネストされた仮想化をサポートし、安価なVMでVantage Expressを実行できるxref:vantage.express.gcp.adoc[Google Cloud] と xref:run-vantage-express-on-microsoft-azure.adoc[Azure] を試してください。 + +クラウド利用に対して料金を払いたくない場合は、link:https://clearscape.teradata.com/[] でVantageの無料ホストインスタンスを入手できます。または、xref:getting.started.vmware.adoc[VMware]、xref:getting.started.vbox.adoc[VirtualBox]、または xref:getting.started.utm.adoc[UTM] を使用してVantage Expressをローカルにインストールすることもできます。 +==== + +== 前提条件 + +. AWS アカウント。新しいアカウントを作成する必要がある場合は、 https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/[AWS の公式手順] に従ってください。 +. `awscli` コマンド ライン ユーティリティがマシンにインストールされ、設定されていること。インストール手順はここで見つけることができます。https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html + +== インストール + + +. インターネットに接続するサブネットを持つVPCが必要です。利用可能なものがない場合は、以下の方法で作成できます。 ++ +[source, bash] +---- +# Copied from https://cloudaffaire.com/how-to-create-a-custom-vpc-using-aws-cli/ + +# Create VPC +AWS_VPC_ID=$(aws ec2 create-vpc \ + --cidr-block 10.0.0.0/16 \ + --query 'Vpc.{VpcId:VpcId}' \ + --output text) + +# Enable DNS hostname for your VPC +aws ec2 modify-vpc-attribute \ + --vpc-id $AWS_VPC_ID \ + --enable-dns-hostnames "{\"Value\":true}" + +# Create a public subnet +AWS_SUBNET_PUBLIC_ID=$(aws ec2 create-subnet \ + --vpc-id $AWS_VPC_ID --cidr-block 10.0.1.0/24 \ + --query 'Subnet.{SubnetId:SubnetId}' \ + --output text) + +# Enable Auto-assign Public IP on Public Subnet +aws ec2 modify-subnet-attribute \ + --subnet-id $AWS_SUBNET_PUBLIC_ID \ + --map-public-ip-on-launch + +# Create an Internet Gateway +AWS_INTERNET_GATEWAY_ID=$(aws ec2 create-internet-gateway \ + --query 'InternetGateway.{InternetGatewayId:InternetGatewayId}' \ + --output text) + +# Attach Internet gateway to your VPC +aws ec2 attach-internet-gateway \ + --vpc-id $AWS_VPC_ID \ + --internet-gateway-id $AWS_INTERNET_GATEWAY_ID + +# Create a route table +AWS_CUSTOM_ROUTE_TABLE_ID=$(aws ec2 create-route-table \ + --vpc-id $AWS_VPC_ID \ + --query 'RouteTable.{RouteTableId:RouteTableId}' \ + --output text ) + +# Create route to Internet Gateway +aws ec2 create-route \ + --route-table-id $AWS_CUSTOM_ROUTE_TABLE_ID \ + --destination-cidr-block 0.0.0.0/0 \ + --gateway-id $AWS_INTERNET_GATEWAY_ID \ + --output text + +# Associate the public subnet with route table +AWS_ROUTE_TABLE_ASSOID=$(aws ec2 associate-route-table \ + --subnet-id $AWS_SUBNET_PUBLIC_ID \ + --route-table-id $AWS_CUSTOM_ROUTE_TABLE_ID \ + --output text | head -1) + +# Create a security group +aws ec2 create-security-group \ + --vpc-id $AWS_VPC_ID \ + --group-name myvpc-security-group \ + --description 'My VPC non default security group' \ + --output text + +# Get security group ID's +AWS_DEFAULT_SECURITY_GROUP_ID=$(aws ec2 describe-security-groups \ + --filters "Name=vpc-id,Values=$AWS_VPC_ID" \ + --query 'SecurityGroups[?GroupName == `default`].GroupId' \ + --output text) && + AWS_CUSTOM_SECURITY_GROUP_ID=$(aws ec2 describe-security-groups \ + --filters "Name=vpc-id,Values=$AWS_VPC_ID" \ + --query 'SecurityGroups[?GroupName == `myvpc-security-group`].GroupId' \ + --output text) + +# Create security group ingress rules +aws ec2 authorize-security-group-ingress \ + --group-id $AWS_CUSTOM_SECURITY_GROUP_ID \ + --ip-permissions '[{"IpProtocol": "tcp", "FromPort": 22, "ToPort": 22, "IpRanges": [{"CidrIp": "0.0.0.0/0", "Description": "Allow SSH"}]}]' \ + --output text + +# Add a tag to the VPC +aws ec2 create-tags \ + --resources $AWS_VPC_ID \ + --tags "Key=Name,Value=vantage-express-vpc" + +# Add a tag to public subnet +aws ec2 create-tags \ + --resources $AWS_SUBNET_PUBLIC_ID \ + --tags "Key=Name,Value=vantage-express-vpc-public-subnet" + +# Add a tag to the Internet-Gateway +aws ec2 create-tags \ + --resources $AWS_INTERNET_GATEWAY_ID \ + --tags "Key=Name,Value=vantage-express-vpc-internet-gateway" + +# Add a tag to the default route table +AWS_DEFAULT_ROUTE_TABLE_ID=$(aws ec2 describe-route-tables \ + --filters "Name=vpc-id,Values=$AWS_VPC_ID" \ + --query 'RouteTables[?Associations[0].Main != `false`].RouteTableId' \ + --output text) && + aws ec2 create-tags \ + --resources $AWS_DEFAULT_ROUTE_TABLE_ID \ + --tags "Key=Name,Value=vantage-express-vpc-default-route-table" + +# Add a tag to the public route table +aws ec2 create-tags \ + --resources $AWS_CUSTOM_ROUTE_TABLE_ID \ + --tags "Key=Name,Value=vantage-express-vpc-public-route-table" + +# Add a tags to security groups +aws ec2 create-tags \ + --resources $AWS_CUSTOM_SECURITY_GROUP_ID \ + --tags "Key=Name,Value=vantage-express-vpc-security-group" && + aws ec2 create-tags \ + --resources $AWS_DEFAULT_SECURITY_GROUP_ID \ + --tags "Key=Name,Value=vantage-express-vpc-default-security-group" + +---- + +. VMを作成するには、sshキーペアが必要です。まだ持っていない場合は、作成してください。 ++ +[source, bash] +---- +aws ec2 create-key-pair --key-name vantage-key --query 'KeyMaterial' --output text > vantage-key.pem +---- + +. 秘密キーへのアクセスを制限してください。 `` を前述のコマンドで返された秘密キーのパスに置き換えます。 ++ +[source, bash] +---- +chmod 600 vantage-key.pem +---- + +. リージョンの最新のUbuntuイメージのAMI IDを取得します。 ++ +[source, bash] +---- +AWS_AMI_ID=$(aws ec2 describe-images \ + --filters 'Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-*amd64*' \ + --query 'Images[*].[Name,ImageId,CreationDate]' --output text \ + | sort -k3 -r | head -n1 | cut -f 2) +---- + +. 4 つの CPU、8 GB の RAM、および 70 GB のディスクを備えた Ubuntu VM を作成します。 ++ +[source, bash, role="content-editable emits-gtm-events", id="aws_create_vm_win"] +---- +AWS_INSTANCE_ID=$(aws ec2 run-instances \ + --image-id $AWS_AMI_ID \ + --count 1 \ + --instance-type c5n.metal \ + --block-device-mapping DeviceName=/dev/sda1,Ebs={VolumeSize=70} \ + --key-name vantage-key \ + --security-group-ids $AWS_CUSTOM_SECURITY_GROUP_ID \ + --subnet-id $AWS_SUBNET_PUBLIC_ID \ + --query 'Instances[0].InstanceId' \ + --output text) +---- + +. VMにsshで接続します。 ++ +[source, bash, role="content-editable emits-gtm-events", id="aws_ssh"] +---- +AWS_INSTANCE_PUBLIC_IP=$(aws ec2 describe-instances \ + --query "Reservations[*].Instances[*].PublicIpAddress" \ + --output=text --instance-ids $AWS_INSTANCE_ID) +ssh -i vantage-key.pem ubuntu@$AWS_INSTANCE_PUBLIC_IP +---- +. VM に接続したら、 `root` ユーザーに切り替えます。 ++ +[source, bash, role="content-editable emits-gtm-events", id="sudo"] +---- +sudo -i +---- +. Vantage Express のダウンロード ディレクトリを準備します。 ++ +[source, bash, role="content-editable emits-gtm-events", id="download_dir"] +---- +mkdir /opt/downloads +cd /opt/downloads +---- +include::../partials/install.ve.in.public.cloud.adoc[] + +* インターネットから Vantage Express に接続したい場合は、VM にファイアウォールの穴を開ける必要があります。また、デフォルトのパスワードを `dbc` ユーザーに変更する必要があります。 +. `dbc` ユーザーのパスワードを変更するには、VM に移動して bteq を開始します。 ++ +[source, bash, role="content-editable emits-gtm-events", id="pw_change_bteq"] +---- +bteq +---- +. ユーザー名とパスワードとして `dbc` を使用してデータベースにログインします。 ++ +[source, teradata-sql, role="content-editable emits-gtm-events", id="pw_change_bteq_logon"] +---- +.logon localhost/dbc +---- +. `dbc` ユーザーのパスワードを変更します。 ++ +[source, teradata-sql, role="content-editable emits-gtm-events", id="pw_change_mod_user"] +---- +MODIFY USER dbc AS PASSWORD = new_password; +---- +. これで、ポート 1025 をインターネットに開くことができます。 ++ +[source, bash, role="content-editable emits-gtm-events", id="aws_fw_rule"] +---- +aws ec2 authorize-security-group-ingress \ + --group-id $AWS_CUSTOM_SECURITY_GROUP_ID \ + --ip-permissions '[{"IpProtocol": "tcp", "FromPort": 1025, "ToPort": 1025, "IpRanges": [{"CidrIp": "0.0.0.0/0", "Description": "Allow Teradata port"}]}]' +---- + +== クリーンアップする + +課金を停止するには、すべてのリソースを削除します。 + +[source, bash, role="content-editable emits-gtm-events", id="aws_cleanup"] +---- +# Delete the VM +aws ec2 terminate-instances --instance-ids $AWS_INSTANCE_ID --output text + +# Wait for the VM to terminate + +# Delete custom security group +aws ec2 delete-security-group \ + --group-id $AWS_CUSTOM_SECURITY_GROUP_ID + +# Delete internet gateway +aws ec2 detach-internet-gateway \ + --internet-gateway-id $AWS_INTERNET_GATEWAY_ID \ + --vpc-id $AWS_VPC_ID && + aws ec2 delete-internet-gateway \ + --internet-gateway-id $AWS_INTERNET_GATEWAY_ID + +# Delete the custom route table +aws ec2 disassociate-route-table \ + --association-id $AWS_ROUTE_TABLE_ASSOID && + aws ec2 delete-route-table \ + --route-table-id $AWS_CUSTOM_ROUTE_TABLE_ID + +# Delete the public subnet +aws ec2 delete-subnet \ + --subnet-id $AWS_SUBNET_PUBLIC_ID + +# Delete the vpc +aws ec2 delete-vpc \ + --vpc-id $AWS_VPC_ID +---- + +== 次のステップ +* xref:nos.adoc[オブジェクトストレージに保存されたクエリーデータ] + +== さらに詳しく +* link:https://docs.teradata.com/r/Teradata-StudioTM-and-StudioTM-Express-Installation-Guide-17.20[Teradata®Studio™およびStudio™Expressインストール ガイド] +* link:https://docs.teradata.com/r/jmAxXLdiDu6NiyjT6hhk7g/root[BTEQの紹介] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/general/run-vantage-express-on-microsoft-azure.adoc b/modules/ROOT/pages/ja/general/run-vantage-express-on-microsoft-azure.adoc new file mode 100644 index 000000000..5de05448e --- /dev/null +++ b/modules/ROOT/pages/ja/general/run-vantage-express-on-microsoft-azure.adoc @@ -0,0 +1,182 @@ += Azure で Vantage Express を実行する方法 +:page-lang: ja +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2022 年 8 月 22 日 +:description: Azure で Vantage Express を実行する方法 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics +:tabs: +:experimental: + +include::../partials/use.csae.adoc[] + +== 概要 + +このハウツーでは、Microsoft Azure で Vantage Express を実行する方法を示します。Vantage Express には、完全に機能する Teradata SQL Engineが含まれています。 + +== 前提条件 + +. Azureアカウント。ここで作成できます。 https://azure.microsoft.com/en-us/free/ +. `az` コマンド ラインユーティリティがマシンにインストールされています。インストール手順はここで見つけることができます。https://docs.microsoft.com/en-us/cli/azure/install-azure-cli + +== インストール + +. デフォルトのリージョンを自分に最も近いリージョンに設定します (場所をリストするには `az account list-locations -o table` を実行します)。 ++ +[source, bash] +---- +az config set defaults.location= +---- + +. `tdve-resource-group` という名前の新しいリソース グループを作成し、デフォルトに追加します。 ++ +[source, bash] +---- +az group create -n tdve-resource-group +az config set defaults.group=tdve-resource-group +---- + +. VMを作成するには、sshキーペアが必要です。まだ持っていない場合は、作成する。 ++ +[source, bash] +---- +az sshkey create --name vantage-ssh-key +---- + +. 秘密キーへのアクセスを制限する。 `` を前述のコマンドで返された秘密キーのパスに置き換えます。 ++ +[source, bash] +---- +chmod 600 +---- + +. 4つの CPU と 8GB の RAM、30GB の OS ディスク、60GB のデータディスクを備えた Ubuntu VM を作成します。 ++ +[tabs] +==== +Windows:: ++ +-- +[source, powershell, role="content-editable emits-gtm-events", id="az_create_vm_win"] +---- +az disk create -n teradata-vantage-express --size-gb 60 +az vm create ` + --name teradata-vantage-express ` + --image UbuntuLTS ` + --admin-username azureuser ` + --ssh-key-name vantage-ssh-key ` + --size Standard_F4s_v2 ` + --public-ip-sku Standard + +$diskId = (az disk show -n teradata-vantage-express --query 'id' -o tsv) | Out-String +az vm disk attach --vm-name teradata-vantage-express --name $diskId +---- +-- +MacOS:: ++ +-- +[source, bash, role="content-editable emits-gtm-events", id="az_create_vm_macos"] +---- +az disk create -n teradata-vantage-express --size-gb 60 +az vm create \ + --name teradata-vantage-express \ + --image UbuntuLTS \ + --admin-username azureuser \ + --ssh-key-name vantage-ssh-key \ + --size Standard_F4s_v2 \ + --public-ip-sku Standard + +DISK_ID=$(az disk show -n teradata-vantage-express --query 'id' -o tsv) +az vm disk attach --vm-name teradata-vantage-express --name $DISK_ID +---- +-- +Linux:: ++ +-- +[source, bash, role="content-editable emits-gtm-events", id="az_create_vm_linux"] +---- +az disk create -n teradata-vantage-express --size-gb 60 +az vm create \ + --name teradata-vantage-express \ + --image UbuntuLTS \ + --admin-username azureuser \ + --ssh-key-name vantage-ssh-key \ + --size Standard_F4s_v2 \ + --public-ip-sku Standard + +DISK_ID=$(az disk show -n teradata-vantage-express --query 'id' -o tsv) +az vm disk attach --vm-name teradata-vantage-express --name $DISK_ID +---- +-- +==== +. VMにsshで接続します。 `` と `` を環境に一致する値に置き換えます。 ++ +[source, bash, role="content-editable emits-gtm-events", id="az_ssh"] +---- +ssh -i azureuser@ +---- +. VM に接続したら、`root` ユーザーに切り替えます。 ++ +[source, bash, role="content-editable emits-gtm-events", id="sudo"] +---- +sudo -i +---- +. Vantage Express用のダウンロードディレクトリを準備します。 ++ +[source, bash, role="content-editable emits-gtm-events", id="download_dir"] +---- +mkdir /opt/downloads +cd /opt/downloads +---- +. データ ディスクをマウントします。 ++ +[source, bash, role="content-editable emits-gtm-events", id="mount_data_disk"] +---- +parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100% +mkfs.xfs /dev/sdc1 +partprobe /dev/sdc1 +export DISK_UUID=$(blkid | grep sdc1 | cut -d"\"" -f2) +echo "UUID=$DISK_UUID /opt/downloads xfs defaults,nofail 1 2" >> /etc/fstab +---- +include::../partials/install.ve.in.public.cloud.adoc[] +* インターネットからVantage Expressに接続したい場合は、VMに対してファイアウォールの穴を開ける必要がある。また、デフォルトのパスワードを `dbc` ユーザーに変更する必要があります。 +. `dbc` ユーザーのパスワードを変更するには、VM に移動して bteq を開始します。 ++ +[source, bash, role="content-editable emits-gtm-events", id="pw_change_bteq"] +---- +bteq +---- +. ユーザー名とパスワードとして `dbc` を使用してデータベースにログインします。 ++ +[source, teradata-sql, role="content-editable emits-gtm-events", id="pw_change_bteq_logon"] +---- +.logon localhost/dbc +---- +. `dbc` ユーザーのパスワードを変更します。 ++ +[source, teradata-sql, role="content-editable emits-gtm-events", id="pw_change_mod_user"] +---- +MODIFY USER dbc AS PASSWORD = new_password; +---- +. gcloud コマンドを使用して、ポート 1025 をインターネットに開くことができるようになりました。 ++ +[source%prewrap, bash, role="content-editable emits-gtm-events", id="az_fw_rule"] +---- +az vm open-port --name teradata-vantage-express --port 1025 +---- + +== クリーンアップ + +料金の発生を停止するには、リソース グループに関連付けられているすべてのリソースを削除します。 +[source, bash, role="content-editable emits-gtm-events", id="delete_resource_group"] +---- +az group delete --no-wait -n tdve-resource-group +---- + +include::../partials/next.steps.adoc[] + +== さらに詳しく +* link:https://docs.teradata.com/r/Teradata-StudioTM-and-StudioTM-Express-Installation-Guide-17.20[Teradata®Studio™およびStudio™Expressインストール ガイド] +* link:https://docs.teradata.com/r/jmAxXLdiDu6NiyjT6hhk7g/root[BTEQの紹介] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/general/segment.adoc b/modules/ROOT/pages/ja/general/segment.adoc new file mode 100644 index 000000000..da9198846 --- /dev/null +++ b/modules/ROOT/pages/ja/general/segment.adoc @@ -0,0 +1,172 @@ += Twilio Segmentからイベントを保存する方法 +:page-lang: ja +:experimental: +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2022 年 1 月 18 日 +:description: Twilio Segmentからのイベントを Teradata Vantage に保存します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics, customer data platform, cdp, segment +:tabs: + +== 概要 +このソリューションは、Twilio Segmentからのイベントをリッスンし、Teradata Vantage インスタンスにデータを書き込みます。この例ではGoogle Cloudを使用しているが、任意のクラウドプラットフォームに変換できます。 + +== アーキテクチャ + +このソリューションでは、Twilio Segmentが生のイベント データを Google Cloud Pub/Sub に書き込みます。Pub/SubはイベントをCloud Runアプリケーションに転送します。Cloud Runアプリは、Teradata Vantageデータベースにデータを書き込みます。これは、VMの割り当てや管理を必要としないサーバレスソリューションです。 + +image::segment.flow.diagram.png[Segment Google Cloud フローダイアグラム, width=500, align="left"] + +== デプロイメント + +=== 前提条件 +1. Google Cloudアカウント。アカウントをお持ちでない場合は、https://console.cloud.google.com/ で作成できます。 +2. `gcloud` がインストールされている。https://cloud.google.com/sdk/docs/install を参照してください。 +3. Google Cloud Runが対話できるTeradata Vantageインスタンス。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] + +=== 構築とデプロイ + +1. サンプル リポジトリのクローンを作成します。 ++ +[source, bash] +---- +git clone git@github.com:Teradata/segment-integration-tutorial.git +---- + +2. リポジトリには、データベースを設定する `segment.sql` ファイルが含まれています。 お気に入りの SQL IDE、Teradata Studio (https://downloads.teradata.com/download/tools/teradata-studio)、または `bteq` というコマンド ライン ツール (https://downloads.teradata.com/node/7314[Windows]、https://downloads.teradata.com/node/200442[Linux]、https://downloads.teradata.com/node/201214[macOS ]用にダウンロード) を使用して、Vantage データベース上のスクリプトを実行します。 +SQL スクリプトは、`Segment` と呼ばれる新しいデータベースと、セグメント イベントを保存するためのテーブルのセットを作成します。 + +3. デフォルトのプロジェクトとリージョンを設定します。 ++ +[source, bash] +---- +gcloud config set project +gcloud config set compute/region +---- + +4. プロジェクトのIDと番号を取得します。これは後続のステップで必要になります。 ++ +[source, bash] +---- +export PROJECT_ID=$(gcloud config get-value project) + +export PROJECT_NUMBER=$(gcloud projects list \ + --filter="$(gcloud config get-value project)" \ + --format="value(PROJECT_NUMBER)") +---- + +5. 必要な Google Cloud サービスを有効にします。 ++ +[source, bash] +---- +gcloud services enable cloudbuild.googleapis.com containerregistry.googleapis.com run.googleapis.com secretmanager.googleapis.com pubsub.googleapis.com +---- + +6. アプリケーションを構築します。 ++ +[source, bash] +---- +gcloud builds submit --tag gcr.io/$PROJECT_ID/segment-listener +---- + +7. Segmentと共有する API キーを定義します。APIキーをGoogle Cloud Secret Managerに保存します。 ++ +[source, bash] +---- +gcloud secrets create VANTAGE_USER_SECRET +echo -n 'dbc' > /tmp/vantage_user.txt +gcloud secrets versions add VANTAGE_USER_SECRET --data-file=/tmp/vantage_user.txt + +gcloud secrets create VANTAGE_PASSWORD_SECRET +echo -n 'dbc' > /tmp/vantage_password.txt +gcloud secrets versions add VANTAGE_PASSWORD_SECRET --data-file=/tmp/vantage_password.txt +---- + +8. Segment データを Vantage に書き込むアプリケーションは Cloud Run を使用します。まず、Cloud Runがシークレットにアクセスできるようにする必要があります。 ++ +[source, bash] +---- +gcloud projects add-iam-policy-binding $PROJECT_ID \ + --member=serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ + --role=roles/secretmanager.secretAccessor +---- + +9. アプリを Cloud Run にデプロイします (`` を Teradata Vantage データベースのホスト名または IP に置き換えます)。2 番目のエクスポート文は、後続のコマンドで必要になるサービス URL を保存します。 ++ +[source, bash] +---- +gcloud run deploy --image gcr.io/$PROJECT_ID/segment-listener segment-listener \ + --region $(gcloud config get-value compute/region) \ + --update-env-vars VANTAGE_HOST=35.239.251.1 \ + --update-secrets 'VANTAGE_USER=VANTAGE_USER_SECRET:1, VANTAGE_PASSWORD=VANTAGE_PASSWORD_SECRET:1' \ + --no-allow-unauthenticated + +export SERVICE_URL=$(gcloud run services describe segment-listener --platform managed --region $(gcloud config get-value compute/region) --format 'value(status.url)') +---- +10. Segmentからイベントを受信する Pub/Sub トピックを作成します。 ++ +[source, bash] +---- +gcloud pubsub topics create segment-events +---- + +11. Pub/Sub が Cloud Run アプリを呼び出すために使用するサービス アカウントを作成します。 ++ +[source, bash] +---- +gcloud iam service-accounts create cloud-run-pubsub-invoker \ + --display-name "Cloud Run Pub/Sub Invoker" +---- + +12. サービス アカウントに Cloud Run を呼び出すアクセス権を付与します。 ++ +[source, bash] +---- +gcloud run services add-iam-policy-binding segment-listener \ + --region $(gcloud config get-value compute/region) \ + --member=serviceAccount:cloud-run-pubsub-invoker@$PROJECT_ID.iam.gserviceaccount.com \ + --role=roles/run.invoker +---- + +13. Pub/Sub がプロジェクト内に認証トークンを作成できるようにします。 ++ +[source, bash] +---- +gcloud projects add-iam-policy-binding $PROJECT_ID \ + --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ + --role=roles/iam.serviceAccountTokenCreator +---- + +14. サービス アカウントを使用してPub/Subサブスクリプションを作成します。 ++ +[source, bash, id="segment_first_run", role="content-editable emits-gtm-events"]] +---- +gcloud pubsub subscriptions create segment-events-cloudrun-subscription --topic projects/$PROJECT_ID/topics/segment-events \ + --push-endpoint=$SERVICE_URL \ + --push-auth-service-account=cloud-run-pubsub-invoker@$PROJECT_ID.iam.gserviceaccount.com \ + --max-retry-delay 600 \ + --min-retry-delay 30 +---- + +15. Segmentがトピックに公開できるようにします。これを行うには、https://console.cloud.google.com/cloudpubsub/topic/list のプロジェクトの `pubsub@segment-integrations.iam.gserviceaccount.com` ロール `Pub/Sub Publisher` を割り当てます。詳細は https://segment.com/docs/connections/destinations/catalog/google-cloud-pubsub/#authentication[Segment マニュアル] を参照してください。 + +16. Google Cloud Pub/Sub をSegmentの宛先として構成します。完全なトピック `projects//topics/segment-events` を使用し、すべてのSegment イベント型 ( `*` 文字を使用) をトピックにマップします。 + +== 試してみる + +1. Segmentのイベント テスター機能を使用して、サンプル ペイロードをトピックに送信します。サンプルデータがVantageに保存されていることを確認します。 + +== 制約 + +* この例では、アプリを単一リージョンにデプロイする方法を示します。多くの場合、この設定では十分な稼働時間は保証されません。Cloud Run アプリは、グローバル ロード バランサの背後にある複数のリージョンにデプロイする必要があります。 + +== まとめ + +このハウツーでは、Segment イベントを Teradata Vantage に送信する方法を説明します。この構成では、イベントがSegmentから Google Cloud Pub/Sub に転送され、さらに Cloud Run アプリケーションに転送されます。アプリケーションは Teradata Vantage にデータを書き込みます。 + +== さらに詳しく +* link:https://segment.com/docs/connections/destinations/catalog/google-cloud-pubsub/[Segmentの Pub/Sub 宛先ドキュメント] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/select-the-right-data-ingestion-tools-for-teradata-vantage.adoc b/modules/ROOT/pages/ja/general/select-the-right-data-ingestion-tools-for-teradata-vantage.adoc new file mode 100644 index 000000000..ca65650c1 --- /dev/null +++ b/modules/ROOT/pages/ja/general/select-the-right-data-ingestion-tools-for-teradata-vantage.adoc @@ -0,0 +1,75 @@ += Teradata Vantageに適したデータ取り込みソリューションを選択する +:page-lang: ja +:experimental: +:page-author: Krutik Pathak +:page-email: krutik.pathak@teradata.com +:page-revdate: 2023 年 8 月 9 日 +:description: Teradata Vantage のさまざまなユースケースで使用するデータ インジェスト ツールの推奨事項 +:keywords: data ingestion, teradata, nos, tpt, bteq, querygrid, airbyte, object store, saas, vantage, apache, spark, presto, oracle +:tabs: + +== 概要 + +今回は、データの取り込みに関するさまざまなユースケースについて概説します。利用可能なソリューションをリストし、各ユースケースに最適なソリューションを推奨します。 + +=== ストリーミングを含む大量の取り込み +利用可能なソリューション: + +* link:https://docs.teradata.com/r/Teradata-Parallel-Transporter-Application-Programming-Interface-Programmer-Guide-17.20[Teradata Parallel Transporter API,window="_blank"] + を使用する* データをオブジェクト ストレージにストリームし、 link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-Native-Object-Store-Getting-Started-Guide-17.20/Welcome-to-Native-Object-Store[Teradata Native Object Store (NOS), window="_blank"] を使用して取り込む。 +* https://docs.teradata.com/r/Teradata-Parallel-Transporter-User-Guide/June-2022/Introduction-to-Teradata-PT[Teradata Parallel Transporter (TPT),window="_blank"] のコマンドラインユーティリティを使用する +* JDBC (Java)、teradatasql (Python)、Node.js ドライバ、ODBC、.NET データ プロバイダなどの Teradata データベース ドライバを使用する。 + +Teradata Parallel Transport API は、通常、高スループットと最小限の待機時間を提供する最もパフォーマンスの高いソリューションです。1 秒あたり数万行を取り込む必要がある場合、および C 言語の使用に慣れている場合は、これを使用してください。 + +イベント数が 1 秒あたり数千単位になる場合は、Teradata データベース ドライバを使用してください。JDBC、Python などの最も一般的なドライバで利用可能な Fastload プロトコルの使用を検討してください。 + +ソリューションがより高い待機時間を許容できる場合、イベントをオブジェクト ストレージにストリームし、NOS を使用してデータを読み取ることが良い選択肢となります。通常、この解決策は最小限の労力で済みます。 + +=== オブジェクトストレージからデータを取り込む + +利用可能なソリューション: + +* link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-Native-Object-Store-Getting-Started-Guide-17.20/Welcome-to-Native-Object-Store[Teradata Native Object Store (NOS), window="_blank"] +* https://docs.teradata.com/r/Teradata-Parallel-Transporter-User-Guide/June-2022/Introduction-to-Teradata-PT[Teradata Parallel Transporter (TPT),window="_blank"] + +NOS はすべての Teradata ノードを利用して取り込みを実行できるため、オブジェクト ストレージに保存されたファイルからデータを取り込むには、Teradata NOS が推奨されるオプションです。Teradata Parallel Transporter (TPT) はクライアント側で実行されます。NOS からオブジェクト ストレージへの接続がない場合に使用できます。 + +=== ローカルファイルからデータを取り込む +利用可能なソリューション: + +* link:https://docs.teradata.com/r/Teradata-Parallel-Transporter-User-Guide/June-2022/Introduction-to-Teradata-PT[Teradata Parallel Transporter (TPT),window="_blank"] +* link:https://docs.teradata.com/r/Enterprise_IntelliFlex_Lake_VMware/Basic-Teradata-Query-Reference-17.20/Introduction-to-BTEQ[BTEQ,window="_blank"] + +TPTは、ローカルファイルからデータをロードするための推奨オプションです。TPT はスケーラビリティと並列処理に関して最適化されているため、利用可能なすべてのオプションの中で最高のスループットを備えています。BTEQ は、取り込みプロセスでスクリプトが必要な場合に使用できます。また、他のすべての取り込みパイプラインが BTEQ で実行されている場合は、 BTEQ を使用し続けることも意味があります。 + +=== SaaSアプリケーションからデータを取り込む +利用可能なソリューション: + +* link:https://airbyte.com/[Airbyte,window="_blank"]、 link:https://precog.com/[Precog,window="_blank"]、 link:https://nexla.com/[Nexla,window="_blank"]、 link:https://fivetran.com/[Fivetran,window="_blank" ] +などの複数のサードパーティ ツール* SaaS アプリからローカル ファイルにエクスポートし、https://docs.teradata.com/r/Teradata-Parallel-Transporter-User-Guide/June-2022/Introduction-to-Teradata-PT[Teradata Parallel Transporter (TPT),window="_blank"] +を使用して取り込む* SaaS アプリからオブジェクト ストレージにエクスポートし、 link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-Native-Object-Store-Getting-Started-Guide-17.20/Welcome-to-Native-Object-Store[Teradata Native Object Store (NOS), window="_blank"]を使用して取り込む + +SaaS アプリからオブジェクト ストレージにエクスポートしてから、 SaaS アプリケーションから Teradata Vantage にデータを移動するには、通常、サードパーティ ツールの方が適しています。データ ソースに対する広範なサポートを提供し、エクスポートやエクスポートされたデータセットの格納などの中間ステップを管理する必要がなくなります。 + +=== 他のデータベースに保存されているデータを統合クエリー処理に使用する +利用可能なソリューション: + +* link:https://docs.teradata.com/r/Teradata-QueryGridTM-Installation-and-User-Guide/October-2020/Teradata-QueryGrid-Overview[Teradata QueryGrid,window="_blank"] +* 他のデータベースからローカル ファイルにエクスポートし、 https://docs.teradata.com/r/Teradata-Parallel-Transporter-User-Guide/June-2022/Introduction-to-Teradata-PT[Teradata Parallel Transporter (TPT),window="_blank"] + を使用して取り込む* 他のデータベースからオブジェクト ストレージにエクスポートし、 link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-Native-Object-Store-Getting-Started-Guide-17.20/Welcome-to-Native-Object-Store[Teradata Native Object Store (NOS), window="_blank" ] を使用して取り込む + +QueryGrid は、異なるシステム/プラットフォーム間で限られた量のデータを移動する場合に推奨されるオプションです。これには、Vantage インスタンス、Apache Spark、Oracle、Presto など内の移動が含まれます。これは、同期する必要があるものが SQL で表現できる複雑な条件で記述されている状況に特に適しています。 + +== まとめ +今回は、さまざまなデータ取り込みのユースケースを検討し、各ユースケースで利用可能なツールのリストを提供し、さまざまなシナリオに推奨されるオプションを特定しました。 + +== さらに詳しく + +link:https://quickstarts.teradata.com/nos.html[NOS,window="_blank" を使用してオブジェクト ストレージに保存されたデータをクエリーする] + +link:https://quickstarts.teradata.com/tools-and-utilities/run-bulkloads-efficiently-with-teradata-parallel-transporter.html[Teradata Parallel Transporter を使用して大規模なバルクロードを効率的に実行,window="_blank"] + +link:https://docs.teradata.com/r/Teradata-QueryGridTM-Installation-and-User-Guide/October-2020/Teradata-QueryGrid-Overview[Teradata QueryGrid,window="_blank"] + +link:https://quickstarts.teradata.com/elt/use-airbyte-to-load-data-from-external-sources-to-teradata-vantage.html[Airbyte を使用して外部ソースから Teradata Vantage にデータをロードする, window="_blank"] diff --git a/modules/ROOT/pages/ja/general/sto.adoc b/modules/ROOT/pages/ja/general/sto.adoc new file mode 100644 index 000000000..ef4d27a65 --- /dev/null +++ b/modules/ROOT/pages/ja/general/sto.adoc @@ -0,0 +1,255 @@ += Vantage でスクリプトを実行する方法 +:page-lang: ja +:experimental: +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2021 年 9 月 7 日 +:description: Teradataでのアプリケーションの実行:スクリプト テーブル演算子を使用して、データを移動せずにデータに対してアプリケーションを実行します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, script table operator, cloud data platform, object storage, business intelligence, enterprise analytics + +== 概要 + +場合によっては、SQL では簡単に表現できない複雑なロジックをデータに適用する必要があります。1つのオプションは、ユーザー定義関数(UDF)でロジックをラップすることです。このロジックが UDF でサポートされていない言語で既にコーディングされている場合はどうなるでしょうか? Script Table Operator は、ロジックをデータに取り込んで Vantage 上で実行できるようにする Vantage の機能です。このアプローチの利点は、操作するために Vantage からデータを取得する必要がないことです。また、Vantage でデータ アプリケーションを実行することにより、その並列性を活用できます。アプリケーションがどのように拡張されるかを考える必要はありません。Vantage にお任せください。 + +== 前提条件 + +Teradata Vantageインスタンスへのアクセス。 + +include::../partials/vantage_clearscape_analytics.adoc[] + +== Hello World + +簡単なことから始めましょう。データベースに「Hello World」を出力させたい場合はどうすればよいでしょうか? + +[source, teradata-sql, id="sto_first_query", role="emits-gtm-events"] +---- +SELECT * +FROM + SCRIPT( + SCRIPT_COMMAND('echo Hello World!') + RETURNS ('Message varchar(512)')); +---- + +以下のとおりです。 +---- +Message +------------ +Hello World! +Hello World! +---- + +ここで何が起こったのか分析してみましょう。SQLには`echo Hello World!`が含まれています。これはBashコマンドです。さて、Bash コマンドを実行する方法がわかりました。しかし、なぜ 1 行ではなく 2 行が取得されたのでしょうか? これは、単純なスクリプトが各 AMP で 1 回実行され、たまたま 2 つの AMP があるためです。 + +[source, teradata-sql] +---- +-- Teradata magic that returns the number of AMPs in a system +SELECT hashamp()+1 AS number_of_amps; +---- + +Returns: +---- +number_of_amps +-------------- + 2 +---- + +この単純なスクリプトは、Script Table Operator (STO) の背後にある考え方を示しています。スクリプトを提供すると、データベースはそれを AMP ごとに 1 回ずつ並行して実行します。これは、スクリプト内に変換ロジックがあり、処理するデータが大量にある場合に魅力的なモデルです。通常、アプリケーションに同時並行性を組み込む必要があります。STO にそれを実行させることで、Teradata がデータに適切な同時並行性レベルを選択できるようになります。 + +== サポートされる言語 + +さて、Bash で `echo` を行いましたが、Bash は複雑なロジックを表現するための生産的な環境とは言えません。 では、他にどのような言語がサポートされているのでしょうか? 幸いなことに、Vantage ノードで実行できるバイナリはすべて STO で使用できることです。バイナリとそのすべての依存関係をすべての Vantage ノードにインストールする必要があることに注意してください。実際には、これは、管理者がサーバー上で維持したいと考え、維持できるものにオプションが制限されることを意味します。Python は非常に人気のある選択肢です。 + +== スクリプトをアップロードする + +Hello World は非常にエキサイティングですが、大きなファイルに既存のロジックがある場合はどうなるでしょうか。確かに、スクリプト全体を貼り付けたり、SQL クエリーで引用符をエスケープしたりする必要はありません。スクリプトのアップロードの問題は、ユーザーインストールファイル(UIF)機能で解決します。 + +以下の内容の `helloworld.py` スクリプトがあるとします。 + +[source, python] +---- +print("Hello World!") +---- + +スクリプトが `/tmp/helloworld.py` のローカルマシンにあると仮定します。 + +まず、Vantage でアクセス権を設定する必要があります。クリーンな状態を保つために、新しいデータベースを使用してこれを実行します。 + +[source, teradata-sql] +---- +-- Create a new database called sto +CREATE DATABASE STO +AS PERMANENT = 60e6, -- 60MB + SPOOL = 120e6; -- 120MB + +-- Allow dbc user to create scripts in database STO +GRANT CREATE EXTERNAL PROCEDURE ON STO to dbc; +---- + +以下のプロシージャ コールを使用して、スクリプトを Vantage にアップロードできます。 + +[source, teradata-sql] +---- +call SYSUIF.install_file('helloworld', + 'helloworld.py', 'cz!/tmp/helloworld.py'); +---- + +スクリプトがアップロードされたので、以下のように呼び出すことができます。 + +[source, teradata-sql] +---- +-- We switch to STO database +DATABASE STO + +-- We tell Vantage where to look for the script. This can be +-- any string and it will create a symbolic link to the directory +-- where our script got uploaded. By convention, we use the +-- database name. +SET SESSION SEARCHUIFDBPATH = sto; + +-- We now call the script. Note, how we use a relative path that +-- starts with `./sto/`, which is where SEARCHUIFDBPATH +-- is pointing. +SELECT * +FROM SCRIPT( + SCRIPT_COMMAND('python3 ./sto/helloworld.py') + RETURNS ('Message varchar(512)')); +---- + +最後の呼び出しでは次が返されます。 +---- +Message +------------ +Hello World! +Hello World! +---- + +これは大変な作業でしたが、まだ Hello World に到達しています。`SCRIPT` にデータを渡してみましょう。 + +== Vantage に保存されているデータを SCRIPT に渡す + +これまで、スタンドアロン スクリプトを実行するために `SCRIPT` オペレータを使用してきました。ただし、Vantage でスクリプトを実行する主な目的は、Vantage 内のデータを処理することです。Vantageからデータを取得して、`SCRIPT` に渡す方法を見てみましょう。 + +まず、数行のテーブルを作成します。 + +[source, teradata-sql] +---- +-- Switch to STO database. +DATABASE STO + +-- Create a table with a few urls +CREATE TABLE urls(url varchar(10000)); +INS urls('https://www.google.com/finance?q=NYSE:TDC'); +INS urls('http://www.ebay.com/sch/i.html?_trksid=p2050601.m570.l1313.TR0.TRC0.H0.Xteradata+merchandise&_nkw=teradata+merchandise&_sacat=0&_from=R40'); +INS urls('https://www.youtube.com/results?search_query=teradata%20commercial&sm=3'); +INS urls('https://www.contrivedexample.com/example?mylist=1&mylist=2&mylist=...testing'); +---- + +以下のスクリプトを使用してクエリーパラメータを解析します。 + +[source, python] +---- +from urllib.parse import urlparse +from urllib.parse import parse_qsl +import sys + +for line in sys.stdin: + # remove leading and trailing whitespace + url = line.strip() + parsed_url = urlparse(url) + query_params = parse_qsl(parsed_url.query) + + for element in query_params: + print("\t".join(element)) +---- + +スクリプトでは、URLが1行ずつ `stdin` に入力されると仮定していることに注記してください。また、値の間の区切り記号としてタブ文字を使用して、結果を 1 行ずつ出力する方法にも注目してください。 + +スクリプトをインストールしましょう。ここでは、スクリプト ファイルがローカル マシンの `/tmp/urlparser.py` にあると仮定します。 +[source, teradata-sql] +---- +CALL SYSUIF.install_file('urlparser', + 'urlparser.py', 'cz!/tmp/urlparser.py'); +---- + +スクリプトがインストールされたら、 `urls` テーブルからデータを取得し、それをスクリプトに入力してクエリーパラメータを取得します。 +[source, teradata-sql] +---- +-- We inform Vantage to create a symbolic link from the UIF directory to ./sto/ +SET SESSION SEARCHUIFDBPATH = sto ; + +SELECT * + FROM SCRIPT( + ON(SELECT url FROM urls) + SCRIPT_COMMAND('python3 ./sto/urlparser.py') + RETURNS ('param_key varchar(512)', 'param_value varchar(512)')); +---- + +その結果、クエリーパラメータとその値を取得します。行の数は、キーと値のペアの数と同じです。また、スクリプトで出力されるキーと値の間にタブを挿入したため、STO から 2 つの列が取得されます。 +---- +param_key |param_value +------------+----------------------------------------------------- +q |NYSE:TDC +_trksid |p2050601.m570.l1313.TR0.TRC0.H0.Xteradata merchandise +search_query|teradata commercial +_nkw |teradata merchandise +sm |3 +_sacat |0 +mylist |1 +_from |R40 +mylist |2 +mylist |...testing +---- + +== テーブルへのSCRIPT出力の挿入 + +Vantage からデータを取得し、それをスクリプトに渡して出力を取得する方法を学びました。この出力をテーブルに保存する簡単な方法はありますか? もちろん、あります。上記の 選択 を `CREATE TABLE` 文と組み合わせることができます。 + +[source, teradata-sql] +---- +-- We inform Vantage to create a symbolic link from the UIF directory to ./sto/ +SET SESSION SEARCHUIFDBPATH = sto ; + +CREATE MULTISET TABLE + url_params(param_key, param_value) +AS ( + SELECT * + FROM SCRIPT( + ON(SELECT url FROM urls) + SCRIPT_COMMAND('python3 ./sto/urlparser.py') + RETURNS ('param_key varchar(512)', 'param_value varchar(512)')) +) WITH DATA +NO PRIMARY INDEX; +---- + +では、`url_params`テーブルの内容を検査してみましょう。 + +[source, teradata-sql] +---- +SELECT * FROM url_params; +---- + +以下の出力が表示されるはずです。 +---- +param_key |param_value +------------+----------------------------------------------------- +q |NYSE:TDC +_trksid |p2050601.m570.l1313.TR0.TRC0.H0.Xteradata merchandise +search_query|teradata commercial +_nkw |teradata merchandise +sm |3 +_sacat |0 +mylist |1 +_from |R40 +mylist |2 +mylist |...testing +---- + +== まとめ + +このクイック スタートでは、Vantage のデータに対してスクリプトを実行する方法を学習しました。Script Table Operator (STO) を使用してスクリプトを実行しました。オペレータを使用すると、データにロジックを適用できます。スクリプトを AMP ごとに 1 つずつ並行して実行することで、同時並行性の考慮事項をデータベースにオフロードします。スクリプトを指定するだけで、データベースがそれを並行して実行します。 + +== さらに詳しく +* link:https://docs.teradata.com/r/9VmItX3V2Ni9Ts70HbDzVg/CBAaRxUyOdF0t1SQIuXeug[Teradata Vantage™ - SQL オペレータとユーザー定義関数 - SCRIPT] +* link:https://docs.teradata.com/v/u/Orange-Book/R-and-Python-Analytics-with-SCRIPT-Table-Operator-Orange-Book-4.3.1[SCRIPT テーブルオペレータを使用した R および Python 分析] + +include::../partials/community_link.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/ja/general/teradata-vantage-engine-architecture-and-concepts.adoc b/modules/ROOT/pages/ja/general/teradata-vantage-engine-architecture-and-concepts.adoc new file mode 100644 index 000000000..cb849e4ea --- /dev/null +++ b/modules/ROOT/pages/ja/general/teradata-vantage-engine-architecture-and-concepts.adoc @@ -0,0 +1,117 @@ += Teradata Vantage エンジンのアーキテクチャと概念 +:page-lang: ja +:experimental: +:page-author: Krutik Pathak +:page-email: krutik.pathak@teradata.com +:page-revdate: 2023 年 8 月 7 日 +:description: Teradata Vantage のアーキテクチャと概念 +:keywords: data warehouses, teradata vantage engine architecture, teradata, vantage, Access Module Processors (AMP), Parsing Engines (PE), Massively Parallel Processing (MPP), Virtual Disk (Vdisks), BYNET +:tabs: +:dir: teradata-vantage-architecture-concepts + +== 概要 + +今回は、Teradata Vantage エンジン アーキテクチャの基礎となる概念について説明します。VantageCloud Lake のプライマリ クラスタを含む Vantage のすべてのエディションは、同じエンジンを利用します。 + +Teradataのアーキテクチャは、超並列処理(MPP)、シェアードナッシングアーキテクチャを中心に設計されており、高性能なデータ処理と分析を可能にします。MPP アーキテクチャは、ワークロードを複数の vproc または仮想プロセッサに分散します。クエリー処理が行われる仮想プロセッサは、一般にアクセス モジュール プロセッサ (AMP) と呼ばれます。各 AMP は他の AMP から分離されており、クエリーを並行して処理するため、Teradata は大量のデータを迅速に処理できます。 + +Teradata Vantage エンジンの主要なアーキテクチャ構成要素には、Parsing Engine (PE)、BYNET、アクセス モジュール プロセッサ (AMP)、および仮想ディスク (Vdisk) が含まれます。 Vdisk は、エンタープライズ プラットフォームの AMP に割り当てられ、VantageCloud Lake 環境の場合はプライマリ クラスタに割り当てられます。 + + +image::{dir}/teradata_architecture_major_components.png[Teradata Vantage の主要なアーキテクチャ構成要素, width=75%] + +== Teradata Vantage エンジンの アーキテクチャ構成要素 +Teradata Vantage エンジンは、以下の構成要素で構成されています。 + +=== Parsing Engine (PE) +SQL クエリーが Teradata で実行されると、まずParsing Engineに到達します。Parsing Engineの機能は以下のとおりです。 + +* 個々のユーザー セッション (最大 120) を管理します。 +* SQL クエリーで使用されているオブジェクトが存在するかどうかを確認します。 +* ユーザーが SQL クエリーで使用されるオブジェクトに対して必要な権限を持っているかどうかを確認します。 +* SQL クエリーを解析して最適化します。 +* SQL クエリーを実行するための実行プランを準備し、それを対応する AMP に渡します。 +* AMP から応答を受信し、それを要求元のクライアントに送り返します。 + + +=== BYNET +BYNET は構成要素通信を可能にするシステムです。BYNET システムは、高速双方向ブロードキャスト、マルチキャスト、ポイント ツー ポイント通信およびマージ機能を提供します。マルチ AMP クエリーの調整、複数の AMP からのデータの読み取り、輻輳を防ぐためのメッセージ フローの調整、プラットフォームのスループットの処理という 3 つの主要な機能を実行します。BYNET のこれらの機能により、Vantage は非常にスケーラブルになり、超並列処理 (MPP) 機能が有効になります。 + +=== Parallel Database Extension (PDE) +並列データベース拡張機能 (PDE) は、オペレーティング システムと Teradata Vantage データベースの間に位置する中間ソフトウェア層です。PDE により、MPP システムは BYNET や共有ディスクなどの機能を使用できるようになります。これにより、Teradata Vantage データベースの速度と線形スケーラビリティを実現する並列処理が促進されます。 + +=== Access Module Processor (AMP) +AMP は、データの保存と取得を行います。各AMPは、データが格納される独自の仮想ディスク(Vdisk)セットに関連付けられており、他のAMPはシェアードナッシングアーキテクチャに従ってそのコンテンツにアクセスできません。AMP の機能は以下のとおりです。 + +* Vantage の Block File System ソフトウェアを使用してストレージにアクセスする +* ロックを管理する +* 行の並べ替え +* 列の集約 +* 結合処理 +* 出力変換 +* ディスク領の管理 +* アカウンティング +* リカバリ処理 + +[NOTE] +==== +VantageCore IntelliFlex、VantageCore VMware、VantageCloud Enterprise、および VantageCloud Lake の場合のプライマリ クラスタの AMP は、データをブロック ファイル システム (BFS) 形式で Vdisk に保存します。VantageCloud Lake 上のコンピューティング クラスタおよびコンピューティング ワーカー ノードの AMP には BFS がなく、オブジェクト ファイル システム (OFS) を使用してオブジェクト ストレージ内のデータにのみアクセスできます。 +==== + +=== 仮想ディスク (Vdisks) +これらは、AMP が所有するストレージ容量の単位です。仮想ディスクは、ユーザー データ (テーブル内の行) を保持するために使用されます。仮想ディスクは、ディスク上の物理スペースにマップされます。 + +=== ノード +Teradata システムのコンテキストでは、ノードはデータベース ソフトウェアのハードウェア プラットフォームとして機能する個々のサーバーを表します。これは、単一のオペレーティング システムの制御下でデータベース操作が実行される処理ユニットとして機能します。Teradata をクラウドにデプロイすると、同じ MPP、シェアードナッシング アーキテクチャに従いますが、物理ノードは仮想マシン (VM) に置き換えられます。 + +== Teradata Vantage のアーキテクチャと概念 +以下の概念は Teradata Vantage に適用されます + +=== 直線的な成長と拡張性 +Teradata は、直線的に拡張可能な RDBMS です。ワークロードとデータ量が増加するにつれて、サーバーやノードなどのハードウェア リソースを追加すると、パフォーマンスと容量も比例して増加します。線形スケーラビリティにより、スループットを低下させることなくワークロードを増加できます。 + +=== Teradata Parallelism (並列処理) +Teradata の並列処理とは、複数のノードまたは構成要素間で同時にデータとクエリーの並列処理を実行する Teradata Database の固有の機能を指します。  + +* Teradata の各Parsing Engine (PE) には、最大 120 のセッションを同時に処理する機能があります。 +* Teradata の BYNET により、後続のタスクのデータ再配置を含む、すべてのメッセージ アクティビティの並列処理が可能になります。 +* Teradata のすべてのアクセス モジュール プロセッサ (AMP) は、並行して連携して受信リクエストに対応できます。 +* 各 AMP は複数のリクエストを同時に処理できるため、効率的な並列処理が可能になります。 + +image::{dir}/teradata_parallelism.png[Teradata Parallelism (並列処理), width=75%] + + +=== Teradata Retrieval Architecture (取得アーキテクチャ) +Teradata Retrieval Architecture (取得アーキテクチャ)に含まれる主な手順は以下のとおりです。 + +1. Parsing Engineは、1 つ以上の行を取得するリクエストを送信する。 +2. BYNETは、処理のために関連するAMPを活性化する。 +3. AMPは、並列アクセスを介して、目的の行を同時に見つけて検索する。 +4. BYNET は、取得した行をParsing Engineに返す。 +5. 次に、Parsing Engineは、リクエスト元のクライアント アプリケーションに行を返す。 + +image::{dir}/teradata_retrieval_architecture.png[Teradata Retrieval Architecture (取得アーキテクチャ), width=75%] + +=== Teradata Data Distribution (データ分散) +Teradata の MPP アーキテクチャでは、データを分散および取得する効率的な手段が必要であり、これをハッシュ パーティショニングを使用して行います。Vantage のほとんどのテーブルは、ハッシュを使用して行のプライマリ インデックス (PI) の値に基づいてテーブルのデータをブロック ファイル システム (BFS) のディスク記憶装置に分散し、テーブル全体をスキャンしたり、インデックスを使用してデータにアクセスしたりする場合があります。このアプローチにより、スケーラブルなパフォーマンスと効率的なデータ アクセスが保証されます。 + +* プライマリ インデックスが一意である場合、テーブル内の行はハッシュ パーティション化によって自動的に均等に分散されます。 +* 指定されたプライマリ インデックス列はハッシュされ、同じ値に対して一貫したハッシュ コードが生成されます。 +* 再編成、再パーティション化、またはスペース管理は必要ありません。 +* 通常、各 AMP にはすべてのテーブルの行が含まれており、効率的なデータ アクセスと処理が保証されます。 + +image::{dir}/teradata_data_distribution.png[Teradata Data Distribution (データ分散), width=75%] + +== まとめ +この記事では、Parsing Engines (PE)、BYNET、Access Module Processors (AMP)、Virtual Disk (Vdisk)などのTeradata Vantageの主要なアーキテクチャ コンポーネント、Parallel Database Extension(PDE)、Nodeなどのその他のアーキテクチャ コンポーネント、および線形拡張と拡張性、並列処理、データ取得、データ分散などのTeradata Vantageの基本的な概念について説明しました。 + +== さらに詳しく +link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Introduction/Vantage-Hardware-and-Software-Architecture/Virtual-Processors/Parsing-Engine[Parsing Engine,window="_blank"] + +link:https://www.teradata.com/Blogs/What-Is-the-BYNET-and-Why-Is-It-Important-to-Vantage[BYNET, window="_blank"] + +link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Introduction/Vantage-Hardware-and-Software-Architecture/Virtual-Processors/Access-Module-Processor[Access Module Processor, window="_blank"] + +link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Introduction/Vantage-Hardware-and-Software-Architecture/Parallel-Database-Extensions[Parallel Database Extensions, window="_blank"] + +link:https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Database-Introduction/Data-Distribution-and-Data-Access-Methods[Teradata Data Distribution and Data Access Methods, window="_blank"] diff --git a/modules/ROOT/pages/ja/general/teradatasql.adoc b/modules/ROOT/pages/ja/general/teradatasql.adoc new file mode 100644 index 000000000..0590134ae --- /dev/null +++ b/modules/ROOT/pages/ja/general/teradatasql.adoc @@ -0,0 +1,49 @@ += Python を使用して Vantage に接続する方法 +:page-lang: ja +:experimental: +:page-author: Krutik Pathak +:page-email: krutik.pathak@teradata.com +:page-revdate: 2023 年 8 月 2 日 +:description: teradatasql Python データベース ドライバを使用して Teradata Vantage に接続する方法 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, teradatasql, python applications, business intelligence, enterprise analytics + +== 概要 + +このハウツーでは、Teradata Vantage 用の Python データベース ドライバ link:https://github.com/Teradata/python-driver[teradatasql,window="_blank"] を使用して Vantage に接続する方法を示します。 + +== 前提条件 + +* 64ビットPython 3.4以降。 + +* `teradatasql` システムにインストールされているドライバ: ++ +[source, bash, id="teradatasql_pip_install", role="emits-gtm-events"] +---- +pip install teradatasql +---- ++ +[NOTE] +==== +`teradatasql` パッケージはWindows、macOS(10.14 Mojave以降)、Linuxで動作します。Linuxでは、現在、Linux x86-64アーキテクチャのみがサポートされています。 +==== + +* Teradata Vantageインスタンスへのアクセス。現在、ドライバは Teradata Database 16.10 以降のリリースでの使用がサポートされています。 ++ +include::../partials/vantage_clearscape_analytics.adoc[] + +== クエリーを送信するコード + +これは、`teradatasql` を使用してTeradata Vantageに接続するための単純なPythonコードです。残っているのは、接続パラメータと認証パラメータを渡してクエリーを実行することだけです。 + +++++ + +++++ + +== まとめ + +このハウツーでは、 `teradatasql` Python データベース ドライバを使用して Teradata Vantage に接続する方法を説明しました。 `teradatasql` を使用して SQL クエリーを Teradata Vantage に送信するサンプル Python コードについて説明しました。 + +== さらに詳しく +* link:https://github.com/Teradata/python-driver[teradatasql Python ドライバ リファレンス,window="_blank"] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/general/vantage.express.gcp.adoc b/modules/ROOT/pages/ja/general/vantage.express.gcp.adoc new file mode 100644 index 000000000..e5ac16e54 --- /dev/null +++ b/modules/ROOT/pages/ja/general/vantage.express.gcp.adoc @@ -0,0 +1,139 @@ += Google Cloud で Vantage Express を実行する方法 +:page-lang: ja +:page-author: Adam Tworkiewicz +:page-email: adam.tworkiewicz@teradata.com +:page-revdate: 2022 年 8 月 22 日 +:description: Google Cloud で Vantage Express を実行します。 +:keywords: data warehouses, compute storage separation, teradata, vantage, cloud data platform, object storage, business intelligence, enterprise analytics +:tabs: +:experimental: + +include::../partials/use.csae.adoc[] + +== 概要 + +このハウツーでは、Google Cloud Platform で Vantage Express を実行する方法を説明します。Vantage Express には、完全に機能する Teradata SQL Engineが含まれています。 + +NOTE: クラウドの使用料を支払いたくない場合は、link:getting.started.vmware.adoc[VMware]、link:getting.started.vbox[VirtualBox]、link:getting.started.utm[UTM] を使用して Vantage Express をローカルにインストールできます。 + +== 前提条件 + +. Googleクラウドアカウント。 +. `gcloud` コマンド ラインユーティリティがマシンにインストールされている。インストール手順はここで見つけることができます。https://cloud.google.com/sdk/docs/install + + +== インストール + +. 4 つの CPU と 8 GB の RAM、70 GB のバランス ディスクを備えた Ubuntu VM を作成します。以下のコマンドは、 `us-central1` リージョンに VM を作成します。最高のパフォーマンスを得るには、 リージョンを最も近いリージョンに置き換えてください。サポートされているリージョンのリストについては、 link:https://cloud.google.com/compute/docs/regions-zones[Google Cloud リージョンのドキュメント] をご覧ください。 ++ +[tabs] +==== +Windows:: ++ +-- +Powershell で実行する。 +[source, powershell, role="content-editable emits-gtm-events", id="gcloud_create_vm_win"] +---- +gcloud compute instances create teradata-vantage-express ` + --zone=us-central1-a ` + --machine-type=n2-custom-4-8192 ` + --create-disk=boot=yes,device-name=ve-disk,image-project=ubuntu-os-cloud,image-family=ubuntu-2004-lts,size=70,type=pd-balanced ` + --enable-nested-virtualization ` + --tags=ve +---- +-- +MacOS:: ++ +-- +[source, bash, role="content-editable emits-gtm-events", id="gcloud_create_vm_macos"] +---- +gcloud compute instances create teradata-vantage-express \ + --zone=us-central1-a \ + --machine-type=n2-custom-4-8192 \ + --create-disk=boot=yes,device-name=ve-disk,image-project=ubuntu-os-cloud,image-family=ubuntu-2004-lts,size=70,type=pd-balanced \ + --enable-nested-virtualization \ + --tags=ve +---- +-- +Linux:: ++ +-- +[source, bash, role="content-editable emits-gtm-events", id="gcloud_create_vm_linux"] +---- +gcloud compute instances create teradata-vantage-express \ + --zone=us-central1-a \ + --machine-type=n2-custom-4-8192 \ + --create-disk=boot=yes,device-name=ve-disk,image-project=ubuntu-os-cloud,image-family=ubuntu-2004-lts,size=70,type=pd-balanced \ + --enable-nested-virtualization \ + --tags=ve +---- +-- +==== +. VMにsshで接続する。 ++ +[source, bash, role="content-editable emits-gtm-events", id="gcloud_ssh"] +---- +gcloud compute ssh teradata-vantage-express --zone=us-central1-a +---- +. `root` ユーザーに切り替えます。 ++ +[source, bash, role="content-editable emits-gtm-events", id="sudo"] +---- +sudo -i +---- +. Vantage Express用のダウンロードディレクトリを準備する。 ++ +[source, bash, role="content-editable emits-gtm-events", id="download_dir"] +---- +mkdir /opt/downloads +cd /opt/downloads +---- +include::../partials/install.ve.in.public.cloud.adoc[] +* インターネットからVantage Expressに接続したい場合は、VMに対してファイアウォールの穴を開ける必要がある。また、デフォルトのパスワードを `dbc` ユーザーに変更する必要がある。 +. `dbc` ユーザーのパスワードを変更するには、VM に移動して bteq を開始する。 ++ +[source, bash, role="content-editable emits-gtm-events", id="pw_change_bteq"] +---- +bteq +---- +. ユーザー名とパスワードとして `dbc` を使用してデータベースにログインする。 ++ +[source, teradata-sql, role="content-editable emits-gtm-events", id="pw_change_bteq_logon"] +---- +.logon localhost/dbc +---- +. `dbc` ユーザーのパスワードを変更する。 ++ +[source, teradata-sql, role="content-editable emits-gtm-events", id="pw_change_mod_user"] +---- +MODIFY USER dbc AS PASSWORD = new_password; +---- +. gcloud コマンドを使用して、ポート 1025 をインターネットに開くことができるようになりました。 ++ +[source%prewrap, bash, role="content-editable emits-gtm-events", id="gcloud_fw_rule"] +---- +gcloud compute firewall-rules create vantage-express --allow=tcp:1025 --direction=IN --target-tags=ve +---- + +== クリーンアップ + +料金の発生を停止するには、VM を削除する。 +[source, bash, role="content-editable emits-gtm-events", id="delete_vm"] +---- +gcloud compute instances delete teradata-vantage-express --zone=us-central1-a +---- + +また、追加したファイアウォール ルールも忘れずに削除してください。例: +[source, bash, role="content-editable emits-gtm-events", id="delete_fw_rule"] +---- +gcloud compute firewall-rules delete vantage-express +---- + +== 次のステップ +* xref:nos.adoc[オブジェクトストレージに保存されたクエリーデータ] + +== さらに詳しく +* link:https://docs.teradata.com/r/Teradata-StudioTM-and-StudioTM-Express-Installation-Guide-17.20[Teradata®Studio™およびStudio™Expressインストール ガイド] +* link:https://docs.teradata.com/r/jmAxXLdiDu6NiyjT6hhk7g/root[BTEQの紹介] + +include::../partials/community_link.adoc[] diff --git a/modules/ROOT/pages/ja/jupyter-demos/gcp-vertex-ai-pipelines-vantage-byom-housing-example.adoc b/modules/ROOT/pages/ja/jupyter-demos/gcp-vertex-ai-pipelines-vantage-byom-housing-example.adoc new file mode 100644 index 000000000..3ce5b8497 --- /dev/null +++ b/modules/ROOT/pages/ja/jupyter-demos/gcp-vertex-ai-pipelines-vantage-byom-housing-example.adoc @@ -0,0 +1,8 @@ += Google Cloud Vertex AI Pipelines Vantage BYOM ハウジングの例 +:page-lang: ja +:description: Teradata Vantage をすぐに使いこなしましょう。機能について学習します。一般的なタスクのハウツーを検索します。サンプル ソース コードを探索します。 +:keywords: データ ウェアハウス、クラウド データ ウェアハウス、コンピューティング ストレージの分離、Teradata、Vantage、クラウド データ プラットフォーム、Java アプリケーション、ビジネス インテリジェンス、エンタープライズ分析、ハイブリッド マルチクラウド、ビジネスの成果 +:page-jupyterbook: true + + +// include::partials/vertex-pipelines-housing-example-byom.html[] diff --git a/modules/ROOT/pages/ja/jupyter-demos/index.adoc b/modules/ROOT/pages/ja/jupyter-demos/index.adoc new file mode 100644 index 000000000..7897e681e --- /dev/null +++ b/modules/ROOT/pages/ja/jupyter-demos/index.adoc @@ -0,0 +1,659 @@ += Jupyterノートブックのデモ +:page-lang: ja +:description: Teradata Vantage をすぐに使いこなしましょう。機能について学習する。一般的なタスクの使い方を見つける。サンプル ソース コードを探索します。 +:keywords: data warehouses, cloud data warehouse, compute storage separation, teradata, vantage, cloud data platform, java applications, business intelligence, enterprise analytics, hybrid multi-cloud, business outcomes +:page-jupyterbook: true + +++++ +
+
+
+
+
通信
+ +
自動車
+ +
ヘルスケア
+ +
官公庁
+ +
小売り
+ +
+
+
+ + + + + + + +
+ 探しているデモが見つかりませんでしたか? + + デモに貢献またはリクエストする + + request + contribute +
+
+
+
+
+
+ + + +++++ diff --git a/modules/ROOT/pages/ja/jupyter-demos/partials/vertex-pipelines-housing-example-byom.html b/modules/ROOT/pages/ja/jupyter-demos/partials/vertex-pipelines-housing-example-byom.html new file mode 100644 index 000000000..6519fc8b5 --- /dev/null +++ b/modules/ROOT/pages/ja/jupyter-demos/partials/vertex-pipelines-housing-example-byom.html @@ -0,0 +1,15565 @@ + + + + + +vertex_pipelines_housing_example-BYOM + + + + + + + + + + + + + + + + + + + + +