td_ddlなどのDigdagのオペレータにおいて、複数のテーブルに対してまとめて操作するには、['xxxx','yyyy']どいった配列にしなければならない。 その際に、各テーブルに日付などの要素を入れたい場合には下記のように行う。 つまり気合いで正規表現。
_export: tbls: - main_tmp_table - main_tmp2_table - main_tmp3_table - main_tmp4_table ymd: 20200128 td: database: support +step1: td_ddl>: create_tables: ${JSON.stringify(tbls).replace(/(\w+)/g, '$1_'+ymd)}
$ digdag run main.dig --rerun 2020-02-06 21:04:00 +0900: Digdag v0.9.41 2020-02-06 21:04:03 +0900 [WARN] (main): Reusing the last session time 2020-02-06T00:00:00+00:00. 2020-02-06 21:04:03 +0900 [INFO] (main): Using session /Users/toru/Desktop/map_dig/.digdag/status/20200206T000000+0000. 2020-02-06 21:04:03 +0900 [INFO] (main): Starting a new session project id=1 workflow name=main session_time=2020-02-06T00:00:00+00:00 2020-02-06 21:04:04 +0900 [INFO] (0017@[0:default]+main+step1): td_ddl>: 2020-02-06 21:04:04 +0900 [INFO] (0017@[0:default]+main+step1): td-client version: 0.9.0 2020-02-06 21:04:04 +0900 [INFO] (0017@[0:default]+main+step1): Creating TD table support.main_tmp_table_20200128 2020-02-06 21:04:06 +0900 [INFO] (0017@[0:default]+main+step1): Creating TD table support.main_tmp2_table_20200128 2020-02-06 21:04:07 +0900 [INFO] (0017@[0:default]+main+step1): Creating TD table support.main_tmp3_table_20200128 2020-02-06 21:04:07 +0900 [INFO] (0017@[0:default]+main+step1): Creating TD table support.main_tmp4_table_20200128 Success. Task state is saved at /Users/toru/Desktop/map_dig/.digdag/status/20200206T000000+0000 directory. * Use --session <daily | hourly | "yyyy-MM-dd[ HH:mm:ss]"> to not reuse the last session time. * Use --rerun, --start +NAME, or --goal +NAME argument to rerun skipped tasks.
Map関数などを使うと、下記のエラーが発生する。 nashornの不具合っぽいので、みなかったことにする。
2020-02-06 19:51:06 +0900 [ERROR] (0017@[0:default]+main+chk): Task failed with unexpected error: Unexpected error happened in ConfigEvalEngine: Failed generating bytecode for <function>:5 java.lang.RuntimeException: Unexpected error happened in ConfigEvalEngine: Failed generating bytecode for <function>:5 at io.digdag.core.agent.OperatorManager.runWithWorkspace(OperatorManager.java:207) at io.digdag.core.agent.OperatorManager.lambda$runWithHeartbeat$2(OperatorManager.java:137) at io.digdag.core.agent.LocalWorkspaceManager.withExtractedArchive(LocalWorkspaceManager.java:25) at io.digdag.core.agent.OperatorManager.runWithHeartbeat(OperatorManager.java:135) at io.digdag.core.agent.OperatorManager.run(OperatorManager.java:119) at io.digdag.cli.Run$OperatorManagerWithSkip.run(Run.java:687) at io.digdag.core.agent.MultiThreadAgent.lambda$null$0(MultiThreadAgent.java:127) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.AssertionError: Failed generating bytecode for <function>:5 at jdk.nashorn.internal.codegen.CompilationPhase$BytecodeGenerationPhase.transform(CompilationPhase.java:431) at jdk.nashorn.internal.codegen.CompilationPhase.apply(CompilationPhase.java:624) at jdk.nashorn.internal.codegen.Compiler.compile(Compiler.java:655) at jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.compileTypeSpecialization(RecompilableScriptFunctionData.java:725) at jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.getBest(RecompilableScriptFunctionData.java:905) at jdk.nashorn.internal.runtime.ScriptFunctionData.getGeneric(ScriptFunctionData.java:384) at jdk.nashorn.internal.runtime.ScriptFunctionData.createGenericInvoker(ScriptFunctionData.java:282) at jdk.nashorn.internal.runtime.ScriptFunctionData.getGenericInvoker(ScriptFunctionData.java:276) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:620) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) at jdk.nashorn.internal.objects.NativeFunction.call(NativeFunction.java:192) at jdk.nashorn.internal.scripts.Script$Recompilation$36$62AA$\^eval\_.template(<eval>:53) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:641) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) at jdk.nashorn.api.scripting.ScriptObjectMirror.callMember(ScriptObjectMirror.java:199) at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:383) at jdk.nashorn.api.scripting.NashornScriptEngine.invokeFunction(NashornScriptEngine.java:190) at io.digdag.core.agent.ConfigEvalEngine.invokeTemplate(ConfigEvalEngine.java:112) at io.digdag.core.agent.ConfigEvalEngine.access$200(ConfigEvalEngine.java:30) at io.digdag.core.agent.ConfigEvalEngine$Context.evalValue(ConfigEvalEngine.java:206) at io.digdag.core.agent.ConfigEvalEngine$Context.evalObjectRecursive(ConfigEvalEngine.java:164) at io.digdag.core.agent.ConfigEvalEngine$Context.access$000(ConfigEvalEngine.java:132) at io.digdag.core.agent.ConfigEvalEngine.eval(ConfigEvalEngine.java:78) at io.digdag.core.agent.OperatorManager.runWithWorkspace(OperatorManager.java:195) ... 11 common frames omitted Caused by: java.lang.AssertionError: jdk.nashorn.internal.ir.BinaryNode at jdk.nashorn.internal.codegen.CodeGenerator$2.enterDefault(CodeGenerator.java:1226) at jdk.nashorn.internal.ir.visitor.NodeOperatorVisitor.enterBIND(NodeOperatorVisitor.java:744) at jdk.nashorn.internal.ir.visitor.NodeOperatorVisitor.enterBinaryNode(NodeOperatorVisitor.java:137) at jdk.nashorn.internal.ir.BinaryNode.accept(BinaryNode.java:335) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:857) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:833) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpressionUnbounded(CodeGenerator.java:568) at jdk.nashorn.internal.codegen.CodeGenerator.loadArgs(CodeGenerator.java:1421) at jdk.nashorn.internal.codegen.CodeGenerator.access$5100(CodeGenerator.java:178) at jdk.nashorn.internal.codegen.CodeGenerator$3$4.loadStack(CodeGenerator.java:1605) at jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.emit(CodeGenerator.java:4642) at jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.emit(CodeGenerator.java:4627) at jdk.nashorn.internal.codegen.CodeGenerator$3.enterAccessNode(CodeGenerator.java:1611) at jdk.nashorn.internal.ir.AccessNode.accept(AccessNode.java:66) at jdk.nashorn.internal.codegen.CodeGenerator.loadCallNode(CodeGenerator.java:1434) at jdk.nashorn.internal.codegen.CodeGenerator.access$2100(CodeGenerator.java:178) at jdk.nashorn.internal.codegen.CodeGenerator$2.enterCallNode(CodeGenerator.java:1002) at jdk.nashorn.internal.ir.CallNode.accept(CallNode.java:177) at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57) at jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:47) at jdk.nashorn.internal.ir.CallNode.accept(CallNode.java:41) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:857) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:833) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpressionAsType(CodeGenerator.java:829) at jdk.nashorn.internal.codegen.CodeGenerator$16.evaluate(CodeGenerator.java:3870) at jdk.nashorn.internal.codegen.CodeGenerator$Store.store(CodeGenerator.java:4524) at jdk.nashorn.internal.codegen.CodeGenerator.loadASSIGN(CodeGenerator.java:3872) at jdk.nashorn.internal.codegen.CodeGenerator.access$900(CodeGenerator.java:178) at jdk.nashorn.internal.codegen.CodeGenerator$2.enterASSIGN(CodeGenerator.java:919) at jdk.nashorn.internal.ir.visitor.NodeOperatorVisitor.enterBinaryNode(NodeOperatorVisitor.java:113) at jdk.nashorn.internal.ir.BinaryNode.accept(BinaryNode.java:335) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:857) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:833) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpressionUnbounded(CodeGenerator.java:568) at jdk.nashorn.internal.codegen.CodeGenerator.nullCheck(CodeGenerator.java:2726) at jdk.nashorn.internal.codegen.CodeGenerator.loadRuntimeNode(CodeGenerator.java:2809) at jdk.nashorn.internal.codegen.CodeGenerator.access$4300(CodeGenerator.java:178) at jdk.nashorn.internal.codegen.CodeGenerator$2.enterRuntimeNode(CodeGenerator.java:1193) at jdk.nashorn.internal.ir.RuntimeNode.accept(RuntimeNode.java:436) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:857) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:833) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpressionAsBoolean(CodeGenerator.java:576) at jdk.nashorn.internal.codegen.BranchOptimizer.loadTestAndJump(BranchOptimizer.java:166) at jdk.nashorn.internal.codegen.BranchOptimizer.branchOptimizer(BranchOptimizer.java:162) at jdk.nashorn.internal.codegen.BranchOptimizer.execute(BranchOptimizer.java:57) at jdk.nashorn.internal.codegen.CodeGenerator.emitBranch(CodeGenerator.java:2206) at jdk.nashorn.internal.codegen.CodeGenerator.loadTernaryNode(CodeGenerator.java:4251) at jdk.nashorn.internal.codegen.CodeGenerator.access$2300(CodeGenerator.java:178) at jdk.nashorn.internal.codegen.CodeGenerator$2.enterTernaryNode(CodeGenerator.java:1013) at jdk.nashorn.internal.ir.TernaryNode.accept(TernaryNode.java:70) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:857) at jdk.nashorn.internal.codegen.CodeGenerator.loadBinaryOperands(CodeGenerator.java:618) at jdk.nashorn.internal.codegen.CodeGenerator.access$7200(CodeGenerator.java:178) at jdk.nashorn.internal.codegen.CodeGenerator$15.loadStack(CodeGenerator.java:3772) at jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.emit(CodeGenerator.java:4642) at jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.emit(CodeGenerator.java:4627) at jdk.nashorn.internal.codegen.CodeGenerator.loadADD(CodeGenerator.java:3779) at jdk.nashorn.internal.codegen.CodeGenerator$2.enterADD(CodeGenerator.java:1019) at jdk.nashorn.internal.ir.visitor.NodeOperatorVisitor.enterBinaryNode(NodeOperatorVisitor.java:109) at jdk.nashorn.internal.ir.BinaryNode.accept(BinaryNode.java:335) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:857) at jdk.nashorn.internal.codegen.CodeGenerator.loadBinaryOperands(CodeGenerator.java:616) at jdk.nashorn.internal.codegen.CodeGenerator.access$7200(CodeGenerator.java:178) at jdk.nashorn.internal.codegen.CodeGenerator$15.loadStack(CodeGenerator.java:3772) at jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.emit(CodeGenerator.java:4642) at jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.emit(CodeGenerator.java:4627) at jdk.nashorn.internal.codegen.CodeGenerator.loadADD(CodeGenerator.java:3779) at jdk.nashorn.internal.codegen.CodeGenerator$2.enterADD(CodeGenerator.java:1019) at jdk.nashorn.internal.ir.visitor.NodeOperatorVisitor.enterBinaryNode(NodeOperatorVisitor.java:109) at jdk.nashorn.internal.ir.BinaryNode.accept(BinaryNode.java:335) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:857) at jdk.nashorn.internal.codegen.CodeGenerator.loadBinaryOperands(CodeGenerator.java:618) at jdk.nashorn.internal.codegen.CodeGenerator.access$7200(CodeGenerator.java:178) at jdk.nashorn.internal.codegen.CodeGenerator$BinaryOptimisticSelfAssignment$1.loadStack(CodeGenerator.java:3907) at jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.emit(CodeGenerator.java:4642) at jdk.nashorn.internal.codegen.CodeGenerator$BinaryOptimisticSelfAssignment.evaluate(CodeGenerator.java:3913) at jdk.nashorn.internal.codegen.CodeGenerator$Store.store(CodeGenerator.java:4524) at jdk.nashorn.internal.codegen.CodeGenerator.loadASSIGN_ADD(CodeGenerator.java:3942) at jdk.nashorn.internal.codegen.CodeGenerator.access$1000(CodeGenerator.java:178) at jdk.nashorn.internal.codegen.CodeGenerator$2.enterASSIGN_ADD(CodeGenerator.java:926) at jdk.nashorn.internal.ir.visitor.NodeOperatorVisitor.enterBinaryNode(NodeOperatorVisitor.java:115) at jdk.nashorn.internal.ir.BinaryNode.accept(BinaryNode.java:335) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:857) at jdk.nashorn.internal.codegen.CodeGenerator.loadExpression(CodeGenerator.java:833) at jdk.nashorn.internal.codegen.CodeGenerator.loadAndDiscard(CodeGenerator.java:3663) at jdk.nashorn.internal.codegen.CodeGenerator.enterExpressionStatement(CodeGenerator.java:1720) at jdk.nashorn.internal.ir.ExpressionStatement.accept(ExpressionStatement.java:63) at jdk.nashorn.internal.ir.Node.accept(Node.java:271) at jdk.nashorn.internal.ir.Block.accept(Block.java:185) at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57) at jdk.nashorn.internal.ir.Block.accept(Block.java:439) at jdk.nashorn.internal.codegen.CodeGenerator.enterWithNode(CodeGenerator.java:3534) at jdk.nashorn.internal.ir.WithNode.accept(WithNode.java:70) at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57) at jdk.nashorn.internal.ir.LexicalContextStatement.accept(LexicalContextStatement.java:55) at jdk.nashorn.internal.ir.WithNode.accept(WithNode.java:34) at jdk.nashorn.internal.ir.Node.accept(Node.java:271) at jdk.nashorn.internal.ir.Block.accept(Block.java:185) at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57) at jdk.nashorn.internal.ir.Block.accept(Block.java:439) at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:336) at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57) at jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:47) at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:55) at jdk.nashorn.internal.codegen.CompilationPhase.transformFunction(CompilationPhase.java:628) at jdk.nashorn.internal.codegen.CompilationPhase.access$100(CompilationPhase.java:55) at jdk.nashorn.internal.codegen.CompilationPhase$BytecodeGenerationPhase.transform(CompilationPhase.java:418) ... 36 common frames omitted