Табличная модель SSMS: создание нескольких разделов с помощью одного скрипта xmla - PullRequest
0 голосов
/ 10 октября 2019

Мне нужно создать значительное количество разделов, используя сценарии XMLA, выполняемые через SSMS.
Есть ли способ объединить создание нескольких разделов в один сценарий.

В приведенном ниже примере мне нужновыполнить первый скрипт. Когда он закончится, я могу открыть другой скрипт и выполнить его. Очень много времени.

Как я могу реструктурировать код, чтобы запустить его только в одном исполнении?

Сценарий 1:

  "createOrReplace": {
    "object": {
      "database": "MYDB",
      "table": "MYTABLE1",      "partition": "Partition"
    },
    "partition": {
      "name": "Process_OLD",      "dataView": "full",
      "source": {
        "type": "m",
        "expression": [
          "let",
          "    Source = #\"mySQL/MY_SCHEMA\",",          "    MY_SCHEMA= Source{[Schema=\"MY_SCHEMA\"]}[Data],",
          "    AllData = MY_SCHEMA{[Name=\"MYTABLE1\"]}[Data],",          "\t#\"Filtered Rows\" = Table.SelectRows(AllData, each  [DATE]  < 20170101)",
          "in",
          "    #\"Filtered Rows\""
        ]
      }
    }
  }
}

Сценарий 2:

  "createOrReplace": {
    "object": {
      "database": "MYDB",
      "table": "MYTABLE2",      "partition": "Partition"
    },
    "partition": {
      "name": "Process_NEW",      "dataView": "full",
      "source": {
        "type": "m",
        "expression": [
          "let",
          "    Source = #\"mySQL/MY_SCHEMA\",",          "    MY_SCHEMA= Source{[Schema=\"MY_SCHEMA\"]}[Data],",
          "    AllData = MY_SCHEMA{[Name=\"MYTABLE1\"]}[Data],",          "\t#\"Filtered Rows\" = Table.SelectRows(AllData, each  [DATE]  >= 20170101)",
          "in",
          "    #\"Filtered Rows\""
        ]
      }
    }
  }
}

1 Ответ

1 голос
/ 10 октября 2019

Вы можете поместить команду sequence вокруг нее:

{
  "sequence": {
    "operations": [
      {
        "createOrReplace": {
          "object": {
            "database": "MYDB",
            "table": "MYTABLE1",
            "partition": "Partition"
          },
          "partition": {
            "name": "Process_OLD",
            "dataView": "full",
            "source": {
              "type": "m",
              "expression": [
                "let",
                "    Source = #\"mySQL/MY_SCHEMA\",",
                "    MY_SCHEMA= Source{[Schema=\"MY_SCHEMA\"]}[Data],",
                "    AllData = MY_SCHEMA{[Name=\"MYTABLE1\"]}[Data],",
                "\t#\"Filtered Rows\" = Table.SelectRows(AllData, each  [DATE]  < 20170101)",
                "in",
                "    #\"Filtered Rows\""
              ]
            }
          }
        }
      },
      {
        "createOrReplace": {
          "object": {
            "database": "MYDB",
            "table": "MYTABLE2",
            "partition": "Partition"
          },
          "partition": {
            "name": "Process_NEW",
            "dataView": "full",
            "source": {
              "type": "m",
              "expression": [
                "let",
                "    Source = #\"mySQL/MY_SCHEMA\",",
                "    MY_SCHEMA= Source{[Schema=\"MY_SCHEMA\"]}[Data],",
                "    AllData = MY_SCHEMA{[Name=\"MYTABLE1\"]}[Data],",
                "\t#\"Filtered Rows\" = Table.SelectRows(AllData, each  [DATE]  >= 20170101)",
                "in",
                "    #\"Filtered Rows\""
              ]
            }
          }
        }
      }
    ]
  }
}
...