使用Powershell自动执行Analysis Services表分区

问题描述

嗨,我在Analysis Services中有表列表,我必须创建每周手动创建的表分区。例如7天。我必须手动转到该分区并更改日期范围,然后处理分区,然后执行。我想使用Powershell自动执行此过程。以下是我要自动执行的PS代码段,但是我想了解如何阅读partition create命令。

 import com.example.soonBox_findpw.data.*;
 import com.example.soonBox_findpw.data.SellerAdapter;
 import com.google.firebase.auth.FirebaseAuth;
 import com.google.firebase.auth.FirebaseUser;
 import com.google.firebase.database.DataSnapshot;
 import com.google.firebase.database.DatabaseError;
 import com.google.firebase.database.DatabaseReference;
 import com.google.firebase.database.FirebaseDatabase;
 import com.google.firebase.database.ValueEventListener;
 import androidx.annotation.NonNull;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.recyclerview.widget.linearlayoutmanager;
 import androidx.recyclerview.widget.RecyclerView;
 import android.os.Bundle;
 import android.util.Log;
 import java.util.ArrayList;
 public class Purc_order extends AppCompatActivity {


 private ArrayList<Posts> arrayList;
 private SellerAdapter sellerAdapter;
 private RecyclerView recyclerView;
 private linearlayoutmanager linearlayoutmanager;

 private FirebaseDatabase mdatabase;
 private DatabaseReference databaseRef;
 private FirebaseAuth firebaseAuth;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.purc_application_one);




 recyclerView = (RecyclerView)findViewById(R.id.order_recyclerview);
 recyclerView.setHasFixedSize(true);
 linearlayoutmanager = new linearlayoutmanager(this);
 recyclerView.setLayoutManager(linearlayoutmanager);
 arrayList = new ArrayList<>();
 firebaseAuth = FirebaseAuth.getInstance();
 FirebaseUser user = firebaseAuth.getInstance().getCurrentUser();
 String email= user.getEmail();
     int idx = email.indexOf("@");

     String mailid = email.substring(0,idx);


     mdatabase = FirebaseDatabase.getInstance(); //파이어베이스 DB연동
     databaseRef = mdatabase.getReference("users").child(mailid).child("uploaded");//DB테이블 연결
     databaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
         @Override
         public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
             //파이어베이스 데이터베이스의 데이터를 받아옵니다.
             arrayList.clear();//기존 배열 리스트가 존재하지 않게 초기화
             for(DataSnapshot snapshot : dataSnapshot.getChildren()) {  // 반복문으로 데이터 List를 추출

                 Posts posts = snapshot.getValue(Posts.class); //만들어둔 Posts 객체에 데이터를 담는다.
                 arrayList.add(posts);//담은 데이터들을 배열리스트에 넣고 리사이클러뷰로 보낼 준비
             }
             sellerAdapter.notifyDataSetChanged();//리스트 저장 및 새로고침
         }

         @Override
         public void onCancelled(@NonNull DatabaseError error) {
             //디비 가져오던 중 에러 발생시
             Log.e("Pur_order",String.valueOf(error.toException())); //에러문 출력
         }
     });
     sellerAdapter = new SellerAdapter(arrayList,this);
     recyclerView.setAdapter(sellerAdapter);
 }//onCreate
 }



+ I attach more info  : Firebase DB pictures


[worked well path][2]

[error path][3]


[1]: https://i.stack.imgur.com/PgYsR.png
[2]: https://i.stack.imgur.com/NgusF.png
[3]: https://i.stack.imgur.com/I2Fp0.png

此外,我在下面附加了分区创建命令:

function Invoke-SSASCreatePartition
{
    [CmdletBinding(DefaultParameterSetName = "conn")]
    param(              
        [Parameter(Mandatory=$true,ParameterSetName = "connStr")] [string] $connectionString,[Parameter(Mandatory=$true,ParameterSetName = "conn")] [Microsoft.analysisservices.AdomdClient.AdomdConnection] $connection,[Parameter(Mandatory=$true)] [string] $database,[Parameter(Mandatory=$true)] [string] $table,[Parameter(Mandatory=$true)] [string] $partition,[Parameter(Mandatory=$true)] [string] $query,[Parameter(Mandatory=$true)] [string] $datasource
        )           

   $cmdText = "
    {
        `"createOrReplace`": {
            `"object`": {
            `"database`": `"$database`",`"table`": `"$table`",`"partition`": `"$partition`"
            },`"partition`": {
                `"name`": `"$partition`",`"source`": {
                    `"query`": `"$query`",`"dataSource`": `"$datasource`"
                }
            }
        }
    }"

    if ($PsCmdlet.ParameterSetName -eq "connStr")
    {   
        $connection = Get-SSASConnection -connectionString $connectionString -open                                                          
    }

    Invoke-SSASCommand -connection $connection -commandtext $cmdText

    Write-Verbose "Partition $partition successfully (re)created!"      
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)